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

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

2
予測ではなくモデリングのみに関心がある場合、正則化は役立ちますか?
予測や予測ではなく、モデルパラメーターの推定(および解釈)のみに関心がある場合、正則化は役立ちますか? あなたの目標が新しいデータの良い予測をすることである場合、正則化/相互検証が非常に有用であることがわかります。しかし、伝統的な経済学をやっていて、見積もるだけなら、どうでしょうか?クロスバリデーションもそのコンテキストで役立ちますか?概念的な難易私の闘争は、我々が実際に計算できるということであるL ( Y 、Y)試験データに、しかし、我々はできる計算決してL ( β 、β)真ため、βが観測されたことがない定義です。(真のβさえ存在すると仮定してくださいββ\betaL(Y,Y^)L(Y,Y^)\mathcal{L}\left(Y, \hat{Y}\right)L(β,β^)L(β,β^)\mathcal{L}\left(\beta, \hat{\beta}\right)ββ\betaββ\beta、つまり、データが生成されたモデルのファミリーを知っていること。) あなたの損失があると仮定。バイアスと分散のトレードオフに直面していますよね?そのため、理論的には、いくつかの正則化を行う方が良いかもしれません。しかし、どのようにして正則化パラメーターを選択できますか?L(β,β^)=∥β−β^∥L(β,β^)=‖β−β^‖\mathcal{L}\left(\beta, \hat{\beta}\right) = \lVert \beta - \hat{\beta} \rVert 私は、係数を持つ線形回帰モデルの簡単な数値例を参照させていただき研究者の損失関数は、例えばある、‖ β - βを ‖でも、またはちょうど(β 1 - β 1 )2。実際には、これらの例で予想される損失を改善するために相互検証をどのように使用できますか?β≡(β1,β2,…,βk)β≡(β1,β2,…,βk)\beta \equiv (\beta_1, \beta_2, \ldots, \beta_k)∥β−β^∥‖β−β^‖\lVert \beta - \hat{\beta} \rVert(β1−β^1)2(β1−β^1)2(\beta_1 - \hat{\beta}_1)^2 編集:DJohnson は、この質問に関連するhttps://www.cs.cornell.edu/home/kleinber/aer15-prediction.pdfを指摘してくれました。著者はそれを書く 技術を機械学習...予測する統制のとれた方法で提供さ Y(i)は、バイアス・分散トレードオフを作る方法を決定するためにデータ自体を使用し、及び(ii)の変数の非常に豊富なセットを介して検索を可能にし、機能フォーム。しかし、すべてはコストがかかります。一つは、常に彼らが調整されているので、ことを心に留めておく必要がありY 、彼らは(他の多くの仮定なし)のために非常に便利な保証を与えていませんβ。Y^Y^\hat{Y}Y^Y^\hat{Y}β^β^\hat{\beta} 別の関連する紙、再びDJohnsonのおかげ: http://arxiv.org/pdf/1504.01132v3.pdf。このペーパーは、私が上記で苦労していた質問に対処します。 ...既成の回帰ツリーなどの機械学習法を因果推論の問題に適用する際の基本的な課題は、交差検証に基づく正則化アプローチは通常、「グラウンドトゥルース」、つまり実際の結果の観察に依存することです。交差検定サンプル。しかし、治療効果の平均二乗誤差を最小化することが目標である場合、[11]が「因果推論の根本的な問題」と呼ぶものに遭遇します。因果効果は個々のユニットで観察されないため、直接真実があります。治療の因果効果の平均二乗誤差の不偏推定値を構築するためのアプローチを提案することにより、これに対処します。

1
交差検定(CV)に基づく予測間隔
教科書やyoutubeの講義では、ブースティングなどの反復モデルについて多くのことを学びましたが、予測間隔の導出については何も見ませんでした。 クロス検証は次の目的で使用されます。 モデルの選択:さまざまなモデルを試して、最適なモデルを選択します。ブーストの場合、CVを使用してチューニングパラメーターを選択します。 モデル評価:選択したモデルのパフォーマンスを推定します モデル評価にはいくつかのパラメーターが重要です。そのうちの1つは予想される予測エラーです。クロス検証は、本「統計的学習の要素」で詳しく説明されているように、予測誤差の適切な推定値を提供します。 しかし、予測間隔を構築するために予想される予測誤差をどのように使用するのでしょうか? たとえば、家の価格を予測する場合、200.000€の家に比べて500.000€の家の予測間隔は長くなります。相互検証を使用してこれらの予測間隔を推定するにはどうすればよいですか?

