Leave-one-out-cross-validation
あなたのお気に入りのキャンディーがデータセットに含まれておらず、その人気度に関心があるとしましょう。5 分割のクロスバリデーションでは、毎回データの 80% だけで学習します。しかし、キャンディーのデータセットはわずか 85 行しかないため、20% を除外するとモデルに不利に働く可能性があります。そこで、leave-one-out-cross-validation(LOOCV)を使うと、限られたデータを最大限に活用でき、お気に入りのキャンディーの人気度を最もよく推定できます。
この演習では、cross_val_score() を使って LOOCV を実行します。
この演習はコースの一部です
Python によるモデル検証
演習の手順
cross_val_score()で使用するために、mean_absolute_errorを用いた採点器を作成します。cross_val_score()を、モデルrfr、先ほど定義したmae_scorer、そして LOOCV を使うように記入します。numpy(npとして読み込み済み)を使って、scoresの平均と標準偏差を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from sklearn.metrics import mean_absolute_error, make_scorer
# Create scorer
mae_scorer = ____(____)
rfr = RandomForestRegressor(n_estimators=15, random_state=1111)
# Implement LOOCV
scores = cross_val_score(____, X=X, y=y, cv=____, scoring=____)
# Print the mean and standard deviation
print("The mean of the errors is: %s." % np.____(____))
print("The standard deviation of the errors is: %s." % np.____(____))