1
1

Pythonで決定木分析して可視化してみる

Posted at

背景

あるcsvデータを決定木で可視化したくなったのでやってみる by python

まずはChatGPTに聞いてみる

俺: python x google colabでcsvデータを決定木で可視化したい。手順教えて。

ChatGPT: Python で CSV データを読み込み、決定木で可視化するためには、pandas ライブラリでデータを読み込み、scikit-learn ライブラリで決定木モデルを構築し、matplotlib および graphviz を使って可視化するのが一般的です。 ~略~

前処理

  • 数値型以外のデータは受け付けなかったので事前に取り除きました

実装

# 必要なライブラリのインポート
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.metrics import accuracy_score
import graphviz

# /content/hoge.csv ファイルの読み込み
df = pd.read_csv('/content/hoge.csv')

# ターゲット変数と特徴量を指定 (ここでは 'target' 列をターゲットと仮定)
X = df.drop('target', axis=1)  # 'target' 列を除外
y = df['target']  # 'target' 列
X.fillna(0, inplace=True) # Nanがあるとエラーになるので0にする

# データを訓練セットとテストセットに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 決定木モデルの構築
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# テストデータでの予測と精度の評価
y_pred = clf.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))

# 決定木の可視化
dot_data = export_graphviz(clf, out_file=None, 
                           feature_names=X.columns,  
                           class_names=str(clf.classes_),
                           filled=True, rounded=True,  
                           special_characters=True)  
graph = graphviz.Source(dot_data)  
graph.render("/content/decision_tree")  # PDF ファイルとして保存
graph  # Jupyter Notebook または Colab で直接表示

簡単!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1