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

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

5
SVMの最適なメタパラメータを見つけるための高速な方法(グリッド検索よりも高速)
SVMモデルを使用して、大気汚染物質の短期予測を行っています。新しいモデルをトレーニングするには、SVMモデルに適切なメタパラメーターを見つける必要があります(C、ガンマなどを意味します)。 Libsvmのドキュメント(および私が読んだ他の多くの本)は、グリッド検索を使用してこれらのパラメーターを見つけることを提案しています。したがって、基本的に特定のセットからこれらのパラメーターの組み合わせごとにモデルをトレーニングし、最適なモデルを選択します。 最適な(または最適に近い)メタパラメーターを見つけるより良い方法はありますか?私にとっては、主に計算時間の問題です-この問題の1回のグリッド検索には約2時間かかります(最適化を行った後)。 グリッド検索の長所: 簡単に並列化することができます-20個のCPUがある場合、20倍高速になり、他のメソッドの並列化は難しくなります メタパラメータ空間の大部分をチェックするため、適切なソリューションがあればそれを見つけることができます。

2
Plattのスケーリングを使用する理由
教師あり学習の信頼度を確率に調整する(たとえば、オーバーサンプリングデータを使用してSVMまたは決定木から信頼度をマップする)方法の1つは、Plattのスケーリングを使用することです(たとえば、ブースティングから調整済み確率を取得する)。 基本的には、ロジスティック回帰を使用してをにマッピングします。従属変数は真のラベルであり、予測子は未較正モデルからの信頼度です。私が理解していないのは、1または0以外のターゲット変数の使用です。このメソッドは、新しい「ラベル」の作成を呼び出します。[−∞;∞][−∞;∞][-\infty;\infty][0;1][0;1][0;1] シグモイド列セットへの過剰適合を回避するために、サンプル外モデルが使用されます。ある場合正例と各トレーニング例えば列車セット内の負例、プラットキャリブレーションが使用目標値及び(代わりに、1と0のそれぞれ)、 N+N+N_+N−N−N_-y+y+y_+y−y−y_-y+=N++1N++2;y−=1N−+2y+=N++1N++2;y−=1N−+2 y_+=\frac{N_++1}{N_++2};\quad\quad y_-=\frac{1}{N_-+2} 私が理解していないのは、この新しいターゲットの有用性です。ロジスティック回帰では、従属変数をバイナリラベルとして扱うだけではありませんか(どのラベルが指定されているかに関係なく)。 更新: SASで依存関係をから別の何かに変更すると、同じモデルに戻ります(を使用)。おそらく私のエラーか、多分SASの汎用性の欠如でしょう。Rでモデルを変更できました。例として:1/01/01/0PROC GENMOD data(ToothGrowth) attach(ToothGrowth) # 1/0 coding dep <- ifelse(supp == "VC", 1, 0) OneZeroModel <- glm(dep~len, family=binomial) OneZeroModel predict(OneZeroModel) # Platt coding dep2 <- ifelse(supp == "VC", 31/32, 1/32) plattCodeModel <- glm(dep2~len, family=binomial) plattCodeModel predict(plattCodeModel) compare <- cbind(predict(OneZeroModel), predict(plattCodeModel)) plot(predict(OneZeroModel), predict(plattCodeModel))

