ホールドアウト検証と交差検証
機械学習の良し悪しを確かめる方法の一つに、ホールドアウト検証というものがあります。これは、持っているデータを学習用とテスト用に二つに分けて使う方法です。学習用のデータで機械に学習させ、テスト用のデータでその学習の成果を確かめます。
たとえば、全部のデータのうち八割を学習用、残りの二割をテスト用とします。この分け方は、普通はでたらめに決めますが、データの種類によっては、偏りができないように工夫が必要な場合もあります。たとえば、時間の流れに沿って集めたデータの場合、古いデータを学習用、新しいデータをテスト用にすると良いでしょう。
ホールドアウト検証は、やり方が簡単で、計算の手間も少ないという良い点があります。しかし、データの分け方によって結果が変わってしまうという困った点もあります。たまたま学習用のデータに簡単なものばかりが入っていたり、逆に難しいものばかりが入っていたりすると、機械の本当の実力を正しく測ることができません。
この問題を少しでも軽くするために、データの分け方を変えて何度も検証を行うという方法もあります。たとえば、最初の検証では1番目から80番目のデータを学習用とし、81番目から100番目をテスト用とします。次の検証では、11番目から90番目のデータを学習用、1番目から10番目と91番目から100番目のデータをテスト用とします。このように少しずつずらしながら何度も検証を繰り返すことで、特定のデータの偏りの影響を減らすことができます。そして、それぞれの検証結果の平均を取ることで、より信頼性の高い評価を行うことができます。
ホールドアウト検証は手軽に使える検証方法ですが、データの分け方に注意が必要です。目的に合わせて適切にデータ分割を行い、必要であれば複数回の検証を行うことで、より正確な評価結果を得ることができます。