タグ付けされた質問 「caret」

Caretは、予測モデルの作成プロセスを合理化しようとする一連の関数を含むRパッケージです。

1
GBMパッケージとGBMを使用したキャレット
私はを使用してモデルのチューニングを行ってきましたがcaret、gbmパッケージを使用してモデルを再実行しています。caretパッケージが使用gbmし、出力が同じである必要があることは私の理解です。ただし、を使用した簡単なテスト実行でdata(iris)は、評価指標としてRMSEとR ^ 2を使用したモデルで約5%の不一致が示されています。を使用して最適なモデルのパフォーマンスを見つけたいが、部分的な依存関係プロットを利用するためにcaret再実行しgbmます。再現性のために以下のコード。 私の質問は次のとおりです。 1)これらの2つのパッケージは同じであっても違いがあるのはなぜですか(確率的ですが、5%がやや大きな違いであることがわかります。特に、次のような素晴らしいデータセットを使用していない場合 iris、モデリングの) 。 2)両方のパッケージを使用する利点または欠点はありますか? 3)無関係:irisデータセットを使用した場合、最適な値interaction.depthは5ですが、読み取り値が最大値floor(sqrt(ncol(iris)))である2 を超えるはずです。これは厳密な経験則ですか、それとも非常に柔軟ですか。 library(caret) library(gbm) library(hydroGOF) library(Metrics) data(iris) # Using caret caretGrid <- expand.grid(interaction.depth=c(1, 3, 5), n.trees = (0:50)*50, shrinkage=c(0.01, 0.001), n.minobsinnode=10) metric <- "RMSE" trainControl <- trainControl(method="cv", number=10) set.seed(99) gbm.caret <- train(Sepal.Length ~ ., data=iris, distribution="gaussian", method="gbm", trControl=trainControl, verbose=FALSE, tuneGrid=caretGrid, metric=metric, bag.fraction=0.75) …

1
GBM予測間隔を見つける方法
キャレットパッケージを使用してGBMモデルを操作し、予測データの予測間隔を解決する方法を探しています。広範囲に検索しましたが、ランダムフォレストの予測間隔を見つけるためのいくつかのアイデアを思いつきました。ヘルプ/ Rコードは大歓迎です!

1
キャレットパッケージでRandomForestのFinalModelを使用して予測する前に前処理が必要ですか?
キャレットパッケージを使用して、randomForestオブジェクトを10x10CVでトレーニングします。 library(caret) tc <- trainControl("repeatedcv", number=10, repeats=10, classProbs=TRUE, savePred=T) RFFit <- train(Defect ~., data=trainingSet, method="rf", trControl=tc, preProc=c("center", "scale")) その後、testSetでrandomForestをテストします(新しいデータ) RF.testSet$Prediction <- predict(RFFit, newdata=testSet) 混乱行列は、モデルがそれほど悪くないことを私に示しています。 confusionMatrix(data=RF.testSet$Prediction, RF.testSet$Defect) Reference Prediction 0 1 0 886 179 1 53 126 Accuracy : 0.8135 95% CI : (0.7907, 0.8348) No Information Rate : 0.7548 P-Value …

2
ランダムフォレストのキャレットを使用した機能の選択とパラメーターの調整
数千の機能を持つデータがあり、再帰的な機能選択(RFE)を実行して、情報のない機能を削除したいと考えています。これはキャレットとRFEで行います。ただし、最良の回帰適合(たとえば、ランダムフォレスト)を取得する場合、パラメーターの調整(mtryRFの場合)をいつ実行する必要があるかを考え始めました。つまり、私が理解しているように、キャレットは固定mtryを使用してさまざまな機能サブセットでRFを繰り返しトレーニングします。mtry機能の選択が完了した後で最適が見つかると思いmtryますが、キャレットが使用する値は、選択された機能のサブセットに影響しますか?もちろん、低でキャレットを使用するmtry方がはるかに高速です。 誰かがこれを私に説明してくれることを願っています。

