タグ付けされた質問 「cross-validation」

保留されたデータのサブセットでのモデルのパフォーマンスを定量化するために、モデルのフィッティング中にデータのサブセットを繰り返し保留する。

11
AICまたはBICを他よりも好む理由はありますか?
AICとBICは両方とも、推定されたパラメーターの数に対してペナルティが課されるモデル適合を評価する方法です。私が理解しているように、BICはAICよりも無料のパラメーターに対してモデルに多くのペナルティを科します。基準の厳格さに基づく選好以外に、BICよりもAICを好む理由、またはその逆の理由はありますか?

6
k分割交差検証後に予測モデルを選択する方法は?
K分割交差検証を行った後、予測モデルを選択する方法を考えています。 これは厄介な言い方かもしれませんので、詳細に説明しましょう。K分割交差検証を実行するたびに、トレーニングデータのK個のサブセットを使用し、K個の異なるモデルになります。 Kモデルの1つを選択する方法を知りたいので、誰かにそれを提示して、「これは私たちが生産できる最高のモデルです」と言うことができます。 Kモデルのどれを選んでも大丈夫ですか?または、テストの中央値を達成するモデルを選択するなど、何らかのベストプラクティスが関係していますか?

5
相互検証後の完全なデータセットでのトレーニング?
相互検証後に完全なデータセットでトレーニングすることは常に良い考えですか?別の言い方をすれば、データセット内のすべてのサンプルでトレーニングを行っても、この特定のフィッティングがオーバーフィットするかどうかを確認できないのですか? 問題の背景: 私が持っていると言うモデルの家族によってパラメータ。また、データポイントのセットがあり、データを最も一般化するモデルを選択するために、k分割交差検証を使用してモデル選択を行うとします。α⃗ α→\vec\alphaNNN モデルの選択では、たとえば、各候補に対してk分割交差検証を実行することにより、検索(たとえば、グリッド検索)を実行できます。交差検証の各フォールドで、学習モデルます。α⃗ α→\vec\alpha βαβα\beta_\alpha 交差検証のポイントは、これらの各フォールドについて、「見えないデータ」でテストすることにより、学習したモデルに過剰適合があるかどうかを確認できることです。結果に応じて、グリッド検索でのクロス検証中に最適化されたパラメーターについて学習したモデル選択できます。βbestβbest\beta_\text{best}α⃗ bestα→best\vec\alpha_\text{best} ここで、モデルの選択後に、データセット内のすべてのポイントを使用し、できればより良いモデルを学習したいと考えています。このために、モデル選択中に選択したモデルに対応するパラメーター使用し、完全なデータセットでトレーニングした後、新しい学習モデル取得します。問題は、トレーニングのためにデータセットのすべてのポイントを使用 する場合、この新しい学習モデル目に見えないデータにオーバーフィットするかどうかを確認できないことです。この問題を考える正しい方法は何ですか?NNNα⃗ bestα→best\vec\alpha_{best}βfullβfull\beta_{full} βfullβfull\beta_{full}

4
K分割交差検定でのKの選択
いくつかの学習アルゴリズムのパフォーマンスを評価するために、倍交差検証を数回使用していますが、の値をどのように選択すべきかについては常に困惑していました。KKKKKKK 私はよく見ての値が使用されてきた、これは私には全く任意のようだ、と私は今ちょうど使用代わりにそれを超える思考の習慣で。私には、の値を改善するにつれて、より良い粒度が得られるように思えます。理想的には、非常に大きくする必要がありますが、偏るリスクもあります。10 K KK=10K=10K = 10101010KKKKKK 私は、の値が何に依存すべきか、そしてアルゴリズムを評価するときにこれについてどう考えるべきかを知りたいと思います。クロスバリデーションの階層化バージョンを使用するかどうかによって、何かが変わりますか?KKK


3
モデル選択のためのネストされたクロス検証
モデル選択にネストされたクロス検証を使用するにはどうすればよいですか? 私がオンラインで読んだものから、ネストされたCVは次のように機能します。 グリッド検索を実行できる内部CVループがあります(たとえば、利用可能なすべてのモデルに対してK折りを実行します。たとえば、ハイパーパラメーター/機能の組み合わせ) 外側のCVループがあります。ここでは、内側のフォールドで勝ったモデルのパフォーマンスを、別の外側のフォールドで測定します。 このプロセスの終わりに、モデルになります(は外側のループの折り畳みの数です)。これらのモデルは、内部CV内のグリッド検索で勝ったモデルであり、異なる可能性があります(たとえば、グリッド検索に応じて、異なるカーネルを備えた、おそらく異なる機能でトレーニングされたSVM)。KKKKKK この出力からモデルを選択するにはどうすればよいですか?各モデルはデータセットのさまざまな部分でトレーニングおよびテストされているため、これらの勝利モデルから最良のモデルを選択することは公平な比較ではないように思えます。KKK モデルの選択にネストされたCVを使用するにはどうすればよいですか? また、ネストされたモデルの選択が学習手順の分析にどのように役立つかを議論するスレッドを読みました。外側のKフォールドから取得したスコアを使用して、どのような種類の分析/チェックを実行できますか?

