前提・実現したいこと
pythonで、adaboostを使って分類問題を解いています。
データセットは、有名な「Breast Cancer Wisconsin」という乳がんデータです。
発生している問題・エラーメッセージ
以下のソースコードの通りで、予測モデルまではコードで作れたのですが、
各特徴量の変数重要度(feature importance)を、
matplotlibを使ってグラフで出力したいのですが、コードがうまくいきません。
該当のソースコード
python
1# 必要なライブラリのインポート 2import numpy as np 3import pandas as pd 4from sklearn.datasets import load_digits 5from sklearn.ensemble import AdaBoostClassifier 6from sklearn.tree import DecisionTreeClassifier 7from sklearn.metrics import classification_report 8from sklearn.model_selection import GridSearchCV, train_test_split 9 10# データの読み込み 11df = pd.read_csv('data_2.csv' ) 12 13# 説明変数をdata_Xに、目的変数をdata_yに代入 14data_X = df.drop('diagnosis', axis=1) 15data_y = df['diagnosis'] 16 17def main(): 18 ada = AdaBoostClassifier(n_estimators=100) #n_estimators=弱い識別機を使った分類を何回繰り返すかの指定 19 params = {"base_estimator" : [DecisionTreeClassifier(max_depth=x) #パラメータチューニング 20 for x in range(5, 10)], 21 "learning_rate" : [0.5, 1.0, 1.5] 22 } 23 cv = GridSearchCV(ada, params, cv=5, n_jobs=-1, verbose=2) 24 25 X_train, X_test, y_train, y_test = train_test_split( 26 data_X, data_y, stratify=data_y, test_size=0.2, random_state=1) 27 cv.fit(X_train, y_train) 28 print(cv.best_params_) 29 pred = cv.predict(X_test) 30 print(classification_report(y_test, pred)) 31 32if __name__ == "__main__": 33 main()
試したこと
ちなみに、xgboostでは以下のコードでグラフが描画できたのですが、
これと同様の変数重要度のグラフはadaboostで描画可能でしょうか?
_, ax = plt.subplots(figsize=(8, 8))
xgb.plot_importance(clf,
ax=ax,
importance_type='gain',
show_values=False)
plt.show()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/18 11:02
2019/12/18 11:04
2019/12/18 11:36
2019/12/18 12:07
2019/12/19 01:16