- 该博客为数据挖掘系列博客的第三部分的第一小节:分类过程。
- 该博客主要介绍分类算法的通用流程和相关的评价方法和评价指标。
分类概述
- 分类的目的是建立分类模型(分类器),并利用分类模型预测未知类别数据对象的所属类别。
- 分类任务就是通过学习得到一个目标函数
f
f
f(即分类模型),把每个数据集
x
x
x 映射到一个预先定义的类别
y
y
y,即
y
=
f
(
x
)
y=f(x)
y=f(x)。
- 分类过程分为两个阶段:学习阶段与分类阶段
学习阶段
- 学习阶段是通过分析由已知类别数据对象组成的训练数据集,建立描述并区分数据对象类别的分类函数或分类模型。该模型不仅能很好地拟合训练样本,还能正确地预测或分类新样本。
- 学习阶段又分为训练和测试两部分。在构造分类模型之前,需要先将数据集随机地分为训练数据集和测试数据集。
训练:建立模型
- 在训练部分使用训练数据集,通过分析由属性所描述的数据集来构建分类模型。
- 假定训练数据集是关系数据表
S
S
S,每个训练样本由
m
+
1
m+1
m+1个属性描述,其中有且仅有一个属性称为类别属性,其他为条件属性。属性集合表示为
X
=
(
A
1
,
A
2
,
⋯
 
,
A
m
,
C
)
X=(A_1,A_2,\cdots,A_m,C)
X=(A1,A2,⋯,Am,C),其中
A
i
(
1
⩽
i
⩽
m
)
A_i(1 \leqslant i \leqslant m)
Ai(1⩽i⩽m) 对应描述属性(条件属性),可以具有不同的值域,当一个属性的值域为连续域时,该属性称为连续属性,否则称为离散属性;
C
C
C 表示类别属性,
C
=
(
c
1
,
c
2
,
⋯
 
,
c
k
)
C=(c_1,c_2,\cdots,c_k)
C=(c1,c2,⋯,ck),即训练数据集有
k
k
k 个不同的类别。
测试:评估模型
- 对于一般分类问题,有训练误差、泛化误差、准确率、错误率等指标。
- 对于常见的二分类问题,样本只有两种分类结果。将其定义为正例与反例。那么在进行分类时,对于一个样本,可能出现的情况共有四种:
- 样本为正例,被分类为正例,称为真正类(TP)
- 样本为正例,被分类为反例,记为假反类(FN)
- 样本为反例,被分类为正例,记为假正类(FP)
- 样本为反例,被分类为反例,记为真反类(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 - 精确率(precision):
模型正确分类的正例样本数与被预测为正例样本的总数的比值
p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP+FP} precision=TP+FPTP - 召回率(recall):
也称查全率,模型正确分类的正例样本数与真正的正例样本总数的比值
r e c a l l = T P T P + F N recall = \frac{TP}{TP+FN} recall=TP+FNTP - F值(F-Score):
精确率和召回率的调和平均
F = ( α 2 + 1 ) × p r e c i s i o n × r e c a l l α 2 ( p r e c i s i o n + r e c a l l ) F = \frac{(\alpha^2+1) \times precision \times recall}{\alpha^2(precision+recall)} F=α2(precision+recall)(α2+1)×precision×recall
其中 α \alpha α 为调和参数值,当 α \alpha α 取值为1时,F值就是最常见的 F 1 F1 F1 值。
F 1 = 2 × p r e c i s i o n × r e c a l l p r e c i s i o n + r e c a l l F1 = \frac{2 \times precision \times recall}{precision+recall} F1=precision+recall2×precision×recall - 受试者工作特征曲线(ROC Curve):
- 假设检验集中共有20个样本,每个样本为正类或反类,根据分类算法模型可以得到每个样本属于正类的概率,将样本按照此概率由高到低排列。
- ROC曲线下的面积称为 AUC(Area Under Curve),AUC值越大,表示分类模型的预测准确性越高;ROC曲线越光滑,一般代表过拟合现象越轻。
- 假设检验集中共有20个样本,每个样本为正类或反类,根据分类算法模型可以得到每个样本属于正类的概率,将样本按照此概率由高到低排列。
评价方法
- 保留法将样本集按照一定比例划分为训练集和测试集两个集合,两个集合中样本随机分配且不重叠。对于比例的确定,一般情况下,训练集会大于测试集,常用的如七三开,具体比例可结合实际情况进行判定。
- 蒙特卡洛交叉验证法,也称重复随机二次采样验证,这种验证方法随机地将数据集划分为训练集和测试集,使用测试集检验训练集训练的模型效果。多次重复此过程并取平均值作为模型好坏的评价标准。蒙特卡洛交叉验证法也可以看做是多次进行保留法。
- K折交叉验证法将样本集随机地划分成 k k k 个大小相等的子集,在每一轮交叉验证中,选择一个子集作为测试集,其余作为训练集,重复 k k k 轮,保证每一个子集都作为测试集出现,用 k k k 轮检验结果取平均值作为模型好坏的评价标准。最常用的 k k k 则交叉验证法为十折交叉验证。
- 留一法指每次测试集只包含一个样本的交叉验证方法。
- 留p法是每次使用 p p p 个样本作为测试集的交叉验证方法。
- 自助法是统计学中的一种有放回均匀抽样方法,即从一个大小为 n n n 的样本数据集 s s s 中构建一个大小为 n ′ n' n′ 的训练样本集 S t S_t St。需要进行 n ′ n' n′次抽取,每次均可能抽取到 n n n个样本中的任何一个。 n ′ n' n′ 次抽取之后,剩余的未被抽取到的样本构成测试集。
分类阶段
分类阶段的主要任务就是利用分类模型对未知类别的新样本进行分类。
- 通过数据预处理产生满足分类模型要求的待分类的新样本。通常分类阶段采用的数据预处理方法应与建立分类模型时采用的预处理方法一致。
- 然后载入预处理后的新样本通过分类模型产生分类结果。