3
ネストされたクロス検証でハイパーパラメーターを取得する方法
ネストされたクロス検証に関する次の投稿を読んでいますが、ネストされたクロス検証を使用したモデル選択で何をすべきかはまだ100%わかりません。 モデル選択のためのネストされたクロス検証 モデルの選択と相互検証:正しい方法 混乱を説明するために、ネストされた相互検証方法を使用して、モデルの選択をステップごとに見てみましょう。 K-Foldを使用して外側のCVループを作成します。これは、各内部CVループを「獲得」したハイパーパラメーターのパフォーマンスを推定するために使用されます。 GridSearchCVを使用して、内部CVループを作成します。各内部ループでは、GSCVがパラメータースペースのすべての可能な組み合わせを調べて、最適なパラメーターセットを見つけます。 GSCVは、内側のループで最適なパラメーターを見つけた後、外側のループでテストセットを使用してテストし、パフォーマンスを推定します。 次に、外側のループがテストセットとして次のフォールドに更新され、残りがトレーニングセットとして更新され、1〜3回繰り返されます。可能な「勝ち」パラメータの合計は、外側のループで指定されたフォールドの数です。外側のループは5倍であれば、あなたはとアルゴリズムの性能予測しています5つの異なるセットハイパーパラメータの、NOTハイパーパラメータの一つの特定のセットのパフォーマンスを。 このアプローチは、SKLearnのサンプルページに示されています:http ://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html 質問:4.の 後、どのハイパーパラメーターが最適に機能したかをどのように判断しますか?最後にCOMPLETEデータセットを使用してアルゴリズム(ロジスティック回帰、ランダムフォレストなど)をトレーニングする必要があることを理解しています。しかし、ネストされたクロス検証でどのハイパーパラメーターが最適に機能したかをどのように判断しますか?私の理解では、各内部ループに対して、異なるハイパーパラメーターのセットが勝つということです。また、外側のループについては、GridSearchCVのパフォーマンスの推定値を取得していますが、ハイパーパラメーターの特定のセットは取得していません。それでは、最終的なモデル作成で、どのハイパーパラメーターを使用するかをどのように知るのでしょうか?それは、他のトレッドから理解するのに苦労している欠落しているロジックです。 特に@Dikran Marsupialと@cbeleitesが鳴り響く場合は、ヒントを事前にありがとうございます! 編集:可能であれば、答えには「アルゴリズム」や「ハイパーパラメーター」などの用語を使用してください。私にとって混乱の原因の1つは、人々が「モデル」または「モデル選択」という用語を使用していることだと思います。使用するアルゴリズムの選択について、または使用するハイパーパラメーターの選択について話しているのかどうか、私は混乱します。 編集2:ネストされた相互検証を行う2つの方法を示すノートブックを作成しました。最初の方法はSKLearnの例で示したもので、もう1つの方法は私が書いたものです。SKLearnに示されている方法は、「勝つ」ハイパーパラメーターを公開していませんが、私の長い方法は公開しています。しかし、問題は同じままです。ハイパーパラメーターが公開されている場合でも、ネストされたクロス検証を完了した後、どうすればよいですか?ノートブックの最後にあるハイパーパラメーターからわかるように、それらはかなり異なります。

1
キャレット-繰り返されるKフォールド交差検証とネストされたKフォールド交差検証、n回繰り返される
キャレットパッケージには、複数の機械学習モデルを構築するための華麗なRライブラリで、モデル構築および評価のためのいくつかの機能を持っています。パラメーターの調整とモデルのトレーニングのために、キャレットパッケージはメソッドの1つとして 'repeatedcv'を提供します。 良いプラクティスとして、次のように機能するネストされたKフォールドクロス検証を使用してパラメーターチューニングを実行できます。 トレーニングセットを「K」個のサブセットに分割する 各反復で、モデルトレーニング用に 'K-1'サブセットを取得し、モデルテスト用に1サブセット(ホールドアウトセット)を保持します。 さらに、「Kマイナス1」トレーニングセットを「K」サブセットに分割し、パラメータ調整(グリッド検索)に新しい「Kマイナス1」サブセットと「検証セット」を繰り返し使用します。このステップで特定された最適なパラメーターは、ステップ2で設定されたホールドアウトでテストするために使用されます。 一方、繰り返しのKフォールド交差検証は、モデルの分散を見つけるために選択した回数だけ、ステップ1と2を繰り返し繰り返す可能性があると思います。 ただし、キャレットマニュアルのアルゴリズムを実行すると、 'repeatedcv'メソッドは、クロス検証の繰り返しに加えて、ネストされたKフォールドクロス検証も実行する可能性があるようです。 私の質問は: キャレットの 'repeatedcv'メソッドについての私の過小評価は正しいですか? そうでない場合は、キャレットパッケージを使用した 'repeatedcv'メソッドを使用して、ネストされたKフォールドクロス検証を使用した例を教えてください。 編集: この方法論の記事では、さまざまなクロス検証戦略について説明し、比較しています。 Krstajic D、Buturovic LJ、Leahy DE、Thomas S:回帰および分類モデルを選択および評価する際の交差検証の落とし穴。Journal of Cheminformatics 2014 6(1):10。doi:10.1186 / 1758-2946-6-10 キャレットパッケージを使用した「アルゴリズム2:階層化されたネストされたクロス検証の繰り返し」と「アルゴリズム3:変数選択とパラメーターチューニングのためのグリッド検索のクロス検証の繰り返し」に興味があります。

1
予測モデルを評価するために、繰り返し交差検証を使用する必要がありますか?
Gitte VanwinckelenとHendrik Blockeelによるこの2012年の記事に出くわしたのは、繰り返しの交差検証の有用性に疑問を投げかけることでした。 著者は、同じサンプルデータセットがリサンプリングされているため、繰り返し交差検証を行うとモデル予測の分散が減少する一方で、リサンプリングされた交差検証の推定値の平均は真の予測精度の偏った推定値に収束し、したがって有用ではないことを実証しました。 これらの制限にもかかわらず、相互検証を繰り返し使用する必要がありますか?

