決定木回帰分析入門:重要性と使い方を徹底解説【コード有り】

データ分析

こんにちは、nissyです。

今日は「決定木回帰分析」について説明します。

決定木とは、データを分類するための構造を作り出すシンプルで直感的な手法です。
「決定木回帰分析」は、データの複雑なパターンを捉えつつ、その結果を人間が理解しやすい形で提示する強力な手法と言えます。

このブログでは、決定木の基本的な概念を紐解きながら、どのような利点を持っているのかを理解していただくことを目指しています。

決定木の基礎

決定木は、その名の通り木の形をしていて、データの特徴と目的変数との関係を表現します。この「木」はノード(Node)とエッジ(Edge)という二つの主要な要素から成り立ちます。

ノードはデータの特徴を表現し、エッジはその特徴に対する条件、すなわち分岐を表します。

最初のノードであるルートノードから始まり、特徴の条件に従って枝分かれし、最終的に葉ノード(Leaf Node)で予測結果が出力されます。

データセットに含まれるデータは、全ていずれかの葉に属することになるので、決定木はデータを葉の数に分割することとイコールである

決定木はルールベースのモデルであり、データセットの特徴と目的変数の関係を最もよく表現するルール(分岐条件)を探索します。それ故に、最適化されたモデルを人間でも解釈できる事が大きな利点です。

決定木アルゴリズムの学習の流れは以下のようになります。

  1. 対象となる特徴量を1つ選択する
  2. 閾値候補を作成(計算)する
  3. 評価関数に基づき閾値候補の中から最適な閾値を選択する
  4. 1〜3を繰り返し、決定係数やRMSEを基に最適な木の深さを決定する

 

また決定木は、非線形な関係性を表現することが可能です。

これは、決定木が特徴空間をルールに基づいて分割し、各領域で独立に予測を行うためです。
この方式により、複雑なパターンや非直線的な関係性をモデルに組み込むことが可能になります。

一方で、決定木は深く成長させると訓練データのノイズに対してルールを適合してしまうため、過学習に陥りやすいと言われます。

決定木回帰分析を行うときは、これらの利点と欠点を考慮しつつ使用する必要があります。

Pythonで決定木回帰分析を実装

今回も「ボストン住宅価格データセット」を用いて「決定木回帰分析」を行っていきます。

まずは使用するライブラリーをインポートします。

 

次にボストン住宅価格データセットを用意します。実務の状況に近づけるためにデータフレームの形でデータセットを確認します。

 

以下のコードでデータを学習データとテストデータに分割します。決定木はルールベースのモデルなので、正規化は不要です。

学習曲線

決定木アルゴリズムを最適化するための主なハイパーパラメータは以下の4つです。

max_depth 決定木の最大の深さを指定する。深さが深いほどモデルは複雑になり、過学習になる可能性が高くなる。一方で、深さが浅いとモデルは単純になり、未学習(underfitting)になる可能性が高くなる。
min_samples_leaf リーフノード(決定木の末端のノード)に必要な最小のサンプル数。min_samples_leafの値が大きいほどモデルは単純になり、過学習を防ぐことができる(バリアンスが低くなり、バイアスが高くなる)。しかし、値が大きすぎるとモデルが単純すぎてデータのパターンを捉えられなくなります。

以下でクロスバリデーションを用いて、max_depthの最適化を行います。

 

ハイパーパラメータチューニングの学習曲線を示します。

 

 

チューニングされたハイパーパラメータを用いて決定木モデルを構築します。

 

決定木回帰の解析結果がどの程度の予測精度を有しているかを直感的に理解するためにyyプロットを作図します。

 

決定木の出力

最適化された決定木構造を出力します。

 

上記のグラフの見方を以下に示します。

木構造が深く(下にいく)なるにつれて二乗誤差が小さくなっているのがわかります。

この値を指標に決定木モデルが最適化されるように学習を行います。

 

決定木重要度の出力

決定木では、各ノードでの分割に使われた特徴量から特徴量重要度を計算できます。それにより特定の特徴量がモデルの予測にどれだけ影響を及ぼしているかを数値化します。

重要度は大きいほど重要で、全特徴量の合計が1になるように正規化されます。

特徴量重要度を理解することで、モデルの動作を深く理解し、特徴の選択やモデル改善に役立てることができます。

以下のコードで特徴量重要度を出力します。

 

以下のコードで特徴量重要度をグラフ化します。

 

 

 

まとめ

今回は、直感的でルールベースのモデルである「決定木回帰分析」について解説しました。

決定木は、データの特徴と目的変数との間の関係を視覚的に捉え、解釈しやすい予測を提供します。また、モデルが意思決定を行う過程を明確に示すことで、特徴の重要性や予測の根拠を解釈できます。

さらに、非線形の関係性も捉えられるという大きな利点を持っています。

Pythonを使った決定木回帰分析の具体的な実装法やについても紹介しましたので、是非このツールを活用していただけばと思います。

 

データ分析
未経験の壁をぶっこわ〜す!化学系データサイエンティスト転職ブログ

コメント

タイトルとURLをコピーしました