分类模型评估指标:
混淆矩阵:
混淆矩阵是一种用来呈现算法性能的矩阵,它的每一行代表真实的分类,每一列代表预测的分类。
True Positive(TP):真正类。
False Negative(FN):假负类。
False Positive(FP):假正类。
True Negative(TN):真负类。
准确率(Accuracy):
准确率是指模型正确地预测样本的比例:
A
c
c
u
r
a
c
y
=
T
P
+
T
N
T
P
+
F
N
+
F
P
+
T
N
Accuracy = \frac{TP+TN}{TP+FN+FP+TN}
Accuracy=TP+FN+FP+TNTP+TN
准确率是分类模型最常用的指标,在sklearn中,调用分类模型的score函数计算出的评估指标就是准确率。
精准率(Precision):
精确率用于评估测试是True的样本里,有多少真正是True
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision = \frac{TP}{TP+FP}
Precision=TP+FPTP
如果只考虑预测结果的正确性,可以使用精确率这一指标。
召回率(Recall):
召回率是指在实际标记为True的样本中,预测为True的比例是多少。
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Recall = \frac{TP}{TP+FN}
Recall=TP+FNTP
假设我们需要考虑预测结果与整体样本的匹配度,那么召回率就比较适合评估。
F1分数:
F1分数是精确率和召回率的调和值,它接近于两个分数中较小的一个,所以精确率和召回率接近时,F值最大。
2
F
1
=
1
P
r
e
c
i
s
i
o
n
+
1
R
e
c
a
l
l
\frac{2}{F1} = \frac{1}{Precision} + \frac{1}{Recall}
F12=Precision1+Recall1
F1分数适合用于既要考虑精确率也要考虑召回率的场景。
K折交叉验证:
训练集(Train Set)和:测试集(Test Set):
训练集用来训练模型或确定模型参数的数据集,测试集用来验证模型的准确的数据集。
划分条件:
训练集和测试集的划分,必须同时满足训练集和测试集的交集为空集,并集为数据集两个条件。在实践中,先根据训练集的大小,从数据集中抽取训练集,然后把剩下的数据作为测试集,即可满足这个划分要求。
K折交叉验证(K-fold Cross Validation):
验证过程:
设置 k = 10,把原来的数据集随机分成10份,分别作{D1,D2…D10}
接着使用D1作为测试集,{D2 …D10}作为训练集,计算得分s1。
以此类推,
得到10个得分后,计算这组得分的平均值,作为模型的综合得分。
综
合
得
分
=
∑
i
=
1
10
s
i
10
综合得分 = \frac{\sum_{i=1}^{10}s_i}{10}
综合得分=10∑i=110si
KNN模型:
K最近邻算法,它判断未知类别数据的方法,是根据未知数据最近的K条记录,统计他们的分类,来确定未知类别数据的分类。
如下图所示,正方形和三角形代表两种不同的分类,圆点代表的是未知分类的点。
KNN算法首先会确定一个K值,假设K = 3 ,那么根据其他点与圆点的距离,找出最接近圆点的三个点,三点中,两个属于三角形,一个属于正方形,根据这一结果,KNN算法认为,圆点数以三角形点的分类。
在KNN算法中,参数K的设置会影响模型的效果,K值设置不同,分类结果也会不同。