テストデータと適した評価指標でモデルを評価

モデル評価

データセット

機械学習の目標は未知の予測することである。未知のデータに対して高い予測性能を示すモデルを構築する際に、そのモデルを正確に評価する必要がある。これには、評価用のデータセットを用意しなければならない。評価用のデータセットを用意する上で、とくに重要なこととして、評価データの中に、訓練データを含んではいけないことである。

モデルの性能を正確に評価するためには、訓練データと評価データを完全に分ける必要がある。データセットを分けるとき、少しの不注意で、訓練データが評価データに入ってしまう(leakage)場合がある。例えば、過去 10 日間の累積温度を特徴量として開花を予測するときに、1〜6 月のデータを訓練データとし、7〜12 月のデータを評価データ分けた場合に、leakage が生じる。7 月 1 日の開花データでモデルの検証を行うとき、6 月 21〜30 日のデータを使用することになる。しかし、このうち、6 月 21〜29 日までのデータは 6 月 30 日の開花データの学習にすでに使われている。このように、特に時系列データを扱うときに、少しの不注意で leakage を起こしてしまう。そこで、モデルの汎化性能を正しく評価でするには、適した方法でデータセットを分ける必要がある。代表的なものがホールドアウト法や k 交差検証法などがある。

評価指標

モデルの性能を正しく評価するのに、その研究目的に適した評価指標を必要とする。例えば、陽性サンプルが 990 件で、陰性サンプルが 10 件からなる訓練データを使用してモデルの学習と評価を行うときに、accuracy は評価指標として不適と考えられる。その理由として、このデータを用いた検証では、すべてのサンプルに対して「陽性」と答えてもそのaccuracy が 99.0% にもなるからである。この場合は、陽性サンプルを陽性と予測するよりも、陰性サンプルを正しく陰性と予測できたことを測る指標である specificity を用いた方が適している場合が多い。