2
ベイジアンモデルでの交差検証の安定性
JAGSでベイズHLMをk-fold cross-validation(k = 5)を使用してフィッティングしています。パラメーター推定値がすべてのフォールドにわたって安定しているかどうかを知りたいです。これを行う最良の方法は何ですか?ββ\beta 1つのアイデアは、の事後の差を見つけて、その差の95%CIに0があるかどうかを確認することです。つまり、の95%間隔で0になります(その後、すべてのフォールドペアについて繰り返します)。ββ\betaβk = 1- βk = 2βk=1−βk=2\beta_{k=1}-\beta_{k=2} 別のアイデアは、各フォールドの事後要素を異なるMCMCチェーンとして扱い、これらの擬似チェーン全体でGelmanの(Potential Scale Reduction Factor)を計算することです。R^R^\hat{R} これらのいずれかが望ましいですか、代替手段はありますか?

6
データセットのサンプルのハイパーパラメーターチューニングは悪い考えですか?
140000の例と30の機能のデータセットがあり、それらに対してバイナリ分類(SVM、ロジスティック回帰、ランダムフォレストなど)のいくつかの分類器をトレーニングしています。 多くの場合、グリッド検索またはランダム検索を使用したデータセット全体のハイパーパラメーター調整は、時間的にコストがかかりすぎます。 私は次のテクニックを使い始めました データセットのサブサンプル 取得した分数を使用して、ハイパーパラメーターを調整します 取得したパラメーターを使用して、データセット全体を使用してモデルをトレーニングします 第2段階Iの使用に関するパラメータの各セットを評価することsklearnのGridSearchCVCV = 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} …

4
データをトレーニングセットとテストセットに分割するだけでは不十分な理由
分類器のパフォーマンスにアクセスするには、データをトレーニング/テストセットに分割する必要があることを知っています。しかし、これを読んで: SVM用に手動で設定する必要があるC設定など、推定器のさまざまな設定(「ハイパーパラメーター」)を評価する場合、推定器が最適に実行されるまでパラメーターを微調整できるため、テストセットでオーバーフィットするリスクが依然としてあります。この方法では、テストセットに関する知識がモデルに「漏れ」、評価メトリックが一般化パフォーマンスについてレポートしなくなります。この問題を解決するために、データセットのさらに別の部分をいわゆる「検証セット」として保持することができます。トレーニングはトレーニングセットで進行し、その後検証セットで評価が行われ、実験が成功したと思われる場合、テストセットで最終評価を行うことができます。 ハイパーパラメーターの調整中にテストセットをオーバーフィットすることで正当化される、別の(3番目の)検証セットが導入されていることがわかります。 問題は、この過剰適合がどのように表示されるかを理解できないため、3番目のセットの正当性を理解できないことです。


1
LOOCV式の証明
統計学習の入門ジェームスら。、リーブワンアウトクロスバリデーション(LOOCV)推定値はによって定義されるCV(n)=1n∑i=1nMSEiCV(n)=1n∑i=1nMSEi\text{CV}_{(n)} = \dfrac{1}{n}\sum\limits_{i=1}^{n}\text{MSE}_i ここMSEi=(yi−y^i)2MSEi=(yi−y^i)2\text{MSE}_i = (y_i-\hat{y}_i)^2。 証明がなければ、方程式(5.2)には、最小二乗回帰または多項式回帰(これが1つの変数のみの回帰に当てはまるかどうかは不明)、 "ここで、Yiがされている私は、元の最小二乗から番目のフィット値(適合しないこの手段が、方法によって何全く考え、それが使用を意味し、すべてのデータセット内のポイントを)および?Hiがにより定義されるてこ」でHiは=1CV(n)=1n∑i=1n(yi−y^i1−hi)2CV(n)=1n∑i=1n(yi−y^i1−hi)2\text{CV}_{(n)} = \dfrac{1}{n}\sum\limits_{i=1}^{n}\left(\dfrac{y_i - \hat{y}_i}{1-h_i}\right)^2y^iy^i\hat{y}_iiiihihih_ihi=1n+(xi−x¯)2∑j=1n(xj−x¯)2.hi=1n+(xi−x¯)2∑j=1n(xj−x¯)2.h_i = \dfrac{1}{n}+\dfrac{(x_i - \bar{x})^2}{\sum\limits_{j=1}^{n}(x_j - \bar{x})^2}\text{.} これをどのように証明しますか? 私の試み:一つは、その注目して開始することができ、Y I = β 0 + k個のΣ iは= 1 β K X K + 程度の一部多項式の項 ≥ 2 が、これとは別に(私は思い出す場合、ための、式hはiが唯一であると単純な線形回帰の場合...)、ここから先に進む方法がわかりません。y^i=β0+∑i=1kβkXk+some polynomial terms of degree ≥2y^i=β0+∑i=1kβkXk+some polynomial terms of degree ≥2\hat{y}_i = \beta_0 + …

