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

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

5
CV / Bootstrapを使用して機械学習アルゴリズムをトレーニングすることでオーバーフィットできますか?
この質問は、決定的な答えを得るにはあまりにもオープンエンドかもしれませんが、そうでないことを願っています。 SVM、GBM、ランダムフォレストなどの機械学習アルゴリズムには、一般に、いくつかの経験則を超えて、各データセットに合わせて調整する必要があるいくつかの無料のパラメーターがあります。これは、一般的に、ある種の再サンプリング手法(ブートストラップ、CVなど)で行われ、最良の一般化エラーを与えるパラメーターのセットに適合します。 私の質問は、あなたがここにすぎ行くことができるのですか?人々はグリッド検索を行うことなどについて話しますが、なぜこれを最適化問題として扱い、可能な限り最良のパラメータセットにドリルダウンしないのですか?私はこのいくつかの仕組みについて尋ね、この質問が、それは多くの注目を集めていません。質問はひどく聞かれたかもしれませんが、おそらく質問自体は人々が一般にしない悪いアプローチを表しているのでしょうか? どのような私を気にすることは正則の欠如です。再サンプリングすると、このデータセットのGBMで成長するのに最適なツリーの数は647で、相互作用の深さは4ですが、これが新しいデータに当てはまることをどのように確認できますか(新しい母集団を仮定して) )トレーニングセットと同一ですか?「縮小」する合理的な価値がない場合(または、情報を提供する事前情報がない場合)、リサンプリングは私たちができる最善の方法のようです。私はこのことについて何も話を聞いていないので、何か足りないものがあるのではないかと思います。 明らかに、多くの反復を行ってモデルの予測力の最後のビットを絞り出すことに関連する大きな計算コストがあるため、これは明らかに、最適化とすべてのビットを行うための時間/うなりを持っている場合にあなたがすることですパフォーマンスの改善は貴重です。


1
相互検証の誤用(最適なハイパーパラメーター値のパフォーマンスの報告)
最近、特定のデータセットでk-NN分類器を使用することを提案する論文に出会いました。著者は、利用可能なすべてのデータサンプルを使用して、さまざまなk値のk分割交差検証を実行し、最適なハイパーパラメーター構成の交差検証結果を報告しました。 私の知る限り、この結果には偏りがあり、ハイパーパラメーター最適化の実行に使用されないサンプルの精度推定値を取得するために、別のテストセットを保持する必要がありました。 私は正しいですか?この相互検証の誤用について説明した参考文献(できれば研究論文)を提供してください。

2
階層化されたクロス検証を使用する理由 なぜこれが分散に関連する利益に損害を与えないのですか?
特に応答クラスのバランスが取れていない場合は、階層化されたクロス検証を使用すると有益だと言われています。交差検証の目的の1つが元のトレーニングデータサンプルのランダム性を説明することである場合、元のトレーニングセットに代表的なクラス分布があることが確実でない限り、各フォールドに同じクラス分布を持たせることはこれに対して確実に機能します。 私の論理に欠陥はありますか? 編集 この方法がCVの利益を損なうかどうかに興味があります。フォールドにマイナークラスの単一の代表者がいないことを回避するために、小さなサンプル/非常に不均衡なクラス/両方がある場合に必要な理由がわかります。 論文クロスバリデーション研究におけるApples-to-Apples:Classifier Performance Measurementの落とし穴は、層別化のケースをうまく提唱していますが、すべての議論は「層別化が保護と一貫性を提供する」に等しいようですが、十分な保護は必要ありませんデータ。 答えは単に「データが十分にあることはめったにないので、不必要に使用します」です。?

1
ポアソンモデルの相互検証のエラーメトリック
カウントを予測しようとしているモデルを相互検証しています。これがバイナリ分類の問題である場合は、フォールドアウトAUCを計算し、これが回帰問題である場合は、フォールドアウトRMSEまたはMAEを計算します。 ポアソンモデルの場合、サンプル外予測の「精度」を評価するためにどのエラーメトリックを使用できますか?AUCのポアソン拡張で、予測が実際の値をどの程度適切に並べるかを調べますか? カウントのための多くのKaggleコンテスト(たとえば、yelpレビューで得られる有用な投票数、または患者が病院で過ごす日数)は、二乗平均平方根誤差、またはRMLSEを使用しているようです。 /編集:私がやっていることの1つは、予測値の10分の1を計算してから、十分な数でビニングされた実際のカウントを調べることです。十分位数1が低く、十分位数10が高く、その間の十分位数が厳密に増加している場合、モデルを「良い」と呼んでいますが、このプロセスを定量化するのに苦労しており、より良い方法があると確信していますアプローチ。 /編集2:予測値と実際の値を取得し、「エラー」または「精度」メトリックを返す数式を探しています。私の計画は、交差検証中にフォールド外データでこの関数を計算し、それを使用してさまざまなモデル(ポアソン回帰、ランダムフォレスト、GBMなど)を比較することです。 たとえば、そのような関数の1つですRMSE = sqrt(mean((predicted-actual)^2))。別のそのような関数はAUCです。どちらの関数もポアソンデータには適切でないようです。

