尝试过谷歌搜索,但找不到如何在keras中实现Sklearn度量,比如cohen、roc、f1score作为不平衡数据的度量标准。
如何在Keras中实现Sklearn度量?
发布于 2018-02-01 23:02:54
Keras中的度量和Sklearn中的度量意味着不同的东西。
在Keras中,度量标准几乎与损失相同。在每个批次结束时,为了报告和日志记录目的,它们都会在训练期间被调用。示例用法是失去'mse‘,但您仍然希望看到'mae’。在这种情况下,您可以添加“mae”作为模型的度量标准。
在Sklearn中,度量函数按照“度量模块为特定目的实现评估预测错误的函数”的定义应用于预测。虽然存在重叠,但Sklearn的统计功能不适合Keras中的度量定义。Sklearn度量可以返回两个维度都大于1的浮点、数组、二维数组,通过预测方法在Keras中没有这样的对象。
回答你的问题:
这取决于您想要触发的位置:
发布于 2020-05-28 08:27:05
你所需要的一切都在混乱的矩阵中。计算混淆矩阵并遵循我的公式:

在实践中,这样做的方式如下:
from sklearn.metrics import confusion_matrix
NBC = NBC.fit(X_train,y_train)
cm = confusion_matrix(y_test, NBC.predict(X_test))
tn, fp, fn, tp = cm.ravel()
print('tn: ',tn)
print('fp: ',fp)
print('fn: ',fn)
print('tp: ',tp)
print('------------------')
print(cm) 现在:
p_0 = (tn+)/(tn+fp+fn+)
print('p_0:',p_0)
P_class0 = ((tn+fp)/(tn+fp+fn+))*((tn+fn)/(tn+fp+fn+))
print('P_yes: ',P_yes)
P_class1 = ((fn+)/(tn+fp+fn+))*((fp+)/(tn+fp+fn+))
print('P_no: ',P_no)
pe = P_yes + P_no
print('pe: ',pe)
κ = (p_0-pe)/(1-pe)
print('κ: ',κ)https://stackoverflow.com/questions/48567012
复制相似问题