【问题标题】:How to pass parameters to caret summary functions如何将参数传递给插入符号摘要函数
【发布时间】:2017-11-20 00:36:28
【问题描述】:

如何将参数传递给插入符号摘要函数?

例如,插入符号的 twoClassSummary 函数具有以下签名: twoClassSummary(data, lev = NULL, model = NULL)

参数 lev 指定了我感兴趣的因子级别。 现在我想告诉插入符号我对因子级别“false”的摘要感兴趣。类似的东西

  trainControl(summary=twoClassSummary(lev="false")) 

不起作用。如何将参数传递给汇总函数?谢谢!

【问题讨论】:

标签: r r-caret


【解决方案1】:

我相信目前不可能以直接的方式执行此操作,因为 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])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2020-06-27
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多