7
leave-one-out対K-foldクロス検証のバイアスと分散
モデルの分散とバイアスの観点から、さまざまな交差検証方法をどのように比較しますか? 私の質問はこのスレッドによって部分的に動機づけられています:最適な折り畳み数-交差検証:leave-one-out CVは常に最良の選択ですか?KKK。そこでの答えは、leave-one-out交差検定で学習したモデルは、通常の倍交差検定で学習したモデルよりも高い分散を持ち、leave-one-out CVがより悪い選択になることを示唆しています。KKK しかし、私の直感では、Leave-one-out CVではフォールドCV よりもモデル間の分散が比較的小さいはずです。なぜなら、フォールド間で1つのデータポイントのみをシフトしているため、フォールド間のトレーニングセットが実質的に重なっているからです。KKK または、逆方向に進むと、がフォールドCVで低い場合、トレーニングセットはフォールド全体で大きく異なり、結果のモデルは異なる可能性が高くなります(したがって、分散が大きくなります)。KKKKKKK 上記の議論が正しければ、leave-one-out CVで学習したモデルの分散が大きくなるのはなぜですか?


3
機能の選択と相互検証
私は最近、このサイト(@ Aniko、@ Dikran Marsupial、@ Erik)およびクロス検証で発生する過適合の問題について他の場所で多くのことを読んでいます-(Smialowski et al 2010 Bioinformatics、Hastie、Elements of statistics learning)。提案は、ということである任意の(クラスラベルとの相関を使用して)教師付き特徴選択は、クロスバリデーション(またはブートストラップのような他のモデルの推定方法)を使用して、モデルのパフォーマンス推定の外部で実行オーバーフィッティングをもたらすことができます。 これは私には直感的ではないようです-確かに、機能セットを選択し、クロス検証を使用して選択した機能のみを使用してモデルを評価すると、それらの機能の一般化されたモデルパフォーマンスの公平な推定が得られます(これは調査中のサンプルが代表的であると仮定しています人口の)? この手順では、もちろん最適な機能セットを要求することはできませんが、目に見えないデータで選択した機能セットのパフォーマンスを有効として報告することはできますか? データセット全体に基づいて機能を選択すると、テストセットとトレインセット間のデータリークが発生する可能性があることを受け入れます。しかし、最初の選択後に機能セットが静的であり、他の調整が行われていない場合、クロス検証されたパフォーマンスメトリックを報告することは確かに有効ですか? 私の場合、56個の機能と259個のケースがあるため、#cases> #featuresです。機能はセンサーデータから派生します。 私の質問が派生的であるように思える場合はおbutびしますが、これは明確にする重要なポイントのようです。 編集: 上記のデータセットのクロス検証で機能選択を実装すると(以下の回答のおかげで)、このデータセットでクロス検証する前に機能を選択すると、重要な要素が導入されたことを確認できますバイアス。このバイアス/オーバーフィッティングは、2クラスの定式化と比較して、3クラスの定式化で最も大きくなりました。機能選択にステップワイズ回帰を使用したことで、この過剰適合が増加したと思います。比較のために、異なるが関連するデータセットで、クロス検証前に実行された順次順方向特徴選択ルーチンを、CV内の特徴選択で以前に取得した結果と比較しました。両方の方法の結果に劇的な違いはありませんでした。これは、ステップワイズ回帰がシーケンシャルFSよりも過剰適合しやすいことを意味する場合があります。または、このデータセットの奇抜である可能性があります。

