Mahoutで体感する機械学習の実践

第6回 「商品を買ってくれるのはどのような人か」を予測するには

この記事を読むのに必要な時間:およそ 2 分

分類器を用いて予測モデルを構築する

  • 「この商品を買ってくれるのはどのような人か?」

それを予測できれば,すべての顧客へ画一的にアプローチするのではなく,購入確率のより高い消費者を優先できるようになり,高い費用対効果が期待できます。

また,以下のような応用も期待できます。

  • 「あなたにおすすめの商品」などのレコメンデーション機能を実現する
  • 消費者に送信するDMに,その消費者が購入する確率の高い商品を優先していれる

では,予測は機械学習を用いて,どのように実現するのでしょうか。

機械学習は,本連載の第1回目でも取り上げたように,以下の2つに大別されます。

  • 教師あり学習
  • 教師なし学習

このうちの「教師あり学習」は,その手法から,さらにいくつかに分別されます。その中でもよく利用されるのが,分類器(Classification)と呼ばれる手法です。

分類器は,以下の手順でデータを分類します

  1. 事前に与えられた教師データを解析し,教師データを分類しているルール(以下,モデル)を発見する
  2. そのモデルをもとに,その後与えられる解析対象のデータを分類する

前回で教師あり学習の例として取り上げたスパムフィルタも,事前に教師データとして与えられた「スパムメール」「スパムでないメール」からモデルを作成し,そのモデルをもとに,新たに受信したメールがスパムかスパムでないか分類したのを思い出してください。

今回の購買予測では,過去に「ある商品を購入した顧客」「ある商品を購入しなかった顧客」の情報を教師データとして利用することで,その商品を購入するルールを発見し,それを利用して予測を実現します。

分類過程をツリー構造で表現する「決定木」

分類器には多くの種類があります。そのうちの1つに,決定木(または決定木学習)と呼ばれる手法があります。

図1は,Aさんがどのような条件下で外出するかを表した決定木です。

Aさんがこれまで外出した場合と外出しなかった場合のそれぞれの気象条件図2を教師データとして,この決定木は作成されています。

図1 Aさんの外出条件を表した決定木(モデル)

図1 Aさんの外出条件を表した決定木(モデル)

図2 Aさんの外出の有無と気象条件 (教師データ)

図2 Aさんの外出の有無と気象条件 (教師データ)

教師データは全部で14件あり,それぞれ温度,湿度,天気,風の強さ,そして実際に外出したかどうかが記録されています。

ここから作成された決定木は,まず,一番上から天気で分類が行われ,以下の3つに分岐しています。

  • 晴れ
  • 曇り

ここで「曇り」「外出する」しか結果がないため,ここで分岐は終了します。一方,「晴れ」「雨」は,まだ「外出する」「外出しない」双方の結果を含んでいるため,分岐は継続します。

次に「晴れ」「温度」,「雨」「風邪の強さ」を条件に分岐を行い,ここでそれぞれ分岐が終了します。

このように,決定木は,結論にたどり着くまで条件分岐を繰り返すことで,その結論にたどり着くまでの条件と,その順序を視覚的に表すのです。

図1の決定木から,Aさんが外出するかどうかの意思決定において,以下のことがわかります。

  • 最も優先される条件は「天気」
  • 次に優先される条件は、雨の日は「風の強さ」,晴れの日は「温度」
  • 「湿度」は条件に含まれない

今回はサンプルとして14件の教師データを利用しましたが,実際の学習データは大量になることが多いです。また,考慮する変数は「温度」,「湿度」,「天気」,「風の強さ」の4つでしたが,もっと多くになることも珍しくありません。

そのような大量で複雑なデータから,目視で適切な分類過程を導き出すことは容易ではありません。しかし,このように決定木を利用することで,適切な分類過程が導き出されます。

決定木を分類器として用いた場合,生成される決定木がモデルとなります。モデルを生成し,新たなデータ(上記の場合,気象条件)をモデルに当てはめることで,それに対する結果(Aさんが外出するか,しないか)を予測することができるようになります。

著者プロフィール

やまかつ(山下勝司)

開発/インフラ/統計,機械学習/プロジェクトマネージメントをこなす器用貧乏。最近はビッグデータ,Hadoop,機械学習あたりに夢中。

株式会社マーズフラッグ 先端研究開発本部所属。

趣味は妻と子供と過ごすこと。

Twitter:@yamakatu
Facebook:http://www.facebook.com/katsushi.yamashita.9

コメント

コメントの記入