gpt4 book ai didi

r - 如何在插入符号中加入 logLoss

转载 作者:行者123 更新时间:2023-12-04 09:45:13 25 4
gpt4 key购买 nike

我试图将 logLoss 作为在通过插入符号(而不是 Accuracy 或 Kappa 的默认选项)调整 randomForest(其他分类器)时使用的性能度量。

第一个 R 脚本使用默认值无误地执行。但是,我得到:

Error in { : task 1 failed - "unused argument (model = method)"



使用第二个脚本时。

函数 logLoss(predict(rfModel,test[,-c(1,95)],type="prob"),test[,95])通过利用单独训练的 randomForest 模型来工作。

数据框有 100 多列和 10,000 多行。在 col=95 处,所有元素都是 9 级分类“目标”之外的数字。行 ID 位于 col=1 中。

不幸的是,我没有正确理解 http://topepo.github.io/caret/training.html 提供的指导。 ,也没有通过谷歌搜索获得多少运气。

非常感谢您的帮助。

工作 R 脚本:
fitControl = trainControl(method = "repeatedcv",number = 10,repeats = 10)
rfGrid = expand.grid(mtry=c(1,9))
rfFit = train(target ~ ., data = train[,-1],method = "rf",trControl = fitControl,verbose = FALSE,tuneGrid = rfGrid)

不工作的 R 脚本:
logLoss = function(data,lev=NULL,method=NULL) { 
lLoss = 0
epp = 10^-15
for (i in 1:nrow(data)) {
index = as.numeric(lev[i])
p = max(min(data[i,index],1-epp),epp)
lLoss = lLoss - log(p)
}
lLoss = lLoss/nrow(data)
names(lLoss) = c("logLoss")
lLoss

}
fitControl = trainControl(method = "repeatedcv",number = 10,repeats = 10,summaryFunction = logLoss) 
rfGrid = expand.grid(mtry=c(1,9))
rfFit = train(target ~ ., data = trainBal[,-1],method = "rf",trControl = fitControl,verbose = FALSE,tuneGrid = rfGrid)

最佳答案

您的参数名称不正确(即 "unused argument (model = method)" )。 webpage说最后一个函数参数应该被称为 model而不是 method .

关于r - 如何在插入符号中加入 logLoss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com