3
k分割交差検証のグリッド検索
10倍のクロス検証設定で120サンプルのデータセットを持っています。現在、最初のホールドアウトのトレーニングデータを選択し、グリッド検索によってガンマとCの値を選択するために5倍の交差検証を行います。RBFカーネルでSVMを使用しています。精度を報告するために10 10の交差検証を行っているため、各グリッドのトレーニングデータでこのグリッド検索を実行します(10のホールドアウトがあり、それぞれ10%のテストと90%のトレーニングデータがあります)?それは時間がかかりすぎませんか? 最初のホールドアウトのガンマとCを使用し、k倍交差検証の9つのホールドアウトの残りにそれを使用すると、トレインデータを使用してガンマとCを取得し、再び使用するため、違反です2番目のホールドアウトのテストとしての列車データの一部

7
「最適」および相互検証という用語で使用される「最適」の定義は何ですか?
非線形関数を一連の点に当てはめると(各横座標に1つの縦座標しかないと仮定して)、結果は次のいずれかになります。 小さな残差を持つ非常に複雑な関数 大きな残差を持つ非常に単純な関数 通常、クロス検証は、これらの2つの両極端間の「最良の」妥協点を見つけるために使用されます。しかし、「最高」とはどういう意味ですか?それは「最も可能性が高い」ですか?最も可能性の高いソリューションが何であるかをどのように証明し始めますか? 私の内なる声は、CVが何らかの最小エネルギーソリューションを見つけていることを教えてくれます。これにより、統計と物理学の両方で発生するエントロピーについて考えることができます。 複雑さとエラーの関数の合計を最小化することにより、「最適な」適合が生成されるように思えます。 minimising m where m = c(Complexity) + e(Error) これは理にかなっていますか?関数cとeはどうなりますか? 数学はあまり理解できないので、非数学言語を使って説明してください。

2
RのキャレットパッケージでのPCAおよびk分割交差検証
Courseraの機械学習コースの講義を再視聴しました。教授が教師あり学習アプリケーションでデータを前処理するためのPCAについて説明しているセクションでは、PCAはトレーニングデータに対してのみ実行し、マッピングを使用して相互検証とテストセットを変換します。PCAおよびtrain / test splitも参照してください。 ただし、caretRパッケージでは、train()関数に渡すトレーニングデータは既にPCAによって処理されています。そうする際、アルゴリズムが実行クロスバリデーションをK倍クロスバリデーションセットが既に介してPCAを用いて処理されているpreProcess()とpredict()「フィッティング」と実際にPCAに使用されます。 状況に対する私の理解は正しいですか?つまり、データの前処理がトレーニングセットと同様にクロス検証セットで実行されるため、PCA(または実際には、任意の再スケーリング/センタリング方法)でのクロス検証のキャレットの手順は「間違っています」か?もしそうなら、これは結果にどれほど大きな影響を与えるでしょうか?

4
交差検証前の正規化
繰り返しk倍交差検定を実行する前にデータを正規化する(平均がゼロで標準偏差が1になる)には、オーバーフィットなどのマイナスの影響がありますか? 注:これは、#cases> total #featuresの状況用です ログ変換を使用して一部のデータを変換し、上記のようにすべてのデータを正規化します。次に、機能の選択を実行しています。次に、選択された特徴と正規化されたデータを繰り返し10倍交差検証に適用して、一般化された分類器のパフォーマンスを試してみて、すべてのデータを使用して正規化することは適切ではないことを懸念しています。各フォールドのトレーニングデータから取得した正規化データを使用して、各フォールドのテストデータを正規化する必要がありますか? 感謝の意を表明しました!この質問が明らかな場合はおApび申し上げます。 編集: これをテストすると(以下の提案に沿って)、CV内の正規化と比較した場合、CV以前の正規化はパフォーマンス面で大きな違いをもたらさないことがわかりました。

