データセットのサンプルのハイパーパラメーターチューニングは悪い考えですか?


19

140000の例と30の機能のデータセットがあり、それらに対してバイナリ分類(SVM、ロジスティック回帰、ランダムフォレストなど)のいくつかの分類器をトレーニングしています。

多くの場合、グリッド検索またはランダム検索を使用したデータセット全体のハイパーパラメーター調整は、時間的にコストがかかりすぎます。

私は次のテクニックを使い始めました

  • データセットのサブサンプル
  • 取得した分数を使用して、ハイパーパラメーターを調整します
  • 取得したパラメーターを使用して、データセット全体を使用してモデルをトレーニングします

第2段階Iの使用に関するパラメータの各セットを評価することsklearnGridSearchCVCV = 10で。私は第三ステップIの使用中に作成することを最終的なモデルを評価するためにsklearn「S cross_val_predict。その意味で、データの10%を残してモデルを評価し、残りのトレーニングを行い、10%で予測精度を10回繰り返し測定し、スコアの平均を取得します。

私が心配したのは、データセット全体のトレーニングから得られる予測精度が、最適なパラメーターセットのパラメーターを調整するときに得られる評価に非常に近いことです(テストされた各パラメーターセットは、平均10-フォールドクロス検証結果)。

ほとんどの場合、cross_val_predictすべてのトレーニング例(データセット全体)を使用して測定した精度は、最適なパラメーターの評価が返す値をわずかに上回っています。

これをここで説明するために、一連のパラメーターの評価を行います(上記で説明したものよりも小さいデータセット上ですが、効果は同じです)

Best parameters set found on development set:
{'kernel': 'rbf', 'C': 9, 'gamma': 0.1}
Scores for all sets of parameters
0.851 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.5}
0.852 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.1}
0.829 (+/-0.006) for {'kernel': 'rbf', 'C': 3, 'gamma': 0.001}
0.853 (+/-0.006) for {'kernel': 'rbf', 'C': 9, 'gamma': 0.1}
...

そしてここにcross_val_predict、最高のパラメーターを使用してデータセット全体のトレーニングから得た平均スコア(から)があります

precision    recall  f1-score   support

      0       0.86      0.85      0.86     15417
      1       0.86      0.87      0.87     16561

avg / total       0.86      0.86      0.86     31978

acc score: 0.863750078179
roc au score: 0.863370490059
[[13147  2270]
 [ 2087 14474]]

ご覧のとおり、データセット全体のトレーニングにより結果が改善されます。また、適切に調整されていないモデル(Cおよびにデフォルト値またはランダム値を使用するなどgamma)により、予測精度が大幅に低下することも検証しました。

全体として、サブセットのハイパーパラメーターを調整することは理想的ではありませんが、長時間待つことなく比較的良い結果につながる可能性があると思います。たとえば、そのアプローチを使用する前optunityに、データセット全体のハイパーパラメータを調整するためにパッケージを使用していました。この手順は完了するのに3〜5日かかり、結果は非常に良好な精度または非常に良好なリコールのいずれかであり、両方ではありませんでした。分類子が達成した)f1測定値は本当に低かった。それどころか、後者のアプローチを使用すると、数時間のトレーニングとより良いf1測定につながります。

私の懸念は:

分類の精度を制限しますか?サブセットのみを調整することで、データセットが提供できるすべての予測力を使用することを避けますか?このようなパフォーマンスの害が発生している場合、何らかの要因によって何らかの形で制限されていますか?


厳密な予測精度につながる2つの方法を明確にしてください。データをトレーニングセットと検証セットに分割します。検証セットは、トレーニングではなく、ハイパーパラメーターの最適化にのみ使用されますか?
イリヤンボベフ16

更新された質問をご覧ください。私はそれが今より明確になることを望みます。
LetsPlayYahtzee 16

回答:


15

Jimの(+1)答えに加えて、一部の分類子では、ハイパーパラメーター値はトレーニング例の数に依存します。たとえば、線形SVMの場合、主最適化問題は

mn12w2+C=1ξ

の対象

yバツwb1ξandξ0

ξC

SVMの一部の実装は、

mn12w2+C=1ξ

補償するためですが、そうでないものもあります。したがって、考慮すべき追加ポイントは、最適なハイパーパラメーターがトレーニング例の数に依存するかどうかです。

モデル選択基準の過剰適合はより多くの問題になる可能性が高いとジムに同意しますが、サブサンプルに十分なデータがある場合、これは実質的な問題ではない可能性があります。


11

データセットのサンプルのハイパーパラメーターチューニングは悪い考えですか?

A:はい。選択したトレインとテストの分割の結果、特定のテストセットにオーバーフィッティング(ハイパーパラメーター)をかけるリスクがあるためです。

分類の精度を制限しますか?

λ

サブセットのみを調整することで、データセットが提供できるすべての予測力を使用することを避けますか?

A:前の回答を参照してください。

このようなパフォーマンスの害が発生している場合、何らかの要因によって何らかの形で制限されていますか?

A:同上。

パラメーターの評価にも使用する10倍のクロスを使用して精度を測定します

A:これはタイトルで求められているものとは異なることに注意してください。10倍のCVは、テストトレインの10回の分割を繰り返し、一般化可能性の「不偏」(偏りの少ない)推定値に到達します(この場合は精度で測定)。10倍CVは、最初の回答で説明した問題に正確に対応します。

データセット全体のトレーニングから得られる予測精度

A:これは楽観的に偏る可能性がある「サンプル内」の測定です。しかし、多くの場合と機能が比較的少ないことを忘れないでください。そのため、この楽観的な偏見は問題になりません。機械学習ナゲット:「最高の正則化はより多くのデータです。」

[続き]、パラメーターの最適なセットのためにパラメーターを調整するときに得られる評価に常に非常に近い。

A:前の回答を参照してください。ハイパーパラメータープロットを見てください。チューニングはエラーをどれだけ減らしますか?あなたが言っていることから、チューニングはあまり行っていません。

これは次のようにテストできます。70%〜30%の列車テストの分割を行います。次の予測パフォーマンスを比較します。

  1. 列車セットで訓練された未調整モデル、
  2. トレインセットでトレーニングされた10倍CV調整モデル。

両方のモデルでテストセットを予測します。パフォーマンスが非常に近い場合、チューニングはあまり効果がありません。調整されたモデルを優先してパフォーマンスが異なる場合は、調整アプローチを続行します。


1

人工ニューラルネットワーク(ANN)についてお答えします。

ANNのハイパーパラメーターは、学習プロセス(学習率やミニバッチサイズなど)またはアーキテクチャ(非表示のユニットまたはレイヤーの数など)を定義できます。

アーキテクチャハイパーパラメーターはANNの容量を変更するため、トレーニングセットのサブセットでアーキテクチャハイパーパラメーターをチューニングすることは、おそらく良い考えではありません(トレーニングセットが実際に多様性を欠いている場合、つまりトレーニングセットサイズを大きくしてもANNパフォーマンスが向上しない場合を除く)。

トレーニングセットのサブセットで学習プロセスを定義するハイパーパラメーターの調整についてはあまり気にしませんが、経験的に検証する必要があると思います。



0

マルチフィデリティ評価、つまりデータのサブセットの評価をサポートするハイパーパラメーター最適化アルゴリズムを使用して、データセット全体の最適なハイパーパラメーター値に関する大まかだが有用な推定値を取得できます。通常、このようなアプローチにより、ハイパーパラメーター最適化の実行に必要な総計算コストを削減できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.