決定木分析(第2回) テキストマイニング編

決定木分析(第2回) テキストマイニング編

テキストで決定木分析

テキストでも決定木分析が可能

 内閣支持を問う世論調査結果が新聞に掲載されています。データは電話で収集しているようです。
 私も自宅へ電話がかかてきてモニターになったことがあり、例の機械音声「支持するは1を、支持しないは2を・・・」の案内に従ってボタンを押すわけです。

回答者内閣支持人柄外交経済
支持する 
支持しない×× 
C支持しない×  

 手書きアンケートであれば元のデータはこのようなものだろうと思います。電話アンケートですから「〇、×」のところが数字になってるのでしょう。
 このようなデータを集計して支持する人の割合%や支持する人のなかの理由の割合%の円グラフ等を新聞は掲載しています。

 円グラフ・棒グラフは数字を直感的に認識できるところがよいのですが、例えば「支持する政党別」なら政党数のグラフが必要になります。
 一方で決定木分析は1枚の図で表現できます。ここに決定木の大きなメリットがあるのだろうと思います。

テキストの場合
今回のデータ 前回(テキストマイニング)
ケーキトッピング賛否回答者 好きな食べ物年代回答者
イチゴ、バナナ賛成A イチゴ、バナナ10代A
イチゴ賛成B イチゴ10代B
ミカン、イチゴ反対C ミカン、イチゴ20代C
ミカン反対D ミカン20代D
バナナ、イチゴどちらともいえないE バナナ、イチゴ30代E
バナナどちらともいえないF バナナ30代F

 今回のデータ(左側)です。テキストマイニング(対応分析)で使用したものと内容は同じです。

 前回は「外部変数」が年代でした。今回は「外部変数」にあたる部分を「賛否」に変更しました。ケーキへトッピングする果物の賛否を聞いたアンケート結果です。回答は複数回答MAです。

 ご覧のようにデータは文字列(テキスト)です。テキストマイニングツール(KHcoder)でクロス集計表をつくり、分析するためにデータを数値化します。。

手順

クロス集計表をつくる
賛否イチゴバナナミカン
賛成110
賛成100
反対101
反対001
どちらともいえない110
どちらともいえない010

 KHcoderへテキストを読み込みます。
・「ケーキトッピング」列を「分析対象テキスト」に設定します。
 今回はクロス集計データをつくるだけなので「回答者」列は不要です。

 KHcoderの
・「ツール」→「文書」→「文書×抽出語表の出力」→「CSVファイル」→「最小出現数=1」に設定して保存します。
 保存したCSVファイルへ「賛否」の列を追加すれば完成です。テキストマイニングツールの役割はクロス集計データ作成まででいったん終わりです。

Rで分析
R 決定木分析結果


 Rの分析手順は前回と同様です。
・「ミカン」が入っていると「反対」
・「ミカン」がなく「イチゴ」もなければ「どちらともいえない」なので「バナナ」だけの場合が「どちらともいえない」です。
・「ミカン」がなく「イチゴ」があれば「賛成」が多数ということです。

何を計算しているのか
決定木 分離イメージ


<第一段階>
・イチゴの有無を質問する
イチゴがある場合{賛成、賛成、反対、どちらともいえない}
イチゴがない場合{反対、どちらともいえない}
・バナナの有無を質問する
バナナがある場合{賛成、どちらともいえない、どちらともいえない}
バナナがない場合{賛成、反対、反対}
・ミカンの有無を質問する
ミカンがある場合{反対、反対}
ミカンがない場合{賛成、賛成、どちらともいえない、どちらともいえない}

 従ってミカンの有無によって切り離される。
 「ミカンがあるノード」が{反対、反対}だから純度が最も高くなり第一段階として切り離される。
 「ミカンがあるノード」は{反対、反対}だからこれ以上の分離ができない
 「ミカンがあるノード」への質問は終了する。

<第二段階>
ミカンがない場合{賛成、賛成、どちらともいえない、どちらともいえない}が残っている。
・イチゴの有無を質問する
イチゴがある場合{賛成、賛成、どちらともいえない}
イチゴがない場合{どちらともいえない}
・バナナの有無を質問する
バナナがある場合{賛成、どちらともいえない、どちらともいえない}
バナナがない場合{賛成}
・ミカンの有無を質問する
ミカンがある場合{null}
ミカンがない場合{賛成、賛成、どちらともいえない、どちらともいえない}

 従ってイチゴの有無によって切り離される。
 「イチゴがないノード」が{どちらともいえない}だから純度が最も高くなり第二段階として切り離される。
・「イチゴがないノード」が{どちらともいえない}だからこれ以上の切り分はできない。
 「イチゴがないノード」への質問は終了する。

<第三段階>
イチゴがある場合{賛成、賛成、どちらともいえない}が残っている。
・イチゴの有無を質問する
イチゴがある場合{賛成、賛成、どちらともいえない}
イチゴがない場合{null}
・バナナの有無を質問する
バナナがある場合{賛成、どちらともいえない}
バナナがない場合{賛成}
・ミカンの有無を質問する
ミカンがある場合{null}
ミカンがない場合{賛成、賛成、どちらともいえない}

 従ってイチゴの有無によって切り離される。
 「イチゴがないノード」が{null}だから純度が最も高くなり第三段階として切り離される。
 ところが「イチゴがないノード」が{null}だから切り離しても結果的にのこるのは{賛成、賛成、どちらともいえない}になる。

第二段階と第三段階が解せない

 第二段階で
・イチゴがない場合{どちらともいえない}
・バナナがない場合{賛成}の両方が成立している。
 ところが
・イチゴがない場合{どちらともいえない}が優先されるのはなぜ?
・ミカンがある場合{null}も成立している。

 第三段階で
・イチゴがない場合{null}
・バナナがない場合{賛成}の両方が成立している。
 ところが
・イチゴがない場合{null}が優先されるのはなぜか?
・ミカンがある場合{null}も成立している。

賛否バナナイチゴミカン
賛成110
賛成010
反対011
反対001
どちらともいえない110
どちらともいえない100
R 決定木分析結果 列入れ替え


 

 決定木分析にはルールがあります。列の左側から質問をします。
 はじめのデータでの質問順は
・イチゴ→バナナ→ミカンです。

 第二段階で同じ純度のノード、イチゴがない場合{どちらともいえない}とバナナがない場合{賛成}の両方が成立しているときには、先の質問結果が優先されます。
 ということでイチゴの有無によってイチゴがない場合{どちらともいえない}が分離されます。

 第三段階も同じです。イチゴの有無によってイチゴがない場合{null}がバナナがない場合{賛成}よりも先に分離されます。

データのイチゴとバナナの列を入れ替えて決定木分析を行うと、バナナの有無が優先されて切り離されます。データの並べ方で違う結果になる!このことには注意が必要です。

>決定木分析(第1回) 売れる理由 売れない理由