问题标签 [r-caret]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 支持向量机训练插入符号错误内核实验室类概率计算失败;返回 NA
我有一些数据,Y 变量是一个因素 - 好或坏。我正在使用“caret”包中的“train”方法构建支持向量机。使用“训练”功能,我能够最终确定各种调整参数的值并获得最终的支持向量机。对于测试数据,我可以预测“类”。但是当我尝试预测测试数据的概率时,我得到了以下错误(例如,我的模型告诉我测试数据中的第一个数据点有 y='good',但我想知道获得'good'的概率是多少...通常在支持向量机的情况下,模型将计算预测概率..如果 Y 变量有 2 个结果,则模型将预测每个结果的概率。具有最大概率的结果被认为是最终解决方案)
示例代码如下
此行下方的新问题:根据以下输出,有 9 个支持向量。如何识别这 9 个训练数据点中的 12 个?
“ksvm”类的支持向量机对象
SV 类型:C-svc(分类)参数:成本 C = 1
高斯径向基核函数。超参数:sigma = 0.72640759446315
支持向量数:9
目标函数值:-5.6994 训练误差:0.083333
r - R caret / gbm 代码无法预测:dim(X) 必须具有正长度
我正在尝试使用插入符号来找到 gbm 模型的最佳参数。此代码与我在其他数据集上使用的代码相同,无法找出错误。
它似乎可以运行模型,但无法创建预测。
这是完整的代码:
有什么建议么?
编辑:我正在使用gbm 2.1
和caret 5.16.24
r - 如何将验证保留集指定为插入符号
我真的很喜欢至少在建模的早期阶段使用插入符号,特别是因为它非常容易使用重采样方法。但是,我正在研究一个模型,其中训练集通过半监督自我训练添加了相当多的案例,因此我的交叉验证结果确实存在偏差。我对此的解决方案是使用验证集来衡量模型性能,但我看不到直接在插入符号中使用验证集的方法 - 我是否遗漏了某些东西或者这只是不受支持?我知道我可以编写自己的包装器来完成插入符号通常会为 m 做的事情,但是如果有一种解决方法而不必这样做,那就太好了。
这是我正在经历的一个简单的例子:
summaryFunction()
我最初认为我可以通过为对象创建自定义来做到这一点,trainControl()
但我看不到如何引用我的模型对象以从验证集中获取预测(文档 - http://caret.r-forge.r-project.org /training.html - 仅列出“data”、“lev”和“model”作为可能的参数)。例如,这显然行不通:
编辑:为了想出一个真正丑陋的修复,我一直在寻找是否可以从另一个函数的范围访问模型对象,但我什至没有看到它们模型存储在任何地方。希望有一些优雅的解决方案,我什至没有接近看到......
r - R包,Caret RFE函数,如何自定义度量来使用AUC?
我想用 AUC 作为性能指标,但 RFE 只支持 RMSE、Rsquared、Accuracy、Kappa。如何使用自定义指标,例如 auc?
r - 当我尝试预测 R 中的类别概率时出错 - 插入符号
我已经使用插入符号构建了一个模型。培训完成后,我收到以下警告:
警告消息:在 train.default(x, y, weights = w, ...) 中:至少一个类级别不是有效的 R 变量名称;如果生成类概率,这可能会导致错误,因为变量名称将转换为:X0,X1
变量的名称是:
我的代码如下:
我收到错误:错误输入[.data.frame
(out, , obsLevels, drop = FALSE) : undefined columns selected
测试数据集上的变量名称为:
如果我省略 type="prob" 部分,我不会收到错误。
有任何想法吗?
可能是变量“alchemy_category”的长度,它附加了相应的因子水平,例如模型内的“alchemy_categoryarts_entertainment”?
r - 插入符号包中的 train() 返回有关名称和 gsub 的错误
我正在使用 caret 包来预测improvementNoticed
变量
我跑
我收到以下错误:
这是trainData[,1]
一个因素(剩余数字)的结果;以前(什么时候trainData[,1]
是数字)我得到了一个不同的错误:
请注意,这improvementNoticed
是一个二进制变量。
如果我转换trainData[,1]
为integer
,我会得到与数字相同的错误。
最后两件事:
和结果sessionInfo()
r - train() 函数和速率模型(带偏移量的泊松回归)与插入符号
我使用glm()
(带有偏移的泊松链接,例如
响应是y/x1
在这种情况下)。
然后我想使用caret包进行交叉验证,所以我使用了带有k - fold CV 控制的“train()”函数。事实证明,我拥有的 2 个模型非常不同。似乎train()
无法处理offset
:我将变量更改offset
为offset(log(log(x1))
or offset(log(sqrt(x1))
,模型保持不变。
有没有人有过这样的经历,你是怎么处理的?谢谢!
顺便说一句,我想保存每个验证集的预测到目前为止我只知道插入符号可以做到这一点,这就是我没有选择使用 cv.glm 的原因。
r - 使用 caret 包的可变重要性(错误);随机森林算法
我试图以任何方式获得 rf 模型的可变重要性。这是我迄今为止尝试过的方法,但非常欢迎其他建议。
我在 R 中训练了一个模型:
数据集相当大,但模型运行良好。我可以访问它的部分并运行以下命令:
但我收到以下错误:
显然应该有一个包装器,但似乎并非如此:(参见: http: //www.inside-r.org/packages/cran/caret/docs/varImp)
但这特别奇怪: