サッカーを通じて観戦力と分析力を上げていくブログ

基本的にはサッカー×データに関して試してみたことをまとめています。最近はもっぱらPythonを使った可視化中心。時々自分の好きなガジェットも。

【Power BI】新機能「Key Influencers visual」を使ってみる

本ブログではPythonを題材にすることが多いのですが、業務ではMicrosoft社製のセルフBIツールである「Power BI」を普段から使っていたりします。マイクロソフトが力を入れているツールの一つらしく、毎月結構な量のアップデートがあり、新機能の追加と痒い所に手が届くような修正が行われています。今回2月のアップデートによって「Key Influencers visual(主な影響要因)」なる機械学習を使ったビジュアルが追加されたようなので試してみたいと思います。

Power BIとは

前段でも書きましたが、Power BIはMicrosoft社製のBIツールです。データベースやExcelなどをソースにして、大量のデータの集計から可視化までを高速で行えるツールとなっています。競合製品として有名なのものに「Tableau(タブロー)」なんかがあります。

機能を有効化する

下記のマイクロソフトの公式サイトを参考にしながら早速使っていきたいと思います。

docs.microsoft.com

今回追加された「Key influencers visual」は、ある項目に影響を与えている項目について分析・可視化してくれるとのことです。まだプレビュー機能ということで、デフォルトでは使えませんので、ますは機能の有効化から行っていきます。

Power BIの画面左上「ファイル」から「オプションと設定」、「オプション」とクリックしていきます。

f:id:virgilvd:20190224134321p:plain

プレビュー機能」から「主要なインフルエンサの視覚化」にチェックをつけて、「OK」をクリック。

f:id:virgilvd:20190224134347p:plain

その後Power BIを再起動すると、視覚化部分に「Key influencers visual」が追加されています。

f:id:virgilvd:20190224134918p:plain

試してみる

「Key influencers visual」が分析できるのはカテゴリカル(非連続)データのみとのことなので、今回はKaggleでお馴染みの「タイタニック」のデータを使って、生存者の要因について分析してみます。ちなみにカテゴリカルデータとは、離散量のデータのことで、例えば「男女」のように数字として比較出来ない、比較しても意味のないデータのことです。

f:id:virgilvd:20190224134613p:plain

NameやAge列はそのままの意味で、見慣れない列の意味は下記の通りです。

PassengerId – 乗客識別ユニークID

Survived – 生存フラグ(0=死亡、1=生存)

Pclass – チケットクラス

SibSp – 同乗している兄弟/配偶者の数

parch – 同乗している親/子供の数

ticket – チケット番号

fare – 運賃

cabin – 客室番号

Embarked – 出港地

 今回は、タイタニックで生存した人、すなわち「 Survived 」が「1」になる要因について「Key influencers visual」を使ってみてみます。

 「Key influencers visual」を選択したら、フィールドの「分析」に要因を調べたい項目(今回の場合は「Survived」)を、「説明」に要因となりそうな項目をそれぞれドラッグ&ドロップして入力します。なお、今回の元データには「Age」と「Cabin」と「Embarked」に欠損値があり、「Age」と「Embarked」に関しては欠損値があるものを対象から除外しています。一方の「Cabin」については欠損値が多いので、今回の分析対象から外すことにします。

f:id:virgilvd:20190224134842p:plain

▲項目を入れると1秒も待たずに結果が表示されます。 

主要なインフルエンサ

早速結果を(その見方を確認しながら)見ていきたいと思います。「Key influencers visual」では大きく2種類の結果を確認することが出来、その一つが分析に入れた項目に対してどの項目の影響が大きいのかを算出してくれている「主要なインフルエンサ」になります。

f:id:virgilvd:20190224135025p:plain

上記画像の赤枠部分で、要因を分析したい選択肢を選びます。今回の場合はタイタニックで生存した人なので、「1」を選択。するとその下に影響を与えている項目と、その影響度が表示されます。今回の場合、女性の方が男性に比べて生存する確率が3.39倍高かったことなどが表示されています。

f:id:virgilvd:20190224135129p:plain

その他にも「Pclass」が「1」、すなわち最上位のチケットの人は生存する確率が2.06倍高く、「Embarked」が「C」、すなわちフランス北部シェルブールで乗船した人の生存率が1.61倍高かったことなどが結果に出ています。

ここまでは、カテゴリカルデータでの要因でしたが、量的データの項目の場合は散布図でその相関を導いてくれます。(上記Pclassにも関係していますが)「Fare」が61.74上がる毎に生存する確率が1.22倍になることを示しています。

 

f:id:virgilvd:20190224135217p:plain

上位セグメント

2種類ある内のもう一つの結果が「上位セグメント」です。「上位セグメント」のタブを開くと、要因の分析に選んだ項目(今回でいうと「Survived」が「1」)を多く含むセグメントを提示してくれています。下記図では、セグメント1の94.7%が「Survived」が「1」となっていることを示しています。

f:id:virgilvd:20190224135532p:plain

バブルを選択すると、そのセグメントの詳細を確認できます。試しにセグメント1を確認してみると、「女性」かつ「チケットが最下位のものでない」人たちの生存率が高かったことが分かります。

f:id:virgilvd:20190224135549p:plain

ちなみにセグメント2は、「出港地がサウサンプトンではない、チケットが最下位の女性」で69.6%。セグメント3は、「年齢が36.75歳以下で、運賃が15.17より高く、チケットが最上位の男性」で47.5%とのことです。

フィルターをかけることも可能

Power BIのスライサービジュアルを使うことで、分析の対象を柔軟に変更することも出来ます。下記図のように、スライサーを使って「20歳以下の男性」と条件を指定してみると、また違った結果を即座に導き出してくれました。

f:id:virgilvd:20190224135657p:plain

戦術や分析に関して、こういう見方もあるよ、こうして見た方がいいよ、などご意見等ありましたら、コメントで教えていただけると幸いです。ぜひよろしくお願いいたします!