模型评估
模型评估 此节内容只针对分类模型,使用sklearn库 1、准确率 accuracy_score函数计算精度,在多标签分类中,该函数返回子集精度。如果样本的整个预测标签集与真实的标签集严格匹配,则子集精度为1.0; 否则它是0.0。如果$\hat{y}i$是第$i$类样本预测值,$y_i$是相应的真值,那么正确预测的分数$n\text{samples}$被定义为$$\texttt{accuracy}(y, \hat{y}) = \frac{1}{n_\text{samples}} \sum_{i=0}^{n_\text{samples}-1} 1(\hat{y}_i = y_i)$$ import numpy as np from sklearn.metrics import accuracy_score y_pred = [0, 2, 1, 3] y_true = [0, 1, 2, 3] accuracy_score(y_true, y_pred) 0.5 accuracy_score(y_true, y_pred, normalize=False) # 若normalize为False,则返回正确分类的样本数 2 2、混淆矩阵 该confusion_matrix函数通过计算混淆矩阵来评估分类准确性,行对应于真正的类,列表示预测值。 from sklearn.metrics import confusion_matrix y_true = [2, 0, 2, 2, 0, 1] y_pred = [0, 0, 2, 2, 0, 2] confusion_matrix(y_true, y_pred) array([[2, 0, 0], [0, 0, 1], [1, 0, 2]]) 3、汉明损失 如果$\hat{y}j$是预测为第$j$类的样本,$y_j$是真值,$n\text{labels}$是类别的数目,则两个样本之间的汉明损失定义为:$$L_{Hamming}(y, \hat{y}) = \frac{1}{n_\text{labels}} \sum_{j=0}^{n_\text{labels} - 1} 1(\hat{y}_j \not= y_j)$$ $1(x)$是指标函数...