します。https://blog.csdn.net/qq_30868235/article/details/80370060より転載
1.データセット
関数のデータセットを介して導入データセットsklearn自身の手書き数字認識データセットmnist、。mnist合計1797個のサンプル、8×8、前記タグ番号0から9〜10。
###負荷データ
からsklearnインポートデータセット#読み込みデータセット
桁= datasets.load_digits()#ローディングmnistデータセット
プリント(digits.data.shape)#は、入力空間次元プリント
プリント(digits.target.shape)位プリントアウトの空間次元
"" "
(1797年、64)
(1797)
"""
2.データセットパーティショニング
パラメータはtest_size占有、random_stateランダムシード(実験結果のセットを再現することができるようにする)を設定比検定である分割されたデータセット内のsklearn.model_selectionのtrain_test_split機能します。
データ部###
機能train_test_split分割sklearn.model_selectionインポートtrain_test_split#読み込んデータから
x_trainを、x_test、y_train、android.permission.FACTOR = Train_test_split(digits.data、#特徴空間
digits.target、#出力空間
test_size = 0.3、#は、テストセットを占め30%
random_state = 33)実験を再生するため#、乱数が設けられています。
3.該当するモデル(モデルロード - トレーニングモデル - モデル予測)
XGBClassifier.fit()関数は、予測を行うためにモデルを使用して、XGBClassifier.predict()関数モデルを訓練するために使用されます。
関連する###モデル
のインポートXGBClassifier xgboostから
モデル= XGBClassifier()#負荷モデル(モデルという名前のモデル)
model.fit(x_train、y_train)#トレーニングモデル(トレーニングセット)
y_pred = model.predict(x_test)#モデル予測(テストセット)、y_pred予測結果
4.性能評価
sklearn.metrics accuracy_score関数はモデル予測の精度を決定するために使用されます。
###パフォーマンスメトリック
sklearn.metricsから#准确率accuracy_scoreインポート
精度= accuracy_score(y_test、y_pred)
(:%(精度* 100.0) "%.2f %% accuarcy")印刷
5.機能の重要性
xgboostは、機能の重要性を分析し、機能plot_importanceで絵を描きます。
###特征重要性
PLTとしてインポートmatplotlib.pyplot
xgboostインポートplot_importanceのから
図、AX = plt.subplots(figsize =(10,15))
plot_importance(モデル、高さ= 0.5、max_num_features = 64、AX = AX)
PLT。ショー()
6.完全なコード
### load module
from sklearn import datasets
from sklearn.model_selection import train_test_split
from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score
### load datasets
digits = datasets.load_digits()
### data analysis
print(digits.data.shape) # 输入空间维度
print(digits.target.shape) # 输出空间维度
### data split
x_train,x_test,y_train,y_test = train_test_split(digits.data,
digits.target,
test_size = 0.3,
random_state = 33)
### fit model for train data
model = XGBClassifier()
model.fit(x_train,y_train)
### make prediction for test data
y_pred = model.predict(x_test)
###モデル評価
精度= accuracy_score(y_test、y_pred)
プリント( "accuarcy:%.2f %%" %(精度* 100.0))
"" "
95.0%
"""