我有一个data.table,其中包含以下列:
OOSResults <-
as.data.table(structure(
list(
c("1", "1", "1"),
structure(c(17873, 17876, 17877), class = "Date"),
c(48, 47, 55),
c(22, 25, 20),
c(31, 29, 25)
),
.Names = c("score", "Date", "probH", "probD", "probA"),
row.names = c(NA,-3L),
class = c("data.table", "data.frame"),
sorted = "score"
))
-
现在,我想应用ModelMetrics的mLogLoss。它要求
用法
mlogLoss(实际的,预测的)
参数
actual标签的向量。可以是数字,字符或因子
预测值的预测矩阵。可以是矩阵,data.frame
如何将此功能应用于我的data.table,仍然能够使用灵活的方式进一步分析我的data.table,即按日期显示的LogLoss,以及其他任何列,而不会丢失我的data.table。
我尝试过:
OOSResults[, mapply(ModelMetrics::mlogLoss, score, as.matrix(probA/100,probD/100,probH/100))]
最好的问候, 基督徒
答案 0 :(得分:1)
这里的第一个问题,感谢您的支持。经过进一步尝试,我得到了:
OOSResults2[,mlogLoss(score,as.data.frame(.(probH,probD,probA))),by=Date]
答案 1 :(得分:0)
我想您知道如何使用mlogLoss
为score
计算probA
,可以这样进行:
ModelMetrics::mlogLoss(OOSResults$score, as.matrix(OOSResults$probA/100))
现在要使用三个不同的概率列进行计算,您可以使用mapply
来进行计算,如下所示:
mapply(function(prob, by){ModelMetrics::mlogLoss(by, as.matrix(prob))},
OOSResults[, c("probH", "probD", "probA")]/100,
OOSResults[, "score"])
希望有帮助。