3
Kフォールドとモンテカルロクロス検証
主に教師付き多変量解析手法に適用することを意図して、さまざまな相互検証方法を学習しようとしています。私が出会った2つは、Kフォールドとモンテカルロの相互検証技術です。私は、Kフォールドがモンテカルロのバリエーションであることを読みましたが、モンテカルロの定義を構成するものが完全に理解されているかどうかはわかりません。誰かがこれら2つの方法の違いを説明してもらえますか?

1
lmerモデルからの効果の再現性の計算
混合効果モデリングによる測定の再現性(別名信頼性、別名クラス内相関)の計算方法を説明するこの論文に出会ったばかりです。Rコードは次のようになります。 #fit the model fit = lmer(dv~(1|unit),data=my_data) #obtain the variance estimates vc = VarCorr(fit) residual_var = attr(vc,'sc')^2 intercept_var = attr(vc$id,'stddev')[1]^2 #compute the unadjusted repeatability R = intercept_var/(intercept_var+residual_var) #compute n0, the repeatability adjustment n = as.data.frame(table(my_data$unit)) k = nrow(n) N = sum(n$Freq) n0 = (N-(sum(n$Freq^2)/N))/(k-1) #compute the adjusted repeatability Rn = …
28 mixed-model  reliability  intraclass-correlation  repeatability  spss  factor-analysis  survey  modeling  cross-validation  error  curve-fitting  mediation  correlation  clustering  sampling  machine-learning  probability  classification  metric  r  project-management  optimization  svm  python  dataset  quality-control  checking  clustering  distributions  anova  factor-analysis  exponential  poisson-distribution  generalized-linear-model  deviance  machine-learning  k-nearest-neighbour  r  hypothesis-testing  t-test  r  variance  levenes-test  bayesian  software  bayesian-network  regression  repeated-measures  least-squares  change-scores  variance  chi-squared  variance  nonlinear-regression  regression-coefficients  multiple-comparisons  p-value  r  statistical-significance  excel  sampling  sample  r  distributions  interpretation  goodness-of-fit  normality-assumption  probability  self-study  distributions  references  theory  time-series  clustering  econometrics  binomial  hypothesis-testing  variance  t-test  paired-comparisons  statistical-significance  ab-test  r  references  hypothesis-testing  t-test  normality-assumption  wilcoxon-mann-whitney  central-limit-theorem  t-test  data-visualization  interactive-visualization  goodness-of-fit 

3
トレーニング、検証、テストなどの相互検証。なぜ3つのサブセットが必要なのですか?
相互検証プロセスに関して質問があります。私は、Curseraの機械学習のコースの途中にいます。トピックの1つは相互検証に関するものです。フォローするのが少し難しいと感じました。モデルが将来の(未知の)データに対して適切に機能し、CVがオーバーフィッティングを防ぐため、CVが必要な理由を知っています。ただし、プロセス自体は混乱を招きます。 私が理解したことは、データを3つのサブセット(トレーニング、検証、テスト)に分割することです。トレーニングと検証は、モデルの最適な複雑さを見つけることです。私が理解していないのは、3番目のサブセットです。モデルの多くの機能を使用し、トレーニングして検証サブセットで検証し、構造を変更するときに最小コスト関数を探すことを理解しています。見つかったら、テストサブセットでモデルをテストします。検証サブセットで最小コスト関数を既に見つけた場合、テストサブセットで再度テストする必要があるのはなぜですか? 誰かがこれを明確にしてくれますか? ありがとうございました

