graphvizを使用して分類木の可視化をしたいのですがエラーは出ないのですが、True表示になってしまいます。何度やっても理解することができなかったのでどなたか助け船をお願いしたいです。Python初心者でもわかりやすいと幸いです。
True
import pandas as pd import numpy as np ## 訓練データの読み込み train=pd.read_csv("C:/Users/Documents/university/train.csv") train_shape=train.shape train["Sex"] = train["Sex"].map({"male":0,"female":1}) # EmbarkedのOne-Hotエンコーディング train = pd.get_dummies(train, columns=['Embarked']) ## 不要な列の削除 train.drop(['PassengerId', 'Name', 'SibSp' , 'Parch' , 'Cabin', 'Fare' , 'Ticket'], axis=1, inplace=True) # NaN の存在確認 と 除去 train2 = train.dropna() from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # devide train input and output X_train = train2.drop(['Survived'], axis=1) # X_trainはtrainのSurvived列以外 y_train = train2['Survived'] # y_trainはtrainのSurvived列 # X_trainとY_trainをtrainとvalidに分割 train_x, valid_x, train_y, valid_y = train_test_split(X_train, y_train, test_size=0.20, random_state=0) import sklearn.tree as tree # 分類木だからClassifier,Regressorもある clf = tree.DecisionTreeClassifier(max_depth=4) # データを用いて学習 model = clf.fit(train_x, train_y) # graphvizによる視覚化 import pydotplus as pdp file_name = "./tree_visualization.png" dot_data = tree.export_graphviz(model, # 決定木オブジェクトを一つ指定する out_file=None, # ファイルは介さずにGraphvizにdot言語データを渡すのでNone filled=True, # Trueにすると、分岐の際にどちらのノードに多く分類されたのか色で示してくれる rounded=True, # Trueにすると、ノードの角を丸く描画する。 feature_names=train_x.columns, # これを指定しないとチャート上で特徴量の名前が表示されない class_names=['Dead','Sruvived'], # これを指定しないとチャート上で分類名が表示されない special_characters=True # 特殊文字を扱えるようにする ) graph = pdp.graph_from_dot_data(dot_data) graph.write_png(file_name)
コードを実行しても、
tree_visualization.png
という画像ファイルができないのですか?
あなたの回答
tips
プレビュー