ご覧いただきありがとうございます!
こんにちは!!金沢で学生をしています、あまね(@isaka122)です!
今日は、機械学習にも使われている「決定木」というものについて勉強したことをまとめてみました!
決定木とは
決定木とは「木構造を用いて分類や回帰を表現するもの」です。
「木構造」「分類」「回帰」の意味は、それぞれ
木構造・・・根から葉というノードへ向かって一方向にエッジが伸びている型のグラフのこと。
分類・・・入力されたデータセットがどの種類になるのか判別すること
回帰・・・入力データセットと出力データセットの関係性を数式で表すことです。
決定木の仕組み
では、どのように木構造を使って回帰や分析を行うのでしょうか?
まず行うのは、データに対して条件を定義し、その定義に沿って分類することです。
例えば、「ある生物」というデータが与えられたときに、
・哺乳類かどうか?
・四足で歩くか?
・日本にも生息しているか?
・我々に身近であるか?
このような条件にしたがって入力を分類していくことで、その生物が何であるか決定できます。
決定木の長所・短所
決定木の長所・短所をまとめてみます。
決定木の長所
決定木の長所は、以下のものがあります。
- 可読性が高い(どうしてその決定がされたか見える)
- たくさんのデータを扱える
- 外れ値に対しても強い
可読性が高いとは、なぜその判断をしたのか、その過程が見えることです。
決定木は条件に応じて分類されるため、なぜその判断になったかわかります。
決定木の欠点
一方で欠点は、
- 分類性能は低い
- 過学習を起こしやすい
- 線形性のデータには適さない
- 多変数は考慮できない
このようなものが考えれられます。
決定木の学習アルゴリズム
さて、次に問題になるのは、どうやって条件を決定するかということです。
例えば、先程の例を見てみます。
・哺乳類かどうか?
・四足で歩くか?
・日本にも生息しているか?
・我々に身近であるか?
これだと、どれでもYESにしたところで、「犬」でも「猫」でもOKですよね。
正確な決定ができたとは言えません。
では、どういう方針で学習させるかというと、
ノードに入る要素の不純度を減らすような素性と閾値を決める
という方針を使います。
ここで、
不純度・・・ノード内のサンプルがどれだけ同じクラスに属するか
つまり、「猫」のなかに「犬」や「ハムスター」が入らないかということです。
この不純度計算するためにはエントロピーとジニ係数を使います。
エントロピーを用いるためには、アルゴリズムC4.5などがあります。
ジニー係数を用いるためには、アルゴリズムCARTがあります。
まとめ
以上、決定木についてまとめてみました。