解決済! 解決策の投稿を見る。
機械学習では、汎化性能が重要となります。
そのため、学習過程で使用しなかった全く新しいデータ(ホールドアウトデータ)を使って予測を行い、精度が大きく変わるような事態が起こらないことを確認する必要があります。
よく交差検定で十分ではないかという質問があるのですが、特徴量のインパクトを見ながら特徴量を削減したり、交差検定の値を見ながらアンサンブルモデルを作成する過程で交差検定の検定データをカンニングしていることになってしまっているので、ホールドアウトを確認するのがセオリーとなります。
2値分類の問題で閾値を設定する時も、交差検定のデータに対しての予測結果を確認しながら閾値を決定してしまっていますよね。
とはいえ、サンプルサイズが少ない場合はホールドアウトを外すこともあるので、一辺倒にホールドアウトを設けないとダメということは言えないのですが、データが十分にある場合は、ホールドアウトを是非設けてください。
もしあなたのユースケースが、「ある既知の問題の原因を見つけて改善アクションを取りたい」という場合には、汎化性能が要求されないかもしれません。
未来が予測できるかどうかは重要ではなく、今目の前で起こっている問題に対して、今手に入るデータを使って犯人探しをしたいからです。
その場合にはホールドアウトを取らずに交差検定だけで分析を行うこともあり得ます。特にデータレコード数が小さいときには尚更です。
一方、機械学習モデルを作る目的が将来予測をしたい、ということであれば、必ずホールドアウトを取られることをお勧めします。