- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 sklearn 中使用 log_loss
from sklearn.metrics import log_loss
print log_loss(true, pred,normalize=False)
我有以下错误:
ValueError: y_true and y_pred have different number of classes 38, 2
这对我来说真的很奇怪,因为数组看起来是有效的:
print pred.shape
print np.unique(pred)
print np.unique(pred).size
(19191L,)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32 33 34 35 36 37]
38
print true.shape
print np.unique(true)
print np.unique(true).size
(19191L,)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32 33 34 35 36 37]
38
log_loss 有什么问题?为什么会抛出错误?
示例数据:
pred: array([ 0, 1, 2, ..., 3, 12, 16], dtype=int64)
true: array([ 0, 1, 2, ..., 3, 12, 16])
最佳答案
很简单,您使用的是预测而不是预测的概率。您的 pred
变量包含
[ 1 2 1 3 .... ] #Classes : 1, 2 or 3
但要使用log_loss
,它应该包含如下内容:
#each element is an array with probability of each class
[[ 0.1, 0.8, 0.1] [ 0.0, 0.79 , 0.21] .... ]
要获得这些概率,请使用函数 predict_proba
:
pred = model.predict_proba(x_test)
eval = log_loss(y_true,pred)
关于python - sklearn log_loss 不同数量的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616102/
我有一个二元分类问题。我正在使用 tensorflow.losses.log_loss 中的 log_loss。 为了检查,我使用 sklearn.metrics.log_loss。大多数时候,这两个
我是 keras 和深度学习的新手。当我创建一个样本基本模型时,我拟合它并且我的模型的对数损失总是相同的。 model = Sequential() model.add(Convolution2D(3
我在 sklearn 中使用 log_loss from sklearn.metrics import log_loss print log_loss(true, pred,normalize=Fal
tf.nn.softmax_cross_entropy_with_logits 和 tf.losses.log_loss 之间的主要区别是什么?这两种方法都接受 1-hot 标签和 logits 来计
我正在使用 Keras,我想使用 logloss 作为训练指标。我如何将其传递到我的模型中? 我的代码如下: model = Sequential() model.add(Dense(output_d
任何人都可以举一些例子吗?官方文档中没有指南。我想知道什么类型的标签和预测?谢谢。 最佳答案 输入是张量,第一个包含对数据点的正确预测,第二个是模型对数据点给出的实际预测。这些张量可以代表单个数据点,
确保我做对了: 如果我们使用 sklearn.metrics.log_loss独立的,即 log_loss(y_true,y_pred),它产生一个正分数——分数越小,性能越好。 但是,如果我们使用
以下代码 from sklearn import metrics import numpy as np y_true = np.array([[0.2,0.8,0],[0.9,0.05,0.05]])
我正在尝试使用 GridSearchCV 的 scoring 参数中的 log_loss 参数来调整这个多类(6 类)分类器.我不明白如何给它一个 label 参数。即使我给它 sklearn.met
我是一名优秀的程序员,十分优秀!