6
機械学習で相互検証を実行する際の「最終」モデルの機能選択
機能の選択と機械学習について少し混乱しているので、手伝ってくれないかと思っていました。2つのグループに分類され、1000の機能を持つマイクロアレイデータセットがあります。私の目的は、理論的に他のデータセットに適用してそれらのサンプルを最適に分類できるシグネチャで少数の遺伝子(私の特徴)(10-20)を取得することです。サンプル数が少ないため(<100)、テストとトレーニングセットを使用せず、Leave-one-outクロス検証を使用して堅牢性を判断しています。サンプルの分割ごとに特徴選択を実行する必要があることを読みました。 テストセットとして1つのサンプルを選択します 残りのサンプルで機能選択を実行します 選択した機能を使用して、機械学習アルゴリズムを残りのサンプルに適用します テストセットが正しく分類されているかどうかをテストします 1に進みます。 これを行うと、毎回異なる遺伝子を取得する可能性があります。それでは、「最終的な」最適な遺伝子分類子をどのように取得しますか。すなわち、ステップ6とは何ですか。 最適とは、今後の研究で使用すべき遺伝子のコレクションです。たとえば、癌/正常なデータセットがあり、SVMに従って腫瘍タイプを分類する上位10の遺伝子を見つけたいとします。診断テストとして使用できるかどうかを確認するために、さらなる実験で使用できる遺伝子とSVMパラメータのセットを知りたいです。

5
時系列モデルの選択にk分割交差検証を使用する
質問: 何かを確認したいのですが、時系列でk分割交差検証を使用するのは簡単ですか、それとも使用する前に特別な注意を払う必要がありますか? 背景: 5年ごとにデータサンプルを使用して、6年の時系列(セミマルコフチェーン)をモデリングしています。複数のモデルを比較するために、6年でデータを分離することにより6倍の交差検証を使用しているため、(パラメーターを計算するための)トレーニングセットの長さは5年、テストセットの長さは1です年。私は時間の順序を考慮していないので、私の異なるセットは次のとおりです。 フォールド1:トレーニング[1 2 3 4 5]、テスト[6] フォールド2:トレーニング[1 2 3 4 6]、テスト[5] フォールド3:トレーニング[1 2 3 5 6]、テスト[4] フォールド4:トレーニング[1 2 4 5 6]、テスト[3] フォールド5:トレーニング[1 3 4 5 6]、テスト[2] フォールド6:トレーニング[2 3 4 5 6]、テスト[1]。 毎年独立しているという仮説を立てています。どうすればそれを確認できますか?時系列とのk分割交差検証の適用性を示す参考文献はありますか。

1
相互検証、学習曲線、最終評価のためにデータセットを分割する方法は?
データセットを分割するための適切な戦略は何ですか? 私は、次のアプローチにフィードバックを求める(ないような個々のパラメータのtest_sizeかn_iter、私が使用している場合X、y、X_train、y_train、X_test、およびy_test適切かつシーケンスは理にかなっている場合): (scikit-learnドキュメントからこの例を拡張) 1.データセットをロードする from sklearn.datasets import load_digits digits = load_digits() X, y = digits.data, digits.target 2.トレーニングとテストセットに分割(例:80/20) from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) 3.推定量を選択 from sklearn.svm import SVC estimator = SVC(kernel='linear') 4.相互検証イテレーターを選択します from sklearn.cross_validation import ShuffleSplit cv = ShuffleSplit(X_train.shape[0], n_iter=10, test_size=0.2, random_state=0) 5.ハイパーパラメーターの調整 …


8
テストデータがトレーニングデータに漏れないようにする方法を教えてください。
予測モデルを構築している人がいると仮定しますが、その人は必ずしも適切な統計的または機械学習の原則に精通しているとは限りません。たぶん私たちは学習中のその人を助けているかもしれませんし、あるいはその人は使用するのに最低限の知識しか必要としない何らかのソフトウェアパッケージを使っているかもしれません。 この人は、実際のテストがサンプル外の精度(またはその他のメトリック)に由来することを非常によく認識するかもしれませんデータの。しかし、私の懸念は、心配する微妙な点があることです。単純な場合、彼らはモデルを構築し、トレーニングデータで評価し、保留されているテストデータで評価します。残念ながら、その時点で戻ってモデル化パラメーターを微調整し、同じ「テスト」データで結果を確認するのは非常に簡単な場合があります。この時点で、データはもはやサンプル外のデータではなく、オーバーフィッティングが問題になる可能性があります。 この問題を解決する1つの潜在的な方法は、多くのサンプル外のデータセットを作成して、各テストデータセットを使用後に破棄し、まったく再利用しないようにすることです。ただし、これには多くのデータ管理が必要です。特に、分析の前に分割を行う必要があります(したがって、事前に分割数を知る必要があります)。 おそらく、従来のアプローチはk倍交差検証です。しかし、ある意味では、特にまだ学習している人にとって有用だと思う「トレーニング」と「テスト」のデータセットの区別を失います。また、これはすべてのタイプの予測モデルに意味があるとは確信していません。 経験の浅いユーザーにはまだある程度明確でありながら、オーバーフィットと漏れのテストの問題を克服するために見落としている方法はありますか?


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