Pythonのチュートリアル:モデルの評価・選定

9.1回帰モデルの精度を評価します。

トレーニングデータ上のa)の評価。

電車= pd.read_csv( '/ユーザ/ boston_train.csv')
テスト= pd.read_csv( '/ユーザ/ boston_test.csv')
ランダムフォレスト回帰モデル
sklearn.ensemble輸入RandomForestRegressorから
rfMod = RandomForestRegressor(random_state = 29)
rfMod .fit(train.drop([ "標的"]、軸= 1)、列車[ "標的"])
訓練データに#評価
perdy = rfMod.predict(train.drop([ "標的"]、軸= 1) )
#は、決意スコアの係数を決定
r2_scoreインポートsklearn.metricsから
r2_rf = r2_score(列車[ "標的"]、perdy)
)%のr2_rf:印刷( "%Fランダムフォレスト回帰モデルのR ^ 2スコア(決意の係数)"を

## Random forest regression model r^2 score (coefficient of determination): 0.975233

テストデータに対するb)の評価。

#ランダムフォレスト回帰モデル(rfMod)
試験データに#評価
perdy = rfMod.predict(test.drop([ "標的"]、軸= 1))
は、決意の係数を決定するスコア
r2_rf = r2_score(試験[ "標的"] 、perdy)
プリント( "ランダムフォレスト回帰モデルのR ^ 2スコア(決意の係数):%F" %のr2_rf)

## Random forest regression model r^2 score (coefficient of determination): 0.833687

sklearnメトリック  r2_scoreは、  回帰モデルを評価するための唯一の選択肢です。アクセスしてください  ここでは  、他のsklearn回帰メトリックの詳細については。

9.2分類モデルの精度を評価します。

トレーニングデータ上のa)の評価。

電車= pd.read_csv( '/ユーザ/ digits_train.csv')
テスト= pd.read_csv( '/ユーザ/ digits_test.csv')
ランダムフォレスト分類モデル
sklearn.ensemble輸入RandomForestClassifierから
rfMod = RandomForestClassifier(random_state = 29)
rfMod .fit(train.drop([ "標的"]、軸= 1)、列車[ "標的"])
訓練データに#評価
perdy = rfMod.predict(train.drop([ "標的"]、軸= 1) )
#精度スコアを決定
accuracy_scoreインポートsklearn.metricsから
accuracy_rf = accuracy_score(列車[ "標的"]、perdy)
プリント( "ランダムフォレストモデルの精度:%F")%のaccuracy_rfを
##ランダムフォレストモデルの精度:1.000000

テストデータに対するb)の評価。

#ランダムフォレスト分類モデル(rfMod)
試験データに#評価
perdy = rfMod.predict(test.drop([ "標的"]、軸= 1))
精度を決定スコア
accuracy_rf = accuracy_score(試験[ "標的"]、perdy )
プリント( "ランダムフォレストモデルの精度:%fを" %のaccuracy_rf)

注意:sklearnメトリック  accuracy_scoreは、  分類モデルを評価するための唯一の選択肢です。アクセスしてください  ここでは  、他のsklearn分類指標の詳細については。

クロスバリデーションと9.3の評価。

A)KFold

我々はに読み込まれる必要があり、新たなデータセットを使用している#お知らせ
#環境
乳癌= pd.read_csv(「/ユーザ/ breastcancer.csv」)
sklearnインポートmodel_selectionから
sklearn.ensembleインポートからRandomForestClassifier
X = breastcancer.dropを([ "標的"]、軸= 1)
Y =乳癌[ "標的"]
kfold = model_selection。KFold(n_splits = 5、random_state = 29)
rfMod = RandomForestClassifier(random_state = 29)
の結果= model_selection.cross_val_score(rfMod、X、Y、CV = kfold)
プリント(「精度:%.2f %% +/-%.2f %%」%(results.mean()* 100、
results.std()* 100))

B)ShuffleSplit

= model_selectionをシャッフルします。ShuffleSplit(n_splits = 5、random_state = 29)
rfMod = RandomForestClassifier(random_state = 29)
の結果= model_selection.cross_val_score(rfMod、X、Y、CV =シャッフル)
プリント(「精度:%.2f %% +/-%.2f %%」%(results.mean()* 100、
results.std()* 100))

 

おすすめ

転載: www.cnblogs.com/nuswgg95528736/p/8032428.html