5
cv.glmnetの結果のばらつき
cv.glmnet予測子を見つけるために使用しています。私が使用するセットアップは次のとおりです。 lassoResults&lt;-cv.glmnet(x=countDiffs,y=responseDiffs,alpha=1,nfolds=cvfold) bestlambda&lt;-lassoResults$lambda.min results&lt;-predict(lassoResults,s=bestlambda,type="coefficients") choicePred&lt;-rownames(results)[which(results !=0)] 作るために必ず結果が再現可能Iですset.seed(1)。結果は大きく変わります。まったく同じコード100を実行して、結果がどの程度変動するかを確認しました。98/100の実行では、1つの特定の予測子が常に選択されていました(時にはそれだけで); 通常は50/100回、他の予測変数が選択されました(係数はゼロ以外)。 だから、クロス検証が実行されるたびに、おそらくフォールドの最初のランダム化が重要であるため、異なる最良のラムダを選択するだろうと私に言います。他の人はこの問題を見ました(CV.glmnet結果)が、提案された解決策はありません。 私はおそらく、98/100を示すものはおそらく他のすべてと非常に高い相関関係があると考えていますか?LOOCV()を実行するだけで結果は安定しますが、\ text {nfold} &lt;nの場合になぜこれらの変数が変動するのか興味があります。fold-size=nfold-size=n\text{fold-size} = nnfold&lt;nnfold&lt;n\text{nfold} < n

3
電車とテストに分割する前後の代入?
N〜5000のデータセットがあり、少なくとも1つの重要な変数で約1/2が欠落しています。主な分析方法は、コックス比例ハザードです。 複数の代入を使用する予定です。また、トレインとテストセットに分割します。 データを分割してから個別に代入するか、または代入してから分割する必要がありますか? 問題があれば、で使用PROC MIしSASます。

2
KフォールドCVを何回繰り返す必要がありますか?
ブートストラップとクロス検証の違いを見て、このスレッドに出会いました-素晴らしい答えと参考までに。私は今疑問に思ってすることは、私が分類器の精度を計算するために繰り返さ10倍CVの発言権を実行するためだった場合、何回のn私はそれを繰り返す必要がありますか? んnは折り目の数に依存?サンプルサイズは?これにルールはありますか? (私の場合、5000ものサンプルがあり、n = 20より大きい値を選択すると、計算に時間がかかりすぎて計算に時間がかかります。)

1
ネストされた交差検証後に最終モデルを構築し、確率しきい値を調整する方法は?
まず、ここで、ここで、ここで、ここで、ここで、ここで詳細に議論されている質問を投稿することに対する謝罪、および古いトピックの再加熱用。@DikranMarsupialがこのトピックについて長々と投稿やジャーナルペーパーで書いていることは知っていますが、私はまだ混乱しており、ここにある同様の投稿の数から判断すると、他の人がまだ把握するのに苦労しています。また、このトピックに関して矛盾が生じたため、混乱を招いたことも述べておく必要があります。また、私はもともと物理学者であり統計学者ではないことも知っておく必要があります。そのため、ここでの私の専門知識はやや限られています。ネストされたCVを使用して、最終モデルに期待できるパフォーマンスを推定するジャーナルペーパーを書いています。私のドメインでは、これが最初です。(ほとんど使用しません私の分野では堅牢なCVの形ですが、ニューラルネットとブーストされた決定木を使用した研究の結果を含む論文を喜んで送り出します!)したがって、私が非常に徹底的かつ明確な理解を持っていることが重要です。私のコミュニティへの誤った手順は、何年も学ぶことができませんでした!ありがとう!質問を続けて... ネストされた交差検証後に最終モデルを作成するにはどうすればよいですか? L1とL2の正規化を使用した単純なglmnetモデルをトレーニングしています。それは高速で、シンプルで、解釈可能です。特徴の中心化、スケーリング、およびBox-Cox変換を実行して、特徴の分布が平均中心で標準化されており、ガウスに似ていることを確認します。情報漏えいを防ぐため、この手順は相互検証内で実行します。純粋に私のハードウェアが非常に遅いため、CPUの負荷を増やすことができないため、機能の前処理後にCV内で高速のフィルターベースの機能選択を実行します。ランダムグリッド検索を使用して、アルファおよびラムダハイパーパラメーターを選択しています。私はすべきではないことを理解していますこの推定値を取得するCVループ。内部CVループはモデル選択(この場合、最適なハイパーパラメーター)に使用され、外部ループはモデル評価に使用されること、つまり、内部CV ループと外部CVはしばしば誤って混同される2つの異なる目的を果たすことを理解しています。(私はこれまでどのようにやっていますか?) さて、私が投稿したリンクは、「相互検証を考える方法は、モデルのパフォーマンスを推定するのではなく、モデルを構築する方法を使用して得られたパフォーマンスを推定することだ」と示唆しています。それを考えると、ネストされたCV手順の結果をどのように解釈する必要がありますか? 私が読んだアドバイスは次のことを示しているようです-これが間違っている場合は修正してください:内側のCVは、glmnetモデルの最適なアルファおよびラムダハイパーパラメーターを選択できるメカニズムの一部です。外側のCVは、ハイパーパラメーターの調整やデータセット全体を使用して最終モデルを構築するなど、内側CVで使用されている手順とまったく同じ手順を適用すると、最終モデルから得られると予想される推定値を示します。つまり、ハイパーパラメーターの調整は「モデルの構築方法」の一部です。これは正しいですか?これは私を混乱させるものだからです。他の場所では、展開する最終モデルを構築する手順には、固定値を使用したデータセット全体のトレーニングが含まれることがわかりましたCVを使用して選択されたハイパーパラメーターの。ここで、「モデルの構築方法」にはチューニングは含まれていません。それで、どちらですか?ある時点で、最適なハイパーパラメーターが選択され、最終モデルを構築するために修正されます!どこ?どうやって?内側のループが5倍のCVで、外側のループが5倍のCVで、内側のCVでのランダムグリッド検索の一部としてテスト用に100ポイントを選択した場合、実際にglmnetを何回トレーニングしますかモデル?(100 * 5 * 5)+ 1(最終ビルド用)、または私が知らないステップが他にありますか? 基本的に、ネストされたCVからパフォーマンスの見積もりを解釈する方法と、最終モデルを構築する方法について、非常に明確な説明が必要です。 また、最終的なglmnetモデルからの確率スコアを(バイナリ)クラスラベルに変換するための確率しきい値を選択するための適切な手順を知りたい--- CVの別のループが必要ですか?


