机器学习:多分类模型评价准则
机器学习中,遇见的往往是二分类问题比较多,二分类模型的模型评价准则很多,Auc_score,F1_score,accuracy等等都是比较常用的。而针对多分类问题来说,有些二分类的评价准则就相对而言不怎么适用了。虽然可以将多分类问题转化为多个2vs2问题进行讨论,步骤繁杂的同时效果也得不到保障。目前在进行多模态的一个分类研究,在模型评价时也废了不少脑筋,所以在这里将看到的比较常用的多分类评价准则进行整理,便于日后学习。
评价准则
1.Kappa系数
Kappa系数是基于混淆矩阵的计算得到的模型评价参数。计算公式如下:
系数的值在-1到1之间,系数小于0的话实际上就相当于随机了
python实现为:
from sklearn.metrics import cohen_kappa_score
kappa = cohen_kappa_score(y_true,y_pred,label=None) #(label除非是你想计算其中的分类子集的kappa系数,否则不需要设置)
2.海明距离
海明距离也适用于多分类的问题,简单来说就是衡量预测标签与真实标签之间的距离,取值在0~1之间。距离为0说明预测结果与真实结果完全相同,距离为1就说明模型与我们想要的结果完全就是背道而驰。python实例如下。
from sklearn.metrics import hamming_loss
ham_distance = hamming_loss(y_true,y_pred)
3.杰卡德相似系数
它与海明距离的不同之处在于分母。当预测结果与实际情况完全相符时,系数为1;当预测结果与实际情况完全不符时,系数为0;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。
我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况。
from sklearn.metrics import jaccard_similarity_score
jaccrd_score = jaccrd_similarity_score(y_true,y_pred,normalize = default)
#normalize默认为true,这是计算的是多个类别的相似系数的平均值,normalize = false时分别计算各个类别的相似系数
4.铰链损失
铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。损失取值在0~1之间,当取值为0,表示多分类模型分类完全准确,取值为1表明完全不起作用。
from sklearn.metrics import hinge_loss
hinger = hinger_loss(y_true,y_pred)