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

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

【データ分析 × Watson】Watson Studioを使ってリヴァプールのスタッツから自動でモデルを生成してみる

今回はPythonではなくWatsonです。IBMのAIであるWatsonの機能を利用して、自動で予測モデルを作成してみたいと思います。まずは以前使用したリヴァプールの前半戦スタッツを使ってみますが、データ量が少ないので精度は出ないと思われます。まずはやってみる精神で、参考程度にどんな感じなのか使ってみましょう。

f:id:virgilvd:20190125005155p:plain

▲ポチポチするだけでこんな感じのアウトプットが出来ます。

Watson/Watson Studioとは

WatsonはIBMのAIの名称です。AmazonのAlexaやAppleのSiriと同じような括りになります。ただし、AlexaやSiriが一般ユーザー向けのAIなのに対し、Watsonはビジネス寄りのAIとなるので認知度は少し劣っていると思われます。

今回使用するWatson Studioは、Watsonの機能を使えるデータ分析環境になります。単純なデータ分析だけではなく、予測モデルを自動で選択/生成してくれるなど高度な分析も出来る他、データのクレンジングやデータの可視化/共有なんかも出来るツールです。

Watson Studioの環境を立ち上げる

Watson Studioを利用するには、IBM Cloudのアカウントが必要になります。無料のLiteアカウントでも一通りの機能は使えるので、まずはLite版で十分すぎると思います。Watson Studioを始めIBMのサイトは色々とイケていない部分もあり、特にサイトの構成がめちゃくちゃ分かりにくいのでご注意下さい。

アカウントを作成したら下記サイトからログインします。

dataplatform.cloud.ibm.com

Watson Studioを立ち上げます。デプロイする地域/ロケーションの選択に、最近「東京」が追加されたそうです。レスポンスを考えると東京がおすすめです。

f:id:virgilvd:20190126170425p:plain

「Get Started」をクリック。

f:id:virgilvd:20190126170834p:plain

「Create a project」をクリック。

f:id:virgilvd:20190126165339p:plain

「Modeler」を選択。

f:id:virgilvd:20190126165502p:plain

プロジェクトの名前とストレージを指定して「Create」

f:id:virgilvd:20190126171111p:plain

これで準備は完了です。

f:id:virgilvd:20190126171404p:plain

Watson Studioにデータを取り込む

モデル作成に向けて、まずはデータをWatson Studioの環境に取り込みます。今回使用するのは、以前使用したリヴァプールFCの18/19シーズン前半戦のスタッツ。多数あるWhoscored.comのデータを使って「リヴァプールのシュート数」を説明するモデルを作ってみたいと思います。

96lovefootball.hatenablog.com

「Assets」タブを選択し、画面右のエリアからモデル作成に使用するデータをアップロードします。

f:id:virgilvd:20190126172311p:plain

「Data assets」に表示されれば完了です。もし出ない場合は、画面右「Files」多分からアップロードしたファイルを選択し、メニューより「Add a Data as...」を選択すれば出るはずです。

f:id:virgilvd:20190126173007p:plain

SPSS Modelerを使ってモデルを自動作成する

ここからいよいよ取り込んだデータを使って、予測モデルを作成していきます(と言っても全て自動ですが)。使用するのはSPSS Modelerです。統計学を学んだことのある人であればおなじみのSPSSデータマイニングソフトのクラウド版となります。

SPSS Modelerを準備します。画面上部より「Add to project」

f:id:virgilvd:20190126173746p:plain

「Modeler Flow」を選択し、名前を付けたら「Create」

f:id:virgilvd:20190126180605p:plain

f:id:virgilvd:20190126180704p:plain

・データを取り込む

画面左側「Import」から「Data Assets」を画面中央までドラッグ&ドロップ。アイコンをダブルクリックして「Change data asset」を選択します。

f:id:virgilvd:20190126181524p:plain

先ほどWatson Studioに取り込んだデータを選択し、「Save」します。これでデータの取り込みは完了です。

・データの型を変更する

続いてデータの型を変更します。Watson Studioに型を自動判別する機能がないので、正しい型へと変換してあげる必要があります。

画面左「Field Operations」から「Type」をドラッグ&ドロップ。ドロップ出来たら先ほどの「Data Assets」とノードを結んであげます。アイコンをダブルクリックし、出てきたメニューから「Read Values」をクリックすると、「Data Assets」内のデータが読み込まれ型の自動識別を行ってくれます。

f:id:virgilvd:20190126183421p:plain

「Measure」列が型、「Role」列がモデル作成時の役割を表しています。今回はリヴァプール のシュート数が何によって説明されるのか知りたいので、リヴァプールのシュート数を「Taget」、説明に使用したい項目を「Input」、関係ない項目を「None」とします。今回「None」にしたのは、明らかに関係が薄そうな日付や対戦相手名などの項目と、シュート数が多ければ当然多くなりそうな相手ゴールキーパーのセーブ数などです。設定が完了したら「Save」をクリックします。

・データからモデルを自動生成する

いよいよモデルの作成です。「Modeling」から「Auto Numeric」を画面中央までドラッグ&ドロップします。「Type」とノードを結んだら画面上部の三角の「実行ボタン」をクリック。しばらく待っていると「Auto Numeric」と同じアイコンで黄色いものが出てきます。これが作成されたモデルとなります。

f:id:virgilvd:20190126191038p:plain

作成されたモデルは、アイコンのメニューをクリックし「View Model」で確認することが出来ます。

f:id:virgilvd:20190126192822p:plain

SPSS Modelerが凄いところが自動で有効そうなモデルを選んでくれるところ。今回は一般化線形モデル(GZLM)と決定木モデル(CHAID)が選ばれたようです。データ量の多い他のデータで試した時は、ディープラーニングのモデルも作られていました。

f:id:virgilvd:20190126193120p:plain

モデルによっては結果をグラフィカルに表してくれます。今回の決定木モデルでは下のような形で表示されます。(決定木の知識がないので、解釈出来ていないです。。すみません)

f:id:virgilvd:20190126193605p:plain

以上がWatson Studioを使って自動でモデルを作成する手順になります。作業は非常に簡単でモデル選定まで自動でやってくれるのは素晴らしいツールです。AIの活用によって人の作業が置き換わっていくと言われていますが、これからの分析もデータの準備や計算作業よりも、結果を解釈する部分により力を避けるようになってくるのだと感じられました。自分もまずは解釈できるよう引き続き学んでいきます。

こうしたツールを活かすためにも、元データを集めるスキルも引き続き身につけて行きたいと思います。 

96lovefootball.hatenablog.com

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