1
繰り返しk分割交差検定の分散の報告
私は繰り返しk-foldクロス検証を使用し、クロス検証のさまざまな実行のフォールド全体のグランド平均として計算された平均(感度、特異度などの評価メトリックの)を報告しています。 ただし、分散をどのように報告すべきかはわかりません。ここで繰り返しクロスバリデーションについて議論する多くの質問を見つけましたが、繰り返しクロスバリデーションテストの分散の問題に明確に答えていることを知っているものはありません。 合計分散は、1)モデルの不安定性と2)サンプルサイズの制限によるものであることを理解しています。 繰り返しk分割交差検証の分散を計算するには、4つの異なるアプローチがあるようです。 1)相互検証の実行における推定平均パフォーマンスメトリックの分散(たとえば、精度)は、分散の有効な推定ですか? 2)実行固有の分散をプールすることによるプールされた分散(クロス検証テストの実行の異なるフォールドにわたって計算されます)。 3)大きなベクターで実行されたクロス検証の異なるフォールドからの分類結果を連結する。たとえば、各フォールドのテストデータの数が10で、10倍のCVがある場合、反復の結果のベクトルのサイズは100になります。ここで、クロス検証テストを10回繰り返すと、サイズ100の10個のベクトルがあり、各ベクトルには10倍のCV実行の分類結果が含まれています。ここで、平均値と分散をシングルランCVの場合として計算します。 4)分散が外部分散と予想される内部分散の合計であることも読みました(式2および3 in 1)。私が正しく理解している場合、外部の分散は繰り返し固有の平均パフォーマンスの分散であり、内部の分散は相互検証の実行のさまざまなフォールドにわたる分散です。 繰り返しの相互検証テストのために報告するのに適切な差異について、あなたの助けとガイダンスを大いに感謝します。 おかげで、

1
外れ値を明らかにするために、1つの平均値と標準偏差を残して使用できますか?
データを正常に配信したとします。データの各要素について、平均からどれだけのSDが離れているかを確認します。データに外れ値がある可能性があります(おそらく1つだけですが、2つまたは3つかもしれません)が、この外れ値は基本的に私が探しているものです。平均とSDの計算から現在見ている要素を一時的に除外することは意味がありますか?私の考えでは、平均に近い場合、影響はありません。外れ値である場合、平均とSDの計算にバイアスがかかり、検出される確率が低くなる可能性があります。私は統計学者ではないので、どんな助けでも大歓迎です!

4
相互検証とパラメーター調整
クロスバリデーション分析の結果として正確に何が得られるのか、誰にも教えてもらえますか?それは単なる平均精度ですか、それとも調整されたパラメーターを持つモデルを提供しますか? なぜなら、交差検証がパラメーター調整に使用されると聞いたからです。

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