SONY Network Communications社が6月12日に公開したPrediction Oneを試してみました。というか、その日はちょうどITコーディネータ協会でAI研修の講師をやっている日で、昼休みに試してみて、その結果を受講者の皆さんにお伝えするということもやったのですが・・・。
Prediction Oneは機械学習による予測分析を行うツールで、Windows用のデスクトップアプリという形態です。現在は無料で公開されているので、Windows PCを使っている方はひとまずダウンロードしておくのが吉かと。(事前に申し込みが必要ですが、メールアドレスと簡単なプロフィールを登録する程度ですし、すぐに返信メールが来てダウンロードできます。)
ちなみに、SONYはNeural Network ConsoleというニューラルネットワークをGUIで組んでモデルを作るというツールも提供していますが、これもWindows用のデスクトップアプリから提供が始まり、その後でクラウド版も提供されました。もしかしたら、Prediction Oneも同じ形態になるかもしれません。
オンラインショップの購買分析・予測をしてみる
では、さっそく使ってみましょう。使用するデータセットは、UCI Machine Learning Repositoryで公開されているOnline Shoppers Purchasing Intention Datasetです。
Prediction OneはCSVまたはTSV形式のファイルを読み込むことができます。今回のデータセットはCSV形式で配布されているのでそのままで良いのですが、ここでは分かりやすくするためにタイトル行を日本語にしたものを使います。
まず、予測ターゲット(目的変数)を指定します。ここではセッション毎のユーザ行動が売上につながったかの真偽値が示されている「売上」を指定します。目的変数を指定すれば、予測タイプは自動的にセットされます。二値分類の場合は、そのどちらを予測するのかを指定することもできます。
目的変数以外の項目から、説明変数として使う項目を指定します。デフォルトではすべての項目です。データ型は数値か文字列のいずれかです。自動判別されますが、OSやブラウザの種別といったカテゴリーデータ(離散値)は数字で表現されていても文字列型を指定した方が良いのではないかと思います。
また、評価データをどうするかも指定できます。「学習データから自動抽出」がデフォルトで、交差検証をするように指定できます。また、学習データとは別に準備した評価データを指定することも可能です。
あとは「学習と評価を実行」ボタンをクリックして、数分待つだけです。
画面横のログから学習の流れを見てみると、以下のようになっていました。
- データ統計量の算出
- ニューラルネットワークの学習開始(モデル1~2)
- 勾配ブースティング木の学習開始(モデル1~6)
- アンサンブルモデルの構築
- 予測精度の評価
- アドバイスの作成
- 予測寄与度の分析
おそらく、予測タイプと統計量から見たデータの内容で、どのようなモデルを構築して学習するのかが自動判定されていると思います。今回は、ニューラルネットワークを2つ、勾配ブースティング木を6つで、計8つのモデルを作ってみたということでしょう。さらに、8つの学習済みモデルのうちいくつかを選んでアンサンブルモデル(複数のモデルを組み合わせて1つのモデルを作ることによって精度を高める手法)を作っているようです。
作成されたアンサンブルモデルで予測精度の評価を行い、さらにアドバイスや予測寄与度の作成まで行ってくれます。
評価結果はこのように表示されます。今回のモデルは分類精度が0.9472で非常に良いものとなりました。
精度評価の詳細タブをクリックすると、評価値と下記のようなグラフが表示されます。
それぞれのグラフの意味と見方が説明されているのは配慮が行き届いています。
- 混同行列
- 予測確率の分布
- 予測確率の分布と正解率
- 予測確率上位の正解率
- ROCカーブ
さらに予測寄与度の詳細も表示されます。「ページ価値平均」が売上に大きな影響を与えていることが分かります。
あれ・・・。ページ価値平均って、そのセッションが売上につながった場合に、アクセスしたページの価値が上がるはず・・・。ということで、ページ価値平均と売上の関係が高いのは当たり前・・・。
ページ価値平均は説明変数としては相応しくないのでは??
そんな分析もできてしまうのが、Prediction Oneのなかなか侮れないところだと思います。説明変数間の相関を見てみるのはデータ分析のイロハではありますが、Prediction Oneではそれに気づくきっかけも与えてくれるわけです。
出来上がったモデルはWindowsのコマンドラインから呼び出して使うこともできるので、本番環境で使うことも一応はできるでしょう。
非常に手軽ですし、CSVデータさえあればひとまず予測・分析を行うことができるので、Prediction Oneは重宝するツールになりそうです。