如何在机器学习中计算日志损失

用户名

以下代码用于产生使用随机森林进行二进制分类的概率输出。

library(randomForest) 

rf <- randomForest(train, train_label,importance=TRUE,proximity=TRUE)
prediction<-predict(rf, test, type="prob")

那么关于预测的结果如下:

在此处输入图片说明

关于测试数据的真实标签是已知的(名为test_label)。现在,我想为二进制分类的概率输出计算对数损失关于LogLoss的功能如下。

LogLoss=function(actual, predicted)
{
  result=-1/length(actual)*(sum((actual*log(predicted)+(1-actual)*log(1-predicted))))
  return(result)
}

如何用二元分类的概率输出计算对数损失。谢谢你。

灾难性故障
library(randomForest) 

rf <- randomForest(Species~., data = iris, importance=TRUE, proximity=TRUE)
prediction <- predict(rf, iris, type="prob")
#bound the results, otherwise you might get infinity results
prediction <- apply(prediction, c(1,2), function(x) min(max(x, 1E-15), 1-1E-15)) 

#model.matrix generates a true probabilities matrix, where an element is either 1 or 0
#we subtract the prediction, and, if the result is bigger than 0 that's the correct class
logLoss = function(pred, actual){
  -1*mean(log(pred[model.matrix(~ actual + 0) - pred > 0]))
}

logLoss(prediction, iris$Species)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在机器学习中计算日志损失

来自分类Dev

如何在Q学习中计算MaxQ?

来自分类Dev

如何在PyTorch中计算自举交叉熵损失?

来自分类Dev

如何在MATLAB中计算机器epsilon?

来自分类Dev

如何计算每个scikit学习ML模型样本的二进制日志损失

来自分类Dev

sigar如何在Java中计算机器位模式

来自分类Dev

sigar如何在Java中计算机器位模式

来自分类Dev

如何在pyspark中计算?

来自分类Dev

如何在 R 的同一数据框中计算重叠的三天日志回报?

来自分类Dev

如何在Hive中计算中位数

来自分类Dev

如何在SQL中计算“运行总计”

来自分类Dev

如何在RX中计算处理时间

来自分类Dev

如何在PostgreSQL中计算最大列

来自分类Dev

如何在mysql中计算复合主键

来自分类Dev

如何在Excel中计算元素

来自分类Dev

如何在mySQL表中计算票数?

来自分类Dev

如何在AngularJS中计算地图大小

来自分类Dev

如何在蜂巢中计算累计薪水

来自分类Dev

如何在Matlab中计算每页STD?

来自分类Dev

如何在Excel中计算总和

来自分类Dev

如何在Slick 2.0中计算(*)?

来自分类Dev

如何在Firebase中计算连接

来自分类Dev

如何在bash中计算arccos()?

来自分类Dev

如何在mysql中计算权重

来自分类Dev

如何在Django模板中计算时差

来自分类Dev

如何在Netlogo中计算死海龟

来自分类Dev

如何在BigQuery中计算年龄?

来自分类Dev

如何在WPF中计算形状的方向

来自分类Dev

如何在SQL中计算平均日期?