1
自由度は非整数の数値にできますか?
GAMを使用すると、残留DFは(コードの最終行)になります。どういう意味ですか?GAMの例を超えて、一般に、自由度の数を整数以外の数にすることはできますか?26.626.626.6 > library(gam) > summary(gam(mpg~lo(wt),data=mtcars)) Call: gam(formula = mpg ~ lo(wt), data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -4.1470 -1.6217 -0.8971 1.2445 6.0516 (Dispersion Parameter for gaussian family taken to be 6.6717) Null Deviance: 1126.047 on 31 degrees of freedom Residual Deviance: 177.4662 on 26.6 degrees of …
27 r  degrees-of-freedom  gam  machine-learning  pca  lasso  probability  self-study  bootstrap  expected-value  regression  machine-learning  linear-model  probability  simulation  random-generation  machine-learning  distributions  svm  libsvm  classification  pca  multivariate-analysis  feature-selection  archaeology  r  regression  dataset  simulation  r  regression  time-series  forecasting  predictive-models  r  mean  sem  lavaan  machine-learning  regularization  regression  conv-neural-network  convolution  classification  deep-learning  conv-neural-network  regression  categorical-data  econometrics  r  confirmatory-factor  scale-invariance  self-study  unbiased-estimator  mse  regression  residuals  sampling  random-variable  sample  probability  random-variable  convergence  r  survival  weibull  references  autocorrelation  hypothesis-testing  distributions  correlation  regression  statistical-significance  regression-coefficients  univariate  categorical-data  chi-squared  regression  machine-learning  multiple-regression  categorical-data  linear-model  pca  factor-analysis  factor-rotation  classification  scikit-learn  logistic  p-value  regression  panel-data  multilevel-analysis  variance  bootstrap  bias  probability  r  distributions  interquartile  time-series  hypothesis-testing  normal-distribution  normality-assumption  kurtosis  arima  panel-data  stata  clustered-standard-errors  machine-learning  optimization  lasso  multivariate-analysis  ancova  machine-learning  cross-validation 

4
トレーニングステップと評価ステップの間に非対称性があるのはなぜですか?
特に自然言語処理では、機械学習はトレーニングステップと評価ステップの2つのステップで進行し、異なるデータを使用する必要があることはよく知られています。どうしてこれなの?直観的に、このプロセスはデータの過剰適合を回避するのに役立ちますが、私はこれが事実である(情報理論的)理由を見ることはできません。 それに関連して、トレーニングに使用するデータセットの量と評価に使用する量について、それぞれ2/3や1/3のように、いくつかの数値が見られました。特定の分布を選択するための理論的根拠はありますか?

1
相互検証は検証セットの適切な代替物ですか?
テキスト分類では、約800サンプルのトレーニングセットと約150サンプルのテストセットがあります。テストセットは使用されたことがなく、最後まで使用されるのを待っています。 私は800のサンプルトレーニングセット全体を使用し、分類器と機能を調整および微調整しながら10倍の相互検証を行います。つまり、個別の検証セットはありませんが、10倍に達するたびに検証セットが自動的に選択されます。 すべてに満足し、評価の最終段階に入りたいと思ったら、800サンプル全体で分類器をトレーニングします。150サンプルのテストセットでテストします。 テキスト分類でのクロス検証のそのような使用法を理解していますか?このプラクティスは有効ですか? クロス検証に関するもう1つの質問は次のとおりです。 10倍ではなく、パフォーマンスの一般的な指標として1つを省いてみました。除外する場合、f1 / precision / recallに関する情報を取得することはできないため、leave-one-outの精度と10倍のメトリクスの関係はどうなっているのでしょうか? どんな洞察も大歓迎です。 編集: これは、相互検証の非常に良い紹介です。また、他の研究論文も参照しています。

2
k分割交差検定の分散推定
K分割交差検定を使用して、特定の分類器の一般化機能を推定できます。分散のより良い推定値を取得するために、すべての検証実行からプールされた分散を計算することもできますか? そうでない場合、なぜですか? クロス検証の実行全体でプールされた標準偏差を使用する論文を見つけました。また、検証分散の普遍的な推定量がないことを明示的に述べた論文を見つけました。しかし、一般化エラーの分散推定量を示す論文も見つけました(これを読んで理解しようとしています)。人々は実際に実際に何をする(または報告する)のか? 編集: CVを使用して大まかな分類エラーを測定する場合(つまり、サンプルに正しくラベルが付けられているか、ラベルが付けられていない、たとえばtrueまたはfalse)、プールされた分散について話すのは意味がない場合があります。ただし、推定している統計に分散が定義されている場合について説明しています。そのため、特定の分割について、統計値と分散推定値の両方が得られます。この情報を破棄して平均統計のみを考慮するのは適切ではないようです。そして、私はブートストラップ法を使用して分散推定値を作成できることを知っていますが(そうでない場合)、フォールド分散を無視し、統計推定値のみを考慮します(さらに多くの計算能力が必要です)。

1
Rで、AICとBICがどの相互検証方法と同等であるかを経験的に実証するにはどうすればよいですか?
で質問他の場所でこのサイトには、いくつかの答えは、AICは(LOO)クロスバリデーションを-1を残し、BICはK倍クロスバリデーションと同等であることと等価であることを述べました。これをRで経験的に実証する方法はありますか。LOOとKフォールドに関連する技術が明確になり、AICとBICの値と同等であることが実証されますか。この点に関しては、十分にコメントされたコードが役立ちます。また、BICのデモでは、lme4パッケージを使用してください。サンプルデータセットについては、以下を参照してください... library(lme4) #for the BIC function generate.data <- function(seed) { set.seed(seed) #Set a seed so the results are consistent (I hope) a <- rnorm(60) #predictor b <- rnorm(60) #predictor c <- rnorm(60) #predictor y <- rnorm(60)*3.5+a+b #the outcome is really a function of predictor a and b but not predictor …
26 r  aic  cross-validation  bic 

4
内部対外部の交差検証とモデル選択
私の理解では、相互検証とモデル選択により、次の2つのことに対処しようとしています。 P1。サンプルでトレーニングする際の母集団の予想損失を推定する P2。この推定の不確実性(分散、信頼区間、バイアスなど)を測定して報告する 標準的な方法では、反復検証を繰り返します。これにより、推定量の分散が減少するためです。 ただし、レポートと分析に関しては、次の理由により、内部検証の方が外部検証よりも優れていると理解しています。 報告することをお勧めします: 推定器の統計。たとえば、完全なサンプル(この場合はCVサンプル)の信頼区間、分散、平均など。 報告よりも: 次の理由により、元のサンプルのホールドアウトサブセットでの推定量の損失: (i)これは単一の測定値になります(CVで推定量を選択した場合でも) (ii)この単一の測定の推定量は、ホールドアウトセット用のスペースを確保する必要があるため、最初のサンプルよりも小さいセット(CVセットなど)でトレーニングされていました。これにより、P1のより偏った(悲観的な)推定になります。 これは正しいです?そうでない場合はなぜですか? バックグラウンド: サンプルを2つのセットに分割することを推奨する教科書は簡単に見つかります。 CVのその後繰り返しに分けて設定し、電車やバリデーションセット。 ホールドアウトのみ推定性能を報告するために端部に使用される(テスト)セット、 私の目標は、この投稿の冒頭で問題P1とP2に実際に対処することだと考えて、この教科書アプローチのメリットと利点を理解する試みです。CVサンプルの分析はより有益であるため、ホールドアウトテストセットのレポートは悪い習慣であるように思えます。 ネストされたKフォールドと繰り返しKフォールド: 原則として、ホールドアウトと通常のK-foldを組み合わせて、ネストされたK-foldを取得でき ます。これは、私たちは私たちの推定量の変動を測定できるようになるが、それは訓練された合計モデルの同じ数(折り目の合計#)のためのものである推定もたらすであろうK倍を繰り返すように私には見え少ないバイアスとより正確なネストされたK-よりを折ります。これを見るには: 繰り返しKフォールドは、同じKのネストされたKフォールドよりもサンプル全体の大部分を使用します(つまり、バイアスが低くなります) 100回の反復では、ネストされたKフォールド(K = 10)で推定器の10個の測定値しか得られませんが、Kフォールドで100個の測定値が得られます(測定値を増やすとP2の分散が低くなります) この推論の何が問題になっていますか?

4
相互検証後の「テスト」データセットの使用方法
私が見たいくつかの講義やチュートリアルでは、データを3つの部分(トレーニング、検証、テスト)に分割することを提案しています。しかし、テストデータセットの使用方法や、このアプローチがデータセット全体の相互検証よりも優れている方法は明確ではありません。 データの20%をテストセットとして保存したとします。次に、残りを取得してk分割し、交差検証を使用して、このデータセットの未知のデータに対して最適な予測を行うモデルを見つけます。私たちが見つけた最良のモデルは、75%の精度を提供するとしましょう。 さまざまなQ&A Webサイトのさまざまなチュートリアルと多くの質問から、保存された(テスト)データセットでモデルを検証できるようになりました。しかし、それがどの程度正確に行われているのか、それが何の要点なのかはまだわかりません。 テストデータセットの精度が70%であるとします。 それでは、次に何をしますか?テストデータセットで高いスコアを取得するまで、別のモデルを試し、次に別のモデルを試しますか?しかし、この場合、限られた(20%のみ)テストセットに適合するモデルを見つけるだけのように見えます。一般的に最適なモデルを見つけるという意味ではありません。 さらに、限られたデータセットでのみ計算される場合、このスコアをモデルの一般的な評価としてどのように考えることができますか?このスコアが低い場合は、不運で「不良」なテストデータを選択した可能性があります。 一方、所有しているすべてのデータを使用してからk分割交差検証を使用してモデルを選択すると、所有しているデータセット全体の未知のデータに対して最適な予測を行うモデルが見つかります。

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