1
R / mgcv:なぜte()とti()テンソル積が異なる表面を生成するのですか?
のmgcvパッケージにRは、テンソル積の相互作用をフィッティングするための2つの関数がte()ありti()ます。私は2つの作業の基本的な分業を理解しています(非線形の相互作用を当てはめるか、この相互作用を主効果と相互作用に分解するか)。私が理解していないのは、なぜte(x1, x2)、そしてti(x1) + ti(x2) + ti(x1, x2)(わずかに)異なる結果を生成するのかということです。 MWE(から適応?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f + rnorm(n)*0.2 par(mfrow = c(2,2)) # …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

1
RのキャレットパッケージでPCAを使用して前処理するときの主成分の数
のcaretパッケージRをバイナリSVM分類器のトレーニングに使用しています。機能を削減するためにpreProc=c("pca")、呼び出し時に組み込み機能を使用してPCAで前処理していtrain()ます。ここに私の質問があります: キャレットはどのように主成分を選択するのですか? 選択された主成分の数は決まっていますか? 主成分は、ある程度の説明された差異(80%など)によって選択されていますか? 分類に使用する主成分の数を設定するにはどうすればよいですか? (PCAは信頼できる予測推定を可能にするために外部相互検証の一部であるべきことを理解しています。)PCAは内部相互検証サイクル(パラメーター推定)にも実装する必要がありますか? キャレットは相互検証でPCAをどのように実装しますか?

1
randomForestモデルのキャレットvarImp
パッケージvarImpを含むrandomForestモデルで関数がどのように機能するかを理解できませんcaret。以下の例では、キャレットvarImp関数を使用してフィーチャーvar3の重要度がゼロになっていますが、基になるrandomForest最終モデルのフィーチャーvar3の重要度はゼロではありません。これはなぜですか? require(randomForest) require(caret) rf <- train(x, y, method = "rf", trControl = trainControl(method = "oob"), importance = TRUE, verbose = TRUE, tuneGrid = data.frame(mtry = num.predictors) ) fm <- rf$finalModel > varImp(f) rf variable importance Overall var1 100.00 var2 80.14 var3 0.00 > importance(fm) %IncMSE IncNodePurity var2 872.7935 40505276 var1 …
10 r  caret  random-forest 

1
Rのトレーニングプロセスのステータスを確認する[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、話題のクロス検証済みのため。 4年前休業。 caretRでパッケージを使用してモデルをほぼ3日間トレーニングしています。計算は並列に実行されます(複数のプロセス)。残念ながら、Rコンソール(kernlabパッケージのSVMモデル)には出力がないため、10%と90%のどちらが完了したかはわかりません。 どういうわけか計算のプロセスを理解する方法はありますか? 私はOS Xを使用しているので、プロセススタックをダンプして、現在評価されているパラメーター値またはk倍の反復を見つけようとしている可能性があります。しかし、どうやって? 編集:トレーニング用のスクリプト: ctrl <- trainControl(method = "cv", number = 10, selectionFunction = "best", classProbs = TRUE, summaryFunction = twoClassSummary, verboseIter = TRUE) grid_svm <- expand.grid(.C = logseq(2^-15, 2^3, 10)) svm <- train(CLASS ~ ., data = dataset, method = "svmLinear", preProcess = c("center", …

1
キャレットと比較したmlr
私は機械学習について学ぶためにmlrを少し使ってきましたが、最近キャレットについて知りました。 私が理解している方法は、どちらもさまざまなMLパッケージのラッパーですが、アプローチが少し異なるということです。mlrはキャレットの一部をラップするようにも見えますが、おそらくmlrをキャレットのスーパーセットと見なすことができます。 私はその理由のためにmlrを使い続けることを心がけています。両方を切り替える必要があるか、両方を学ぶ必要がないようにします。しかし、私はキャレットの作者が整頓された人々に加わっ​​たことも聞いた-おそらくこれは今や事実上の標準になるだろう。 私は明らかにmlrを使用し、キャレットについて少し読んでいましたが、MLの経験が比較的不足していることを考えると、私は2つの教育を受けた評価を行う資格があるとは特に思っていません。 2つのパッケージの長所/短所について、より多くのものをカバーし、より合理化されたアプローチを持ち、より柔軟で、他のコメントなどがあるかについての意見はありますか? 編集:代わりにこれをdatascienceに投稿しないことをお詫びします。これは、Pythonによって支配されているようです(mlrまたはcaretタグはありません)。たぶん、stackoverflowの方がいいかもしれませんが、私はそれらを使用する統計学者の見解にかなり興味があります。

1
R /キャレット:トレーニングおよびテストセットと交差検証?
これはおそらくばかげた質問かもしれませんが、キャレットを使用してモデルを生成し、LOOCVまたは(さらにLGOCV言えば)何かを使用する場合、これが本質的にクロス検証ステップである場合、データをトレーニングセットとテストセットに分割する利点は何ですか?とにかく? 私はいくつかの関連する質問を読みました、そして彼らはいくつかの交差検定方法(例えば、キャレットサイトでここで説明されているもの)が特徴選択の目的のためであると提案しました。しかし、私の場合、randomForest(method = "rf")とkernlab(method = svmRadial)を使用しています。これらは、予測子をパージしようとするグループにリストされていません。 したがって、私の質問は、のようなものを使用する場合cross_val <- trainControl(method = "LGOCV", p = 0.8)、私のデータの80%でトレーニングし、残りの20%で結果のモデルをテストし、それを何度も繰り返して、モデルは機能していますか? もしそうなら、私のデータをトレーニング/テストセットに分割する必要がありますか? PS私は、経験的に生成されたDOEプロトタイプでモデルを実行しているときに一部質問します(入力を微調整し、テストメソッドを使用してプロトタイプに関するさまざまな属性を測定するハードグッズを考えてください)。 そのため、モデル化する予測子レベルが重複している膨大なデータセットはありません。この場合、データ生成には費用がかかるため、関心のある各DOEポイントで1つの試行を実行することがよくあります。したがって、できる限り正確なモデルに使用できるデータを使用したいのですが、何かを明確に見逃していないこと、および分割しないことで質の悪いモデルを作成していないことをここで確認したいと思います。 編集: @topepoの質問に答えて、私は式の化学入力の調整に基づいて、化合物の物理的に測定された属性をモデリングしています。実際のアプリケーションについては説明できませんが、インテリアラテックスペイントの配合に基づいた例を作成します。私は、4〜5種類の化学物質をブレンドし、固形分(%)で遊んで、ポリマー溶液を加熱して重合度を調整する時間を計画した実験を行っています。 次に、レオロジー、分子量、塗料コーティングの硬度、耐水性などを測定します。 いくつかの変数のまともな複製がありますが、すべてのDOEレベルがまったく同じであるという意味で、真の複製はほとんどありません。合計データセットは〜80の観測値であり、おそらく4〜5は正確な繰り返しです。私たちは15の異なるテストを実施しましたが、おそらく5〜6回のテストがすべての観察で行われています。一部の応答は、データの25-50%に存在します。 ここから、7つの予測子が出力プロパティに与える影響をモデル化し、目的のプロパティを与える可能性が最も高い新しい設計空間をターゲットとするように最適化します。 (ここに私の質問があります。トレーニング済みのモデルができたら、「リバース」を実行し、必要な応答を入力して、可能な入力レベルでの最適な推測を得て、次に試すことをお勧めします)。

2
ニューラルネットワーク:オーバーフィットできないのはなぜですか?
(フィードフォワード単一層)ニューラルネットワークを使用して、2つの財務変数(回帰)から環境関連変数を予測しようとしています。キャレットパッケージの「train」関数を使用します。 nnet()キャレットパッケージのアルゴリズムを使用しています。2つの連続予測子と420のデータポイントがあります。 理論的理解のために、私はわざとモデルをオーバーフィットしようとしています。私の理解では、これは通常すべてのデータセットで機能するはずです。たとえば、「サイズ」(つまり、非表示単位の数)を増やすなどです。ただし、隠れたユニットのサイズを大幅に増やしても、過剰適合にはなりません。 したがって、「サイズ」を増やすことですべてのニューラルネットワークをオーバーフィットできると想定するのは間違っていますか?代わりに、他のどの変数が過剰適合につながる可能性がありますか? grid <- expand.grid(size = 20 ) control <- trainControl(method = "cv", number = 10, verboseIter = TRUE ) fit <- train(x=train_parametres, y=train_result, method = "mlp", metric = "Rsquared", learnFunc = "Std_Backpropagation", learnFuncParams = c(0.2, 0.0), maxit = 1000, trControl = control, tuneGrid = grid, preProcess = …

2
露光付きポアソンxgboost
露出が不均一なカウント依存変数をモデル化しようとしていました。古典的なglmsはオフセットとしてlog(exposure)を使用しますが、gbmも使用しますが、xgboostは今までオフセットを許可していません... この例をクロスバリデーション(オフセットはポアソン/負の二項回帰でどこに行くのか)で欠点を見つけようとすると、露出による重み付けのカウントの代わりに頻度(実数)をモデル化するように提案されました。 データに同じメソッドを適用するためにいくつかのxgboostコードに沿って作業しようとしましたが、失敗しました...コードの下に設定しました: library(MASS) data(Insurance) library(xgboost) options(contrasts=c("contr.treatment","contr.treatment")) #fissa i Insurance$freq<-with(Insurance, Claims/Holders ) library(caret) temp<-dplyr::select(Insurance,District, Group, Age,freq) temp2= dummyVars(freq ~ ., data = temp, fullRank = TRUE) %>% predict(temp) xgbMatrix <- xgb.DMatrix(as.matrix(temp2), label = Insurance$freq, weight = Insurance$Holders) bst = xgboost(data=xgbMatrix, label = Insurance$freq, objective='count:poisson',nrounds=5) #In xgb.get.DMatrix(data, label) : xgboost: label …

1
列車(キャレット)の相互検証はどのように正確に機能しますか?
キャレットパッケージに関する多くの投稿を読みましたが、特にtrain関数に興味があります。ただし、列車の機能がどのように機能するかを正しく理解したかどうかは、完全にはわかりません。 私の現在の考えを説明するために、簡単な例を作成しました。 最初に、パラメーターグリッドを指定します。メソッドgbmを使用しているとすると、モデルのパラメーターグリッドは次のようになります。 grid <- expand.grid( .n.trees=seq(10,50,10), .interaction.depth=seq(1,4,1), .shrinkage=c(0.01,0.001), .n.minobsinnode=seq(5,20,5)) 続いて、train(trainControl)の制御パラメーターが定義されます。trainを使用した交差検証に関する私の考えが正しいかどうか知りたいので、この例では次のように使用します。 train_control <- trainControl('cv',10) 最後に、train関数が実行されます。例えば: fit <- train(x,y,method="gbm",metric="Kappa",trControl=train_control,tuneGrid=grid) 今、私は電車がうまくいくと推定する方法は次のとおりです: 上記の例では、160(5 * 4 * 2 * 4)の可能なパラメーターの組み合わせがあります。 各パラメーターの組み合わせトレインは、10分割交差検証を実行します パラメーターの組み合わせごと、および(10分割の)分割ごとに、パフォーマンスメトリック(この例ではKappa)が計算されます(この例では、これは1600 Kappaが計算されることを意味します) 各パラメーターの組み合わせについて、パフォーマンスメトリックの平均が10倍にわたって計算されます。 最高の平均パフォーマンスメトリックを持つパラメーターの組み合わせは、モデルの最適なパラメーターと見なされます 私の質問は簡単です、私の現在の考えは正しいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.