3、分类算法及其测评
3.1 分类算法介绍
分类算法需要事先定义好类别,并对训练样本进行人工标记。分类算法通过有标记的训练样本,学习得到分类器,该分类器可对新样本自动分类,分类的流程下图所示。分类算法是一种有监督的机器学习算法。
分类的算法种类繁多,大致可分为单一型分类算法和组合型分类算法。单一型分类算法有KNN(K近邻)、决策树、朴素贝叶斯、支持向量机、人工神经网络等;组合型分类算法是组合单一型分类算法的集成学习算法,如Bagging和Boosting算法等。考虑到大数据应用,算法需要便于实现并行化计算。
朴素贝叶斯分类算法对于样本数据稀疏时非常敏感,但仍然是应用最广的分类算法之一,被广泛应用于文本分类领域、用户行为分析等大数据分析挖掘领域。尽管朴素贝叶斯是最简单的贝叶斯网络,但理解应用朴素贝叶斯分类算法及拉普拉斯平滑技巧需要具备基本的概率统计知识。因为简单,仍然是应用最广泛的分类方法。
支持向量机(Support Vector Machines,SVM)是建立在统计学习理论VC维(VapNik-Chervonenkis Dimension)和结构风险最小化原理基础上的分类算法,在解决非线性和高维数据的分类问题中表现出很好的性能,并在很大程度上克服了“过拟合”和“维数灾难”等问题。支持向量机算法的目标是寻找一个满足分类要求的最优分类超平面,使得该超平面在保证分类精度的同时,能够使超平面两侧的间隔最大化。
3.2 分类算法正确性测评
以通过蜕变测试验证朴素贝叶斯算法为例。(说明:蜕变测试最适合的场合。)
1、针对算法的蜕变关系的识别(整个测试构造数据的基础)
通过与领域专家一起分析,针对朴素贝叶斯分类算法的特点可以构造如下五类蜕变关系:
MR 1.1:全局仿射变换的一致性。如果对原始测试用例中的每个属性值x(i)做线性变换f(x(i))=ax(i)+b(a≠0)得到衍生测试用例,则分类结果不变。
MR 2.1:类标签的置换。如果对原始测试用例中的类标签作统一置换,比如原先属于类别0的全部置换为类别1,而把类别1全部置换为0,则分类结果也应作相应置换。
MR 2.2:列置换。如果对原始测试用例中的任意两列属性做交换得到衍生测试用例,则分类结果不变。
MR 3:增加不提供信息属性。在原始测试用例基础上,增加一列属性,增加属性值全部相同,即与原始测试用例中属性信息无关,得到衍生测试用例,则分类结果不变。
MR 4:复制全部样本。如果把原始测试用例中的所有样本全部复制一份,增加到原始用例上得到衍生测试用例,则分类结果不变。
MR 5:移除某一类。对于原始测试用例,假设对于某一个测试样本ts得到结果ct=li。在衍生测试用例中移除S中标签不为li的某一类样本,分类结果不变
2、测试结果与分析
1)构造一个基础测试用例数据集合
2)构造蜕变测试用例数据集合
3)执行测试用例
4)比对不同蜕变关系的测试用例执行结果
5)分析结果
3.3 分类算法性能测评
分类算法设计过程中,一般将数据分为两部分,一部分称为训练样本,另一部分称为测试样本。训练集中性能表现很好的分类器,有可能在测试集中分类精度并不高,这种现象称为“分类的过拟合”问题