決定木(Decision Tree)を作って可視化する

Exploratoryのバージョン5.0から、決定木(Decision Tree)がアナリティクス・ビューに追加されました。今日は、この機能を使って、決定木を可視化する方法をご紹介します。

データの準備

今回は、タイタニック号が沈没した事故の乗客のデータを用いて、どんな条件の人が生存率が高かったのかを、決定木を使って調べてみたいと思います。データは、rpart.plotというRのパッケージに付属でついてくるデータを使用します。データを予め用意しておきましたので、こちらからCSVをダウンロードしてください。

ダウンロードが完了したら、Exploratoryにデータをインポートします。左側のツリーの「データフレーム」の右横にある+ボタンを押して、「ファイルデータ」を選択します。

データの種類を選択するダイアログが現れます。「テキストファイル」を選択します。

先ほどダウンロードしたファイルを選択すると、データのインポート画面が現れます。データを確認して、「保存」ボタンを押します。

インポートが完了すると、以下のように「TitanicData」というデータフレームがプロジェクトに追加されます。

決定木を作成する

データが準備できたところで、さっそく決定木を作成してみましょう。画面上部のタブから「アナリティクス」を選択してアナリティクス・ビューを表示し、タイプに「決定木」、目的変数に「survived」、予測変数にsurvived以外の全ての列を指定します。

実行ボタンを押すと、決定木が表示されます。

決定木を上から見ていくと、まず、男性か女性かで分岐しています。左側がYes、右側がNoと書いてありますので、2段め左側の箱は男性の箱、右側の箱は女性の箱となります。これによると、乗客の36%は女性で、女性であるというだけで73% (0.73)もの生存率があった(男性の場合は19%)ということがわかり、同名の有名なあの映画は割とデータに忠実に作られている、ということがわかります。女性の場合をさらにみていくと、次に、3等客室(pclass)かどうか、という条件で分岐しており、右側がNoですので、3等客室以外、この場合、それよりいい客室にいた場合は、生存率はなんと93% (0.93)であったことがわかります。

また、決定木のアナリティクス・ビューでは、決定木自体の可視化以外にも、作成された決定木のモデルに関する様々な情報を得ることができます。たとえば、変数重要度のリンクをクリックすると、どの変数が決定木に影響を与えているかがひと目でわかります。この場合、性別が生存率に大きく影響していたということがわかります。

また、予測マトリックスでは、この決定木モデルに実際にデータを当てはめてみて、モデルが予測した最終的な判断 (生き残ったかそうでないか) が実際のデータとどの程度あたっているかをみることができます。

たとえば、乗客のうちの一人が、1等客室の女性で生き残ったものだったとします。このデータをこの決定木モデルに当てはめてみると、先ほど見たとおり、データは分岐を繰り返して最終的に右端の箱にたどり着きます。右端の箱の判断は survived (生き残った) ですので、この場合はモデルの予測と実際の結果がどちらも「生き残った」ということになります。

この作業をすべてのデータに対して行った結果が、予測マトリックスになります。左上と右下を結ぶ対角線が予測と実際の結果が同じだった、ということになりますので、この数字の合計が、そのままこの決定木のモデルの精度になります。この場合は 57.22 + 25.29 = 82.51% ですので、8割以上は当たるモデル、ということになります。

まとめ

Exploratoryを使うと、決定木を簡単に可視化できることがおわかりいただけたかと思います。今回は、タイタニック号のデータを用いて決定木を表現してみましたが、決定木は実際のビジネスシーンでも重宝するアルゴリズムです。たとえば、契約成立の可否の情報を含む顧客情報に対して決定木を作ると、どのようなタイプのお客様が契約にたどり着きやすい、といったことをツリーで視覚的に表現することができます。ぜひ、様々なデータで試してみてください。


まだ、Exploratory Desktopをお持ちでない方へ

まだExploratory Desktopをお持ちでない場合は、こちらから30日間無料でお試しいただけます。クレジットカード等の登録は必要ありません。ぜひ、お試しください。


データ分析をさらに学んでみたいという方へ

Exploratory社では、同社がシリコンバレーで行っている研修プログラムを日本向けにした、データサイエンス・ブートキャンプを、東京で定期的に開催してます。上記のようなデータサイエンスの手法を、プログラミングなしで学んでみたい方、そういった手法を日々のビジネスに活かしてみたい方はぜひこの機会に、参加を検討してみてはいかがでしょうか。こちらに詳しい情報がありますのでぜひご覧ください。