2
アウトオブバッグエラーにより、ランダムフォレストでCVが不要になりますか?
ランダムフォレストはかなり新しいです。過去に、私は常にオーバーフィットを検出するために、フィット対テストの精度とフィット対トレーニングを比較してきました。しかし、私はここでそれを読んだ: 「ランダムフォレストでは、テストセットエラーの公平な推定値を取得するために、相互検証または個別のテストセットは必要ありません。実行中に内部的に推定されます...」 上記の小さな段落は、out-of-bag(oob)エラー推定セクションにあります。このOut of Bag Errorの概念は私にとって全く新しいものであり、少し紛らわしいのは、モデルのOOBエラーが35%(または65%の精度)であることですが、データにクロス検証を適用すると方法)、フィットとテストの両方に対してフィットとテストを比較すると、それぞれ65%の精度と96%の精度が得られます。私の経験では、これは過剰適合と考えられているが、OOBはちょうど私のように35%の誤差を保持しているテスト対フィットエラー。オーバーフィッティングですか?ランダムフォレストで過剰適合をチェックするために相互検証を使用する必要さえありますか? 手短に言えば、フィット感とトレインがオーバーフィッティングであることを示しているときに、テストセットエラーの公平なエラーを得るためにOOBを信頼すべきかどうかはわかりません!

1
帰無仮説の下で交換可能なサンプルの背後にある直感は何ですか?
順列テスト(ランダム化テスト、再ランダム化テスト、または正確なテストとも呼ばれます)は非常に便利で、たとえば、必要な正規分布の仮定がt-test満たされていない場合や、ランク付けによる値の変換時に役立ちますノンパラメトリックテストのようにMann-Whitney-U-test、より多くの情報が失われます。ただし、この種の検定を使用する場合、帰無仮説の下でのサンプルの交換可能性の仮定は1つだけの仮定を見落とすべきではありません。coinRパッケージで実装されているようなサンプルが3つ以上ある場合にも、この種のアプローチを適用できることも注目に値します。 この仮定を説明するために、平易な英語で比fig的な言葉や概念的な直観を使ってください。これは、私のような非統計学者の間で見過ごされているこの問題を明確にするのに非常に役立つでしょう。 注: 置換テストの適用が同じ仮定の下で保持または無効にならない場合に言及することは非常に役立ちます。 更新: 私の地区の地元の診療所から無作為に50人の被験者を収集したとします。彼らは、1:1の比率で薬またはプラセボを無作為に割り当てられました。それらはすべてPar1、V1(ベースライン)、V2(3か月後)、およびV3(1年後)のパラメーター1について測定されました。50個の被験者はすべて、機能Aに基づいて2つのグループにサブグループ化できます。Aポジティブ= 20およびAネガティブ=30。これらは、機能Bに基づいて別の2つのグループにサブグループ化することもできます。Bポジティブ= 15およびBネガティブ=35 。今、私はPar1すべての訪問ですべての被験者からの値を持っています。交換可能性の仮定の下で、次のPar1場合に順列検定を使用するレベルを比較でき ますか?-薬物と被験者をV2でプラセボを投与した被験者と比較する ますか?-機能Aの対象とV2の機能Bの対象を比較しますか? -V2で機能Aを持つ対象とV3で機能Aを持つ対象を比較しますか? -この比較はどのような状況で無効であり、交換可能性の仮定に違反しますか?
15 hypothesis-testing  permutation-test  exchangeability  r  statistical-significance  loess  data-visualization  normal-distribution  pdf  ggplot2  kernel-smoothing  probability  self-study  expected-value  normal-distribution  prior  correlation  time-series  regression  heteroscedasticity  estimation  estimators  fisher-information  data-visualization  repeated-measures  binary-data  panel-data  mathematical-statistics  coefficient-of-variation  normal-distribution  order-statistics  regression  machine-learning  one-class  probability  estimators  forecasting  prediction  validation  finance  measurement-error  variance  mean  spatial  monte-carlo  data-visualization  boxplot  sampling  uniform  chi-squared  goodness-of-fit  probability  mixture  theory  gaussian-mixture  regression  statistical-significance  p-value  bootstrap  regression  multicollinearity  correlation  r  poisson-distribution  survival  regression  categorical-data  ordinal-data  ordered-logit  regression  interaction  time-series  machine-learning  forecasting  cross-validation  binomial  multiple-comparisons  simulation  false-discovery-rate  r  clustering  frequency  wilcoxon-mann-whitney  wilcoxon-signed-rank  r  svm  t-test  missing-data  excel  r  numerical-integration  r  random-variable  lme4-nlme  mixed-model  weighted-regression  power-law  errors-in-variables  machine-learning  classification  entropy  information-theory  mutual-information 

