決定木とは決定木とは機械学習の教師あり学習の1つで、特徴量をif-else形式で繰り返し分割して予測を行うシンプルなモデルです。決定木は目的変数が離散でも連続でも使用できます。離散の場合は分類木、連続の場合は回帰木と呼ばれます。(一般的に決定木と呼んだ場合は分類木のことを指すことが多いです。)SASでは双方ともに実行可能です。今回は分類木について掘り下げていきます。VERSICOLOR)を決定木を使用して予測してみましょう。;この決定木から、以下のことが分かります。PetalWidth(花弁の深さ)が17.050以上であればVIRGINICAである確率が高い。PetalWidthが17.050未満かつPetalLength(花弁の長さ)が49.110未満であればVERSICOLORである確率が高い。それ以外はVIRGINICAである確率が高い。決定木のメリット・デメリット決定木のメリットモデルがシンプルで分かりやすく、説明が容易。特徴量が離散・連続に関わらず使用可能。決定木のデメリット過学習が起きやすく、深さ等のハイパーパラメータ(分析者が決定するパラメータ)を適切に指定しなければならない。線形性が考慮できていない。決定木は、そこそこの精度で、変数に制約が少なく、説明性に優れたモデルと考えてよいでしょう。決定木の分割方法まずは決定木はどのように分割しているかを知りましょう。決定木は、各特徴量を色々な値で分割してみて、分割後にできるだけ0と1を分離できる分割を探します。(ただ、連続値を一つずつ分割していくのは時間がかかりすぎるので、まとまりに分けて分割します。SASではデフォルトで100個のまとまりを作成します。)その際、0と1がどれだけ分かれたかを表す指標が必要になります。ジニ係数とエントロピーがあり、どちらかを選択します。SASではデフォルトではエントロピーを使用しています。決定木は深くすればするほど訓練データの当てはまりは良くなります。できるだけ深くすればよいのでしょうか。実際の予測ではうまくいかない場合があります。これを過学習と呼びます。(以下の例では、サイズが1~3のノードが多くなり、ほぼ個別に予測している形になってしまっています。)決定木では過学習が起きやすいため、SASでは過学習を抑えるために様々なパラメータが用意してあります。今回はその一部を紹介します。MAXDEPTH(木の深さ)...木の深さを設定します。SASではデフォルトが10。LEAFSIZE(最小の葉のサイズ)...最後に残った葉の数の最小値。これを大きくすると分割されにくくなります。SASではデフォルトが1。PRUNE(剪定)...決定木を作った後に、ある指標によって葉の分割を評価し、不要であれば分割を取りやめます。CC、C45、REP、Noneから選択します。SASではデフォルトがCCになっています。機械学習全般にいえることですが、精度を評価するときに学習に使用したデータを使用することは、カンニングであり、正しく評価できません。過学習しやすい決定木では正しい評価が必要になります。その対策として、最初に学習用と評価用にデータを分割し、学習用データのみで決定木を作成し、評価用データを用いて評価を算出します。一般的には7:3から8:2あたりの分割がいいとされています。SASのhpsplitではpartitionステートメントを用いて簡単に実装できます。SASの決定木の構文SASで決定木を回すための構文・主要なパラメータを紹介します。詳しくはSASのドキュメントを参照してください。実際に上記を踏まえて決定木で分析してみます。ハイパーパラメータであるmaxdepthやcriterion、prune等を変えながら分析してみましょう。path";run;IRISデータで剪定を実施した結果、深さ2の木が生成されていますね。精度は検証用の数値を見るようにしましょう。データ数は少ないですが、精度的にはかなり高いですね。まとめ今回はSASでの決定木を紹介しました。決定木はシンプルで分かりやすく、適切に使用すればとても有用なモデルになります。興味ある方は調べてみてください。決定木コメント投稿者名メールアドレス※投稿されたコメントは、管理者によって承認された後に掲載されます。Homeお問い合わせ当サイトをご覧いただきありがとうございます。当社のサービス・製品に関するご意見、ご質問等はお電話、または下記のメールフォームより受け付けております。お気軽にお問い合わせください。9:30~18:30※お掛け間違いの無いようにお気をつけください。