始める無料で始める

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 を使うように記入します。
  • numpynp として読み込み済み)を使って、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.____(____))
コードを編集して実行