分类是一种很重要的数据挖掘技术,也是数据挖掘研究的重点和热点之一。分类的目的是分析输入数据,通过在训练集中的数据表现出来的特性,为每一个类找到一种准确描述或者模型。这种描述常常用谓词来表示。由此生成的类描述用来对未来的测试数据进行分类。尽管这些未来的测试数据的类标签是未知的,仍可以由此预测这些新数据所属的类,也可以由此对数据中每一个类有更好的理解。分类技术具有广泛的应用,如医疗诊断、人脸检测、故障诊断和故障预警等。
首先通过一个例子,让大家能对分类算法有个大致的了解。
现在,有一名学生叫小明,同时你想确定他是好学生还是坏学生,这个确定的过程就是分类任务。下面用3种分类算法区分小明是好学生还是坏学生。
1.决策树
邻居:“判断一个学生是好学生还是坏学生,先看抽不抽烟,再看染不染发,最后看讲不讲脏话。”
邻居判别学生好坏的特征是:抽烟、染发、讲脏话,其中拥有先后顺序,这就是决策树。决策树的核心就是如何决定特征的先后顺序。
2.朴素贝叶斯
教导处主任:“根据以往经验来看,10个坏学生有9个爱打架。”
现在用贝叶斯公式计算,小明参与了一场打架,判断小明是好学生还是坏学生。
坏学生打架的概率: P (打架|坏学生)=0.9, P (不打架|坏学生)=0.1。
根据经验:坏学生占学生总数概率为 P (坏学生)=0.1,打架发生概率为 P (打架)=0.09, P (坏学生|打架)=[ P (打架|坏学生) P (坏学生)]/ P (打架)=[0.9×0.1]/0.09=1。
由此可知,小明是坏学生。
而朴素贝叶斯算法有一个假设,特征独立,整个形式化计算过程仅做原始、最简单的假设。意思就是,举个例子,教导处主任同时抓打架和早恋问题,教导处主任通过打架和早恋这两个特征来判断学生的好坏的前提是这两者没有关联,可是在现实生活中,这种假设又不成立。这也就是朴素贝叶斯的缺点所在。
3.支持向量机
班主任:“我想个办法把坏学生都调到最后一排,不要打扰好学生专心学习。”
班主任的想法:让好学生和坏学生保持一个距离,不要干扰好学生。支持向量机就是致力于在正负样本上找到一条分割线,使得它可以完全区分两类样本,同时要满足画出的间隔尽量大,也就是说,正负样本距离分割线尽量远。如果在分布均匀的情况下,找不到一条分割线,那么就提高维度,找到一个超平面,可以通过核函数,其中班主任换位置的办法就是核函数的作用,让原本散落在教室的好坏学生通过换座位来完成区分。
通过以上例子,我们对分类算法已经有了初步的印象,接下来看每种算法的详细介绍。