この記事では、特定の参考値を持つ相互検証と Python コードの実装を紹介します。必要な友人が参照できるようにします。
モデル選択の 2 つの方法: 正則化 (代表的な方法)、相互検証。 。
ここでは、相互検証とその Python コード実装を紹介します。
相互検証
指定されたサンプル データが十分な場合、モデル選択の簡単な方法は、データ セットをランダムに 3 つの部分に分割し、トレーニング セット、検証セット、テスト セットに分けることです。
トレーニングセット: モデルのトレーニング
検証セット: モデルの選択
テストセット: モデルの最終評価
異なる複雑さの学習モデル、選択検証セット上で予測誤差が最小のモデル。検証セットには十分なデータがあるため、モデル選定に利用することも有効です。データが不十分な多くの実際のアプリケーションでは、相互検証手法を使用できます。
基本的な考え方: データを繰り返し使用し、指定されたデータをトレーニング セットとテスト セットに分割し、これに基づいてトレーニング、テスト、モデルの選択を繰り返し実行します。
単純な相互検証:
データをトレーニング セットとテスト セットの 2 つの部分にランダムに分割します。一般に、データの 70% がトレーニング セット、30% がテスト セットです。
コード(分割トレーニングセット、テストセット):
RREEEEその中でrandom_stateソースコード説明:int、ランダムステートインスタンスまたはなし、オプション(デフォルト=なし)
int、RandomState インスタンスまたは None、オプション (デフォルト = None) int の場合、random_state は乱数ジェネレーターによって使用されるシードです。 RandomState インスタンスの場合、random_state は乱数ジェネレーターです。 None の場合、乱数ジェネレーター`np.random` によって使用される RandomState インスタンスです
主な考え方は、
random_state=10
などの特定の値を設定すると、各除算後のデータは同じになります。複数回実行しても同じです。 None に設定されている場合、つまり
random_state=None の場合、各除算後のデータは異なり、除算が実行されるたびにデータは異なります。 コード (トレーニング セット、検証セット、テスト セットの分割): from sklearn.cross_validation import train_test_split
# data (全部数据) labels(全部目标值) X_train 训练集(全部特征) Y_train 训练集的目标值
X_train, X_test, Y_train, Y_test = train_test_split(data,labels, test_size=0.25, random_state=0) #这里训练集75%:测试集25%
相互検証
以上が相互検証と Python コードの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。