見出し画像

元大学教員の高校教諭が総務省「情報II」教材を利用した機械学習の授業案を考えてみた|第4回:ランダムフォレストによるAI構築

こんにちは。ヒューマノーム研究所・次世代先端教育特命研究員の辻敏之と申します。普段は中学・高校の教員をしながら、ヒューマノーム研究所のお手伝いをさせていただいています。

この連載では総務省から発表された「高等学校における「情報II」のためのデータサイエンス・データ解析入門」を授業で活用するアイデアについて共有します。

無理なくデータ解析全体の流れを学ぶことに主眼を置き、授業内でプログラミングレスな初心者向けノーコードAI構築ツール Humanome CatData(以下 CatData)とHumanome Eyes(以下 Eyes)を利用することで、生徒がより楽しくデータサイエンスが学べます、という提案です。

本稿内の全ての図は、記事の最後にPDF形式で無料配布します。授業でスライドとして示すなどしてご活用下さい。

これまでの連載は以下のリンクよりお読み下さい。

第2回ではSVMを用いた2群判別AIの構築を、第3回では第2回で作成したAIのブラッシュアップを行うために、データ解釈に重きをおいた解説を行いました。第4回となる今回は、ランダムフォレストを用いたAI構築について説明します。

1. 今回の目標

テキストでは、高校生の美緒さんがご両親が経営するケーキ屋さんの売上を伸ばすために、常連さんを増やそうと考えます。どんなお客さんが常連になるのかを知るために、授業で習った「決定木」を用いてデータ解析を行います。決定木を可視化して、顧客の購入金額やポイントカード所持状態などと常連になるかどうかの関わり合いについて分析しています。

このアプローチは非常に重要です。第3回でお話ししたように、データを解析することでデータの理解を深めようとしているという点で美緒さんのデータリテラシーの高さを見せつけられる展開だと思います。ホント、美緒さん素晴らしい。

本稿では、美緒さんが行った「常連さん予測AI構築」をランダムフォレストという手法を用いて行います。テキストではランダムフォレストをコラム的に紹介するにとどまっていますが、実際には非常に優秀な機械学習手法のひとつとして知られており、広く利用されています。大きな特徴として、目的変数(この場合だと常連かどうか)の予測に用いた各特徴量の重要度を求められることが挙げられます。

では早速CatDataで解析していきましょう。総務省のサイトで配布されている decision.csv をスプレッドシートに移植し、項目名を日本語化したデータを以下に準備しましたので、こちらをご利用ください。

2. データを可視化し、観察する

では、前回までと同じ手順で解析していきましょう。

  1. 新規テーブルの作成

  2. ファイルアップロードからGoogleスプレッドシートをオンにして上のURLをアップロード

  3. 「常連(regular_customer)」と「ポイントカード所持(point_card)」の型を「カテゴリ」に指定して「保存」

  4. 用途を「学習」にして「保存」

  5. 欠損値がないことなどを確認して「確認」

  6. 可視化ボタンがあることを確認して「可視化」

と進んでください。

可視化画面では列1に「常連(regular_customer)」、列2に「累積購入金額(total_purchase_amount)」を選んでみてください。すると以下のような蜂群図が示されます(図1)。

図1. 常連と非常連の累積購入金額の関係

2-1. 蜂群図

図1を見て、アレ?と思いました。常連(regular_customer)とポイントカード所持(point_card)の列はカテゴリとなる列で、「あり / なし」に関する情報が0と1で示されています。この蜂群図をみるまでは常連である場合「1」と示されていると思いこんでいました。しかし、「常連」の値が0の方が購入金額が多く不自然です。

他の要素も確認してみた結果、常連とポイントカードのある/なし情報は以下のように示されていました。みなさんもぜひご確認ください。

  • 常連である:0

  • 常連ではない:1

  • ポイントカードを持っている:0

  • ポイントカードを持っていない:1

このようにデータを実際に可視化することで気づくことはたくさんあります。絶対に可視化のステップを飛ばさないようにしてください。きっと、このデータがもつ不自然な感じも「ちゃんと可視化して観察しろよ!!」という総務省からのメッセージに違いありません。ええ。

こういうところで不自然だと認識できるか?については、かなり難易度が高いかもしれませんが、フラットな気持ちでデータを観察することが重要です。生徒たちがこれに気づくか試してみるのも面白いかもしれませんね。

2-2. 散布図

続いて、散布図を書いてみます。列1を「来店回数(number_of_visits)」、列2を「累積購入金額(total_purchase_amount)」、色を「常連(regular_customer)」にしてみましょう(図2)。

図2. 来店回数と累積購入金額の関係

