如何将参数传递给插入符摘要函数
How to pass parameters to caret summary functions
如何将参数传递给插入符摘要函数?
例如,插入符号的 twoClassSummary 函数具有以下签名:
twoClassSummary(数据,lev = NULL,模型= NULL)
参数lev指定了我感兴趣的因子水平。
现在我想告诉插入符号我对因子水平 "false" 的摘要感兴趣。像
trainControl(summary=twoClassSummary(lev="false"))
不起作用。如何将参数传递给汇总函数?谢谢!
我认为目前不可能以直接的方式执行此操作,因为 train(...) 的附加参数不会传递给 twoClassSummary()。您可以使用技巧使其工作并且您的想法非常接近。创建一个自定义函数,将值从插入符传递到汇总函数,但在执行此操作时处理或替换它们。
trainControl(
summaryFunction = function(...) empTwoClassSummary(..., lev = c("your_other_class","false"))
您可以将附加参数传递给自定义汇总函数,例如:
trainControl(
summaryFunction = function(...) customTwoClassSummary(..., weights = c(0.1, 0.2), orgData = my_data)
与问题无关:在您的示例中,确保您希望成为目标级别的级别是 lev
中的第二个向量元素,因为 twoClassSummary() 在这些行中默认假定了这一点:
lvls <- levels(data$obs)
data$y = as.numeric(data$obs == lev[2])
如何将参数传递给插入符摘要函数?
例如,插入符号的 twoClassSummary 函数具有以下签名: twoClassSummary(数据,lev = NULL,模型= NULL)
参数lev指定了我感兴趣的因子水平。 现在我想告诉插入符号我对因子水平 "false" 的摘要感兴趣。像
trainControl(summary=twoClassSummary(lev="false"))
不起作用。如何将参数传递给汇总函数?谢谢!
我认为目前不可能以直接的方式执行此操作,因为 train(...) 的附加参数不会传递给 twoClassSummary()。您可以使用技巧使其工作并且您的想法非常接近。创建一个自定义函数,将值从插入符传递到汇总函数,但在执行此操作时处理或替换它们。
trainControl(
summaryFunction = function(...) empTwoClassSummary(..., lev = c("your_other_class","false"))
您可以将附加参数传递给自定义汇总函数,例如:
trainControl(
summaryFunction = function(...) customTwoClassSummary(..., weights = c(0.1, 0.2), orgData = my_data)
与问题无关:在您的示例中,确保您希望成为目标级别的级别是 lev
中的第二个向量元素,因为 twoClassSummary() 在这些行中默认假定了这一点:
lvls <- levels(data$obs)
data$y = as.numeric(data$obs == lev[2])