【MMR紹介エッセイ ~決定木分析編~】MMRを使って毒キノコを回避しよう!

【MMR紹介エッセイ ~決定木分析編~】MMRを使って毒キノコを回避しよう!

  • 2021.10.15
★この記事を読む前に★
この記事で取り上げているMMR(MacromillR)とは、マクロミルの社内ツールです。
統計解析向けのプログラミング言語であるR言語の様々なパッケージを、だれでも簡単に使えるように独自開発を行い、ツール化したものです。
Rのコードを書かずに、Rの開発・実行環境を整えていなくても、Rの便利で強力なデータ集計・分析機能を利用することができます。
こんにちは。リサーチプラットフォームUの脇田光です。皆さんは食べ物の好き嫌い、ありますか?
僕はめちゃくちゃあります。野菜がほぼ嫌いです。27歳なのに。あと食べ方がわからないので果物も嫌いです。
そんな訳で常に栄養失調の脇田ですが、食卓に出てくるものを頑なに受けつけない強い意志で幼少期を過ごしていたため、同居していた家族からは白い目で見られる食生活を送っていました。カレーが出てきたらザルでカレーを濾してルーと肉だけ抽出するような人間だったので、当然な扱いだと(今となっては)思います。
とはいえ、もうこの年まで意地を張ってきた手前、今更野菜に歩み寄ることはできません。この間も実家に帰った際、食卓に並んでいた豚汁を濾していたら、母が強めの口調で僕に言います。
母:「あんたまたそんなことして!いつまでも野菜食べれなかったら、いつか山で遭難したら死ぬよ!?」
性格が悪い僕:「じゃあ山に行って何か食べれるもの見つけたらもう何も言わないでね。」
山に来ました。

標高1235mみたいです

ここで僕が食べられるものを見つけなければいけませんが、山って想像以上に生い茂っているので食欲が湧きません。

文字通りの五里霧中状態

しばらく散策していると足元に何かあるのを発見。

キノコが結構生えています。
野菜が嫌いな脇田ですが、キノコは菌類なので食べることが可能。「山で食べれるもの」を早速見つけてしまいました。これで「野菜食べろ食べろ母」との戦いに終止符が打てるかも。決まってしまうと勝利とはむなしいものですね…。

しかしこのキノコ、初見だけど食べていいものなのか…?もしかしたら毒キノコ、なんてこともあるのでは…。一体どうすれば良いのか分からなくなったので、とりあえずこのキノコの写真だけ撮影してその日は帰宅。

途方に暮れていた僕は、「困った時は技研に相談」と誰かが言っていたのを真に受け、技術研究グループの方に相談をすることにしました。
<ご紹介>

林潔 (りんけつ)さん
中国ご出身の双子座・A型
スポーツメーカーの広報→広告代理店を経てマクロミルに入社。現在は主にMMRの開発を担当。特技は小籠包の皮作り(バスケットボール ウェアも手作りできるという噂も)
すみません、そもそもMMRのことをよく存じ上げてないのですが、何ができるのでしょうか?
MMR(正式名称:MacromillR)は技研で開発したR言語の様々なパッケージを簡単に使用できるようにしたツールです。ブラウザ上でデータを取り込んで簡単にデータ集計・統計解析が可能です。
MMRでこのキノコが毒キノコかどうか確認できるのでしょうか?
MMR内に搭載している決定木分析を使用すれば、どのようなキノコが毒キノコなのかを確認することができると思います。その上でお見せいただいたキノコが毒キノコの条件にどの程度当てはまっているのかを考えることで、毒キノコかどうかを判断できればと…。
なるほど、それによって食用キノコと分かれば母を論破することが可能という訳ですね。
お母さんは論破しない方が良いと思います。野菜は食べてください。
決定木分析とは…
決定木分析は「予測」や「判別」、「分類」を目的として使われるデータマイニング手法。顧客情報やアンケート結果などについて、“従属変数”に影響する“説明変数”を見つけ、樹木状のモデルを作成する分析方法となります。
決定木分析の活用シーン
・説明変数はSA(単一回答)、MA(複数回答)、数値回答など、
様々な設問タイプの調査結果から分析が可能
・“目的変数”に最も影響すると考えられる“説明変数”を
何度もクロス集計を繰り返すことなく明らかにできる
ネットで検索をしたらキノコの研究データを見つけることができました。このデータは毒キノコがどういう性質を持っているのかを各キノコごとに記録しているようです。
先人が残してくれた記録が僕の生き死にを握っていると思うと緊張してきました。