この図を見ると常連は来店回数が多く、たくさん購入していることがわかります。ただし、常連ではない人にもある程度来店し、一定量購入している人がおり、図2の楕円で示した辺りに重なりがあることがわかりました。ポイントカードの所持情報を加えることで、これらが分けられるようになるのかという点に注目しながら学習に進みましょう。

生徒にも自由に可視化をさせてみて、どうしたら常連を予測できそうか考えさせて、文章にさせるのは面白いと思います。言語化することの難しさと、可視化することの手っ取り早さを知ることができるのがポイントです。

3. 観察結果を踏まえて、学習モデルを構築する

では、前回までと同じ手順で学習モデルを構築します。

  1. 右上の「← 前処理」から前処理に戻る

  2. 「確認」を押して前処理結果の確認画面へ進む

  3. 「学習」を押して、ダイアログを確認して学習画面へ進む

  4. 学習画面で「モデルの新規作成」からモデルの新規作成ダイアログを呼び出す

今回は予測対象を「常連(regular_customer)」、手法を「Random Forest」とします(図3)。

図3. 学習モデル作成時の設定

学習を開始すると学習画面に戻ります。「学習済みモデル一覧」に新しく学習したモデルが加わっているので、「評価結果」をクリックして評価結果ページに移動します。

今回のデータを使った学習モデルは、かなり良く予測できることがわかると思います。図4に混同行列を示しました。テストデータでも精度が93%あります。ここには示しませんが、ROCカーブを見ても非常に良い学習モデルであることがわかります。

図4. ランダムフォレストで学習したモデルの混同行列

評価結果ページの最後には、今回作成したモデルに対する「変数の重要度」が示されています(図5)。このグラフは、予測したいカテゴリ(目的変数)を予測するために用いたいくつかの変数(説明変数)の中で、どの変数が重要だったか?を示しています。今回は「ポイントカードを所持している」ということが最も重要で、次に「累積購入金額」が続くことがわかります。

図5. 変数の重要度

さて、最初の美緒さんの目論見に立ち返りましょう。

今回の解析の目的は来店回数、累積購入金額、ポイントカード所持という3種のデータから、その顧客が常連かどうかを予測すること。……ではなく、常連になるお客さんはどんな人なのかを明らかにすること、そして常連を増やすことでした。図5の結果から「ポイントカードを渡すこと」が常連を増やす最も適切な近道と言えそうです。

しかし、本当のところを話しておくと「ポイントカードを所有している」ことの意味合いが

  • ポイントカードを持ったから常連になった

  • 常連になったからポイントカードを持ってる

この2つのどちらなのかは、この解析だけではなんとも言えません。ここで言えることは、「ポイントカードを持っている」ということと「常連」ということに相関があるということだけです。その点に気を遣って授業を進めることをおすすめします。

「ポイントカードを持つ人の属性が、上の2つのどっちなのかを明らかにするためにどんなデータが必要か?」という問いを考えてみることはデータサイエンスとして非常に重要です。

4. 本稿のまとめ

今回は「顧客データから顧客を常連にするために、どの要素に着目すべきか?」をデータ解析で知ることはできないだろうか。という観点で解析を進めました。結果、ランダムフォレストを用いた精度の良い学習モデルを構築し、その変数の重要度を確認することで、常連になることとの関係深い要素を見つけることができました。

このようにランダムフォレストは学習モデルの構築とともに変数の重要度を示すことができる、非常に優秀な機械学習の手法です。少し学習モデルの傾向に引っ張られやすい(過学習しやすい)傾向があることは否めませんが、それを差し引いても大変優秀な手法だと言えます。

CatDataにはSVMとランダムフォレスト以外にもニューラルネットワーク、ロジスティック回帰といった方法が実装されています。次回は、連載第2〜3回で触れたスマホの故障歴データを利用し、CatDataが備えている機械学習手法を使うことで、更に優れた学習モデルが作れないかどうかについて検討したいと思います。

なお、今回の記事内で使用した図はPDFにまとめました。以下のリンクよりダウンロードして下さい。授業でのスライド用途などにご利用いただけます。また、本連載は下記リンクからまとめて読むことができます。

次回もぜひお読み下さい。

※ 筆者紹介
辻敏之:機械学習やIoTデバイスを用いた先進的な教育活動に興味があります。好きなことは写真撮影と美味しいものを食べること。普段は中高生に理科を教えたり、研究指導したりしています。


連載第4回図版資料

本資料はクリエイティブ・コモンズ 表示 4.0 国際ライセンスの下に提供しています。

5. データ解析・AI構築の初学者向け自習テキスト

表データを利用したAI学習テキスト(Humanome CatData

画像・動画を利用したAI学習テキスト(Humanome Eyes)


AI・DX・データサイエンスについてのご質問・共同研究等についてはお気軽にお問い合わせ下さい!

この記事が気に入ったらサポートをしてみませんか?