2
相互検証における平均(スコア)対スコア(連結)
TLDR: 私のデータセットは非常に小さい(120)サンプルです。10倍のクロス検証を行っている間に、次のことを行う必要があります。 各テストフォールドから出力を収集し、それらをベクトルに連結して、予測のこの完全なベクトル(120サンプル)でエラーを計算しますか? それとも私がすべきである代わりに、私が手出力に誤差を計算各倍に(倍あたり12個のサンプルで)、その後、10倍の誤差推定値の平均として私の最終誤差推定値を得ますか? これらの手法の違いを主張する科学論文はありますか? 背景:マルチラベル分類におけるマクロ/マイクロスコアとの潜在的な関係: この質問は、マルチラベル分類タスク(たとえば5ラベルなど)でよく使用されるミクロ平均とマクロ平均の違いに関連していると思います。 マルチラベル設定では、120サンプルの5つの分類子予測すべてについて、真陽性、偽陽性、真陰性、偽陰性の集約された分割表を作成することにより、マイクロ平均スコアが計算されます。次に、この分割表を使用して、マイクロ精度、マイクロリコール、およびマイクロfメジャーを計算します。したがって、120個のサンプルと5つの分類子がある場合、600の予測(120個のサンプル* 5つのラベル)でミクロ測定が計算されます。 マクロバリアントを使用する場合、各ラベルでメジャー(精度、リコールなど)を個別に計算し、最後にこれらのメジャーを平均します。 違いの背後にある考え方マイクロ対マクロの推定値は、バイナリ分類問題におけるK倍の設定で何ができるかに拡張することができます。10倍の場合、10個の値を平均するか(マクロ測定)、10個の実験を連結してマイクロ測定を計算できます。 背景-展開例: 次の例は質問を示しています。12個のテストサンプルがあり、10個のフォールドがあるとします。 フォールド1:TP = 4、FP = 0、TN = 8 精度 = 1.0 折り2:TP = 4、FP = 0、TN = 8 精度 = 1.0 3つ折り:TP = 4、FP = 0、TN = 8 精度 = 1.0 フォールド4:TP = 0、FP = 12、 精度 = …

1
機能データ分析をいつ/どこで使用しますか?
私は非常に機能的なデータ解析(FDA)に新しいです。私は読んでいます: Ramsay、James O.、およびSilverman、Bernard W.(2006)、Functional Data Analysis、第2版、Springer、ニューヨーク。 ただし、FDAをどこでいつ使用するかはまだ明確ではありませんか?誰かが私に特に医学研究で例を挙げてくれませんか?私は実際にFDAをどこで/いつ適用するかを本当に知りません。 成長曲線データについては、非線形混合モデルを使用でき、縦断データについては反復測定ANOVAを使用でき、多変量データ/高次元データについてはPCA、FAなどを使用できます。 / FDAを使用する状況

2
「ブートストラップ検証」(別名「相互検証の再サンプリング」)の手順は何ですか?
「ブートストラップ検証」/「相互検証の再サンプリング」は私にとっては新しいものですが、この質問に対する答えで議論されました。私が収集するのは、2種類のデータです:実データとシミュレートデータ。シミュレートデータが実データと同じサイズになるまで、置換によるリサンプリングによって実データから与えられたシミュレートデータのセットが生成されます。そのようなデータ型を使用するための2つのアプローチを考えることができます。(2)多くのシミュレートされたデータセットのそれぞれを使用してモデルを何度も適合させ、毎回それを実際のデータに対して評価します。どちらが最適ですか?

2
Cox比例ハザードモデルで相互検証を行う方法
1つのデータセット(モデル構築データセット)で特定の疾患の発生に関する予測モデルを構築し、新しいデータセット(検証データセット)でモデルがどのように機能するかを確認したいとします。ロジスティック回帰で構築されたモデルの場合、モデル構築データセットから取得したモデル係数に基づいて検証データセット内の各人の予測確率を計算し、カットオフ値でそれらの確率を二分した後、2x2テーブルを構築できますこれにより、真の陽性率(感度)と真の陰性率(特異性)を計算できます。さらに、カットオフを変更してROC曲線全体を作成し、ROCグラフのAUCを取得できます。 ここで、実際に生存データがあると仮定します。そのため、モデル作成データセットでCox比例ハザードモデルを使用し、検証データセットでモデルがどのように機能するかを確認したいと思います。ベースラインリスクはCoxモデルのパラメトリック関数ではないため、モデル構築データセットで取得したモデル係数に基づいて検証データセットの各人の予測生存確率を取得する方法はわかりません。それでは、検証データセットでモデルがどのように機能するかを確認するにはどうすればよいですか?これを行うための確立された方法はありますか?はいの場合、それらはソフトウェアに実装されていますか?提案を事前に感謝します!

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