経済統計の使い方
統計初心者の社会人向けに、経済データの解説をしています。「まとめページ」をご覧くだされば、全体的な内容がわかると思います。
python

【python】決定木の分析|機械学習の中では解釈が容易

ここでは、pythonを使った決定木の分析を説明します。機械学習に分類されますが、手法自体は古くからあり、解釈がしやすいのが特徴です。

決定木の分析をする前に、データをあらかじめ加工しておく必要があります。

経済統計の使い方では、統計データの入手法から分析法まで解説しています。

【python】pythonのまとめ 経済統計の使い方では、統計データの入手法から分析法まで解説しています。 https://officekaisuiyoku.com...

カテゴリー変数の数値化

カテゴリー変数とは、「良い」「悪い」とか、「A型」、「B型」、「AB型」、「O型」など、いくつかのカテゴリー(種類)に分けられるデータです。

これを計算に使うには0や1などに数値化する必要があり、それをエンコーディングと呼びます。

scikit-learnのproprocessingモジュールのLabelEncoderを使います。

le.transfirm()で数値に変換します。そのままだとarrayになるので、pandasのSeriesの形にするため、pd.Series()を使います。

from sklearn.preprocessing import LabelEncoder
le=LabelEcoder()
le.fit(y)
y=pd.Series(le.transform(y))

fitとtransormの役割についてはまだわかっていません。

データの正規化

データの大きさをそろえるために、正規化します。ここでは、最小最大正規化を行いました。データの最大値と最小値を使って、最小値が0、最大値が1となるようにします。

$ x’= \frac{x-最小値}{ 最大値-最小値 } $

scikit-learnのproprocessingモジュールのMinMaxScalerを使います。fitとtransformを使うのはLabelEncoderと同じです。

from sklearn.preprocessing import MinMaxScaler
mmsc=MinMaxScaler()
mmsc.fit(X)
X=pd.DataFrame(mmsc.transform(X))

結果は以下のようになります。

カラム名がなくなったので、わかりやすい名前を付けておきます。

X.columns=[“IIP”,”SeisanZai”,”TaikyuSyohizai”,”RoudouTounyuRyou”,”Toushizai”,”Kouri”,”Orosiuri”,”EigyoRieki”,”YuukouKyujin”,”Yusyutusuuryou”]

決定木の作成

決定木を作成します。データは、景気の状態を説明変数、景気動向指数の10個の指標を説明変数として、決定木による分析をしてみます。景気動向指数の各指数は、最大値と最小値を使って正規化しています。

DecisionTreeClassifierを使います。ここで使うモデルは、treeという名前です。枝の数は3としています。

from sklearn.tree import DecisionTreeClassifier
tree=DecisionTreeClassifier(max_depth=3)
tree.fit(X_train,y_train)

決定木の描画

上のモデルを使って、木を描いてみます。plot_tree関数を使います。

from sklearn.tree import plot_tree
plot_tree(tree,feature_names=X_train.columns,filled=True )

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA