“大数据”、“海量数据分析”、“数据挖掘”等已经成为近两年超级流行的词汇:2012年初《纽约时报》刊载《大数据时代降临》,2012达沃斯世界经济论坛讨论“海量数据分析”和“机器学习”将会是未来最大的技术革命之一等等。海量数据中蕴含着丰富的信息,从中挖掘出的“宝藏”将有助于人们做出科学的决策。分类分析作为数据挖掘实际应用中最常用的一种方法,就是判断目标对象属于哪个预先定义好的类。例如:社交管理营销公司通过海量微博用户发表或者转发的微博内容构建分类模型,判断用户属于是“时尚类”还是“体育类”,以便向他们定点营销商品或服务;电商通过海量用户历史的购买行为和购买记录构建分类模型,判断用户是否是某一商品的潜在买家;医院通过海量病人的病历记录构建分类模型,判断新来的一位病人属于哪一种病等等,数据挖掘中的分类技术几乎已经深入到日常生活的许多方面。
本系列将介绍分类分析的基本技术,结合Weka讨论分类中常见的模型,如:K近邻分类器、决策树分类器、贝叶斯分类器等常见常见的分类算法。
1、分类问题的描述
毫无疑问,在我们平时最基本的生活中都会遇到分类问题。依据日常的经验,我一般会把交通工具分为:自行车、汽车、火车、轮船、飞机等;当大家见到这些交通工具时能一眼就辨别出它是什么,这是因为什么呢?为什么大家见到不明飞行物时却不知道它是什么,而把它们统称为UFO(UnidentifiedFlying Object)呢?显然,我们能认识到自行车、汽车等常见交通工具,是因为我们在日常生活中无论是亲眼所见还是通过电视、网络等媒体见到过或者是听别人描述过它们的典型特征,这些常见交通工具各自典型的特征烙印在了我们的脑海中;当再次看到这些交通工作时,自然就能辨别出它是自行车还是汽车。而对于UFO,因为我们从没有真正的见过和接触过,没有统一的典型特征来刻画不明飞行物,脑海中也不会形成判别UFO的模型;当见到不明飞行物时,自然不能知道它是什么,而统称UFO了。
在上述例子中,大家通过所见、所闻甚至所用等方式对交通工具的认识时,这些交通工具的特征信息自然而然的进入脑海并形成判别这些交通工具的模型,这个过程我们称之为学习。只不过大家认识交通工具的过程是大脑学习的过程;而让这些交通工具的典型特征交给计算机学习,则称为“机器学习”,在数据挖掘的分类学习中,我们称之这个过程为“训练”。分类的训练的过程又称为“有监督学习”,是因为在学习的过程中提供了“类标”;在上述例子中也就是指在你认识交通工具的过程中,别人告诉你它是自行车、汽车还是其它。
大家认识了自行车、汽车等其它常见交通工具后,当再次见到这些交通工具后便可直接认出它们是什么了。这个过程,在数据挖掘中称为“测试”或者应用模型的过程。
2、分类(classification)的定义
对于一个由m个元组训练集D,每个元组都可以用一组向量表示:X = (X1, X2,… , Xn ),X1, X2, … ,Xn为该训练集n个属性的度量,这n个属性可以为离散属性也可以为连续属性;另外,每一个元组也都有一个离散化的目标属性C,称为类属性。分类的任务就是通过这个训练集训练一个目标函数f,该函数把每组向量Xi映射到一个类属性Cj。