林さんが見つけたキノコに関するデータ。
各行に個別のキノコに関するデータが入っている模様。

このデータではPが毒キノコ、Eが食用キノコとフラグを立てており、付随してそのキノコが持つ特徴をアルファベットでフラグ立てしているみたいですね。
僕が見つけたこのキノコがどのキノコなのかは分からないですが、似た特徴を探していけば毒キノコか分かりそうですね。
まずはこのキノコのデータをMMRの決定木分析のタブ内に入れます。今回はデータ型が「character」(カテゴリーデータ)ですので、「どの分析に従うか」のタブで「質的変数」を選択します。

その後CP(complexity parameter)値というのを設定するのですが、すごく簡単に言うと出てくる結果の粒度を設定するようなイメージです。

CP値が低ければ低いほど、結果の選択肢数は多くなりますがその分精緻な結果になります。CP値が高ければ結果の選択肢数が少なくなるので、ざっくり結果を把握することができます。


CP値の探索タブにて推奨されるCP値も確認できます!

今回は僕の生死に関わることなので、CP値は低く設定したほうが良いでしょうか?
そうですね。一度CP値を少し高めにして決定木出してみましょうか。
下がCP値を「0.013」に設定した場合の決定木です。E(一番左の赤図)が食用キノコに至るチャートなのですが、現在のCP値では98.9%食用キノコですが、1.1%で毒キノコという可能性がありそうです。

なるほど、CPを高く設定すると出てくる結果の数が少なくなる代わりに分類がざっくりしているので、目的変数(今回だと毒キノコか否かという条件)が100%説明できない場合があるのですね。
では今度はCP値をできる限り低く「0.001」で設定してみます。

毒キノコか否か判定するパターンは増えましたが、E(食用キノコ)もP(毒キノコ)も100%になっています!つまり決定木分析によって、毒キノコか否かを100%分けられたということですね!
MMRではグラフの高さや横幅も整えられますし、結果テキストもダウンロードすることができます。
これ要するにどういう要素で毒キノコか否かを判定すればいいのでしょうか?
決定木分析では説明変数を表す要素として強いものから順に振り分けが行われます。この決定木を見ると、「臭気」の特徴、次が「胞子の色」「柄のカラーリング」「生息地」と続きます。毒キノコか否かを判定する際はまず「臭い」を気にして、次は「胞子の色」を確認しましょう。
今回見つけたデータでは「アーモンド臭」「特になし(無臭)」が食用キノコ、それ以外は毒キノコの可能性が高いと振り分けられています。
そういえば僕が撮影したキノコは結構独特な「くさや」みたいな臭いがしました。胞子の色は確認できなったのですが…。
臭いの特徴がある場合は毒キノコが多いようなので避けた方が良いかもしれません…。
初手で詰んでしまいました。樹形図まで作っていただのに…。どうやらこのキノコ、条件で調べると外見はカキシメジというものに近いようで、カキシメジは毒性のようです…。ご作成された決定木の判断基準は正しそうですね。
お役に立てたようで何よりです!
ありがとうございます。ではこの決定木の結果をもって、山で遭難した際には食用のキノコを探し出せば大丈夫そうですね。
その前に遭難しないでほしいです。あと野菜も食べてください。

結果的に母にも勝てないどころか、職場でのイメージを悪化させ、完全な正論ばかりを食らう形となりました。どうやら野菜は食べた方が良さそうなのですが、今回の体験を経て何よりも「MMRの凄み」を皆さんにもお伝えできたと思います。

脇田は学生時代、数学の授業中「こんなこと勉強しても生活に役立たないだろ」などと斜に構えるタイプだったのですが、統計解析1つとってもこれほど実生活に応用が利くなんて!コードを書くことなく、直感的な操作で解析が可能なMMRだからこそIQ2の脇田でも毒キノコを食べずに済みました。ありがとうMMR…。
※掲載した決定木分析、MMRではなんと45秒で出力完了しました!!
MMRには決定木以外にも多様な解析メニューに対応しています。次回違った解析メニューについてもご紹介する予定です!
あともし好き嫌いが激しいお子さんがいらっしゃる方は、うまいこと克服させないと脇田のような最悪の人間性になりかねないのでお気を付けください。