訓練・検証・テストデータセット

機械学習における共通作業は、データから学習し、データについて予測することができるアルゴリズムの研究と構築である。そのようなアルゴリズムは、入力データから数学的モデルを構築して、データ駆動型の予測や決定を行うことで機能する。モデルを構築するために使用される入力データは通常、いくつかのデータセットに分割される。一般に、モデル構築のいくつかの段階で、訓練セット、検証セット、テストセットという3つのデータセットが使用される。

モデルはまず、モデルのパラメータたとえば、人工ニューラルネットワークにおけるニューロン間の接続の重み}}を調整するための事例の集めた訓練データセットに対して適合される。たとえば単純ベイズ分類器のようなモデルは、教師あり学習法たとえば勾配降下法や確率的勾配降下法など}}の最適化手法と訓練データセットを使用して訓練される。実際には、訓練データセットは、入力ベクトルとこれに対応する出力ベクトルの組から構成されることが多い。一般に、正解リストは「ターゲット」または「ラベル」と呼ばれる。この場合、モデルは訓練データセットを使用して推論を行い、結果を生成し、訓練データセットの各入力ベクトルについて正解となるターゲットと比較される。比較結果と使用された学習アルゴリズムの種類に基づいて、モデルのパラメータが調整される。モデルのフィッティングには、特徴の選択と、推定理論の双方が含まれることがある。

そして、適合されたモデルは、検証データセットと呼ばれる2番目のデータセットに対する応答を予測する。モデルのハイパーパラメータ を調整する間、検証データセットを使用して、訓練データセットに適合したモデルを先入観なく評価する。検証データセットは、早期打ち切り検証データセットの誤差が増加したときに訓練を停止する手法。これは訓練データセットへの過剰適合の兆候と見なせるため。}}による正則化にも役立つ。。この単純な手順では、訓練中に検証データセットに対する誤差の変動による複数の極小値が生じる可能性があるため、実際にはより複雑なものとなる。この複雑さにより、過剰適合が実際にいつ始まったかを判断するための、多くの場当たり的な規則が作られることになった。

最後に、テストデータセットは、訓練データセットに対する「最終モデル」の適合を公平に評価するためのデータセットである。テストデータセットのデータが一度も訓練で使用されたことがない場合、テストデータセットはホールドアウトデータセットとも呼ばれる。文献によっては、「テストセット」の代わりに「検証セット」という用語が使われることもある。たとえば、元のデータセットが2つのサブセットだけに分割されている場合、テストセットは検証セットと呼ばれる。

データを訓練セット、テストセット、検証セットに分割するサイズと戦略を決定することは、その問題と利用可能なデータに大きく依存する。

1. 訓練データセット
-----------

訓練データセットは、たとえば分類器のパラメータを調整するために、訓練プロセスで使用される事例のデータセットである。

分類タスクの場合、教師あり学習アルゴリズムは、訓練データセットを調べて、優れた予測的モデリングを生成するための変数の最適な組み合わせを決定、または学習する。その目標は、新しい未知のデータにうまく汎化するよう訓練されたモデルを作成することである。適合したモデルは、ホールドアウトデータセットからの「新しい事例」に対して評価され、未知データを分類する際のモデルの精度を推定する。 過剰適合のような問題が生じるリスクを軽減するために、検証データセットとテストデータセット内の事例は、モデルの訓練に使用するべきではない。

経験的な関係を求めて訓練データを探索するほとんどの手法は、データに過剰適合する傾向がある。すなわち、一般的には成立しないような見かけ上の関係を訓練データから特定し、利用してしまう。

2. 検証データセット
-----------

検証データセットは、分類器のハイパーパラメータ を調整するために使用される事例のデータセットである。場合によって「開発セット」と呼ばれることもある。人工ニューラルネットワークにおけるハイパーパラメータとして、各層の隠れユニットの数がある。この検証データセットも、テストセットも、訓練データセットと同じ確率分布に従うべきである。

分類器のパラメータを調整する場合、過剰適合を避けるために、訓練データセットとテストデータセットに加え、検証データセットを用意する必要がある。たとえば、ある問題に最適な分類器を探す場合は、訓練データセットでさまざまな分類器の候補を訓練し、次に検証データセットでそれらの性能を比較してどれを採用するかを決定し、最後にテストデータセットで正確度、感度、特異度、F値などの性能特性を得る。検証データセットはハイブリッドとして機能する。これはテストに使用される訓練データであるが、低レベルの訓練の一部でも最終テストの一部でもない。

モデル選択で検証データセットを使用する基本的なプロセスは次のとおりである。

このプロセスの応用として早期打ち切りがある。候補モデルは同一ネットワークの連続した反復であり、検証セットでの誤差が増大した時点で訓練を停止し、前のモデルを選択する。

3. テストデータセット
------------

テストデータセットとは、訓練データセットから独立しているが、訓練データセットと同じ確率分布に従うデータセットである。訓練データセットに適合したモデルがテストデータセットにもよく適合する場合、過剰適合は最小限に抑えられている。しかし、テストデータセットよりも訓練データセットの方が適合度が高い場合は、通常、過剰適合を意味している。したがって、テストセットは、十分に検討された分類器の性能を評価するためだけに使用される事例の集合である。この手順を行うためには最終モデルを使用してテストセット内の事例の分類を予測する。モデルの精度を評価するために、その予測結果と、事例の真の分類とを比較する。 検証データセットとテストデータセットの両者が使用されるシナリオでは、テストデータセットは、通常、検証プロセスで選択された最終モデルを評価するために使用される。元のデータセットが2つのサブセットに分割されている場合、テストデータセットはモデルを一度だけ評価する。ただし、このような方法を推奨しない文献もあることに注意されたい。しかし、交差検証のような方法を使用する場合、2つの分割で十分かつ効果的である。それは、モデルの訓練とテストを繰り返した後に結果を平均化することで、バイアスとばらつきが低減するためである。

4. 用語の混乱
--------

テストとは、何かについて調べようとして試すことであり//:en:Collaborative International Dictionary of English// によれば、「証明すること、実験によって真実、真正性、または品質を証明すること」}}、検証とは、何かが有効であることを証明することである同様に「確認する、有効なものにする」の意味がある}}。このような観点から、テストセットと検証セットという用語の最も一般的な使い方は、ここで説明したものになる。しかし、産業界でも学術界でも、内部手順ではさまざまななモデルを改良するためにテストし、最終的なモデルは未知のデータで実際に使用する前に検証する必要があることを考慮し、用語が入れ替わることがある。機械学習の文献では、しばしば「検証セット」と「テストセット」の意味が逆転している。これは、人工知能研究に蔓延する用語の混乱の最も顕著な例である。とはいえ、押さえておくべき重要な概念は、テストセットと呼ぼうが検証セットと呼ぼうが、最終的なセットは最終的な実験にのみ使用されるべきということになる。

5. 交差検証
-------

より安定した結果を得て、また貴重なデータをすべて訓練に使用するために、データセットを複数の訓練用データセットと検証用データセットに繰り返し分割することができる。これを交差検証と呼ぶ。モデルの性能を確認するために、通常、交差検証から取り出した追加のテストデータセットを使用する。

6. 参考項目
-------

分類  - ある観測が1組のカテゴリのどれに属するかを識別する統計学の問題
機械学習研究用データセットの一覧 - 機械学習の研究で使用され、査読付学術雑誌に引用されているデータセット
階層的分類 - 物事を階層に従ってグループ分けする分類法

7. 脚注
-----

7.1. 注釈
-------

7.2. 出典
-------