输入与输出
一. 输入
在深入研究机器学习方案如何运作以前,需要了解可以采取哪些不同形式的输入。
机器学习:从可操作角度定义是,从大量的数据中自动或者是半自动的寻找模式的过程,而且这个模式必须是有用的。同样我们为学习建立一个可操作的定义是,当事物以令其自身在将来表现更好为标准来改变其行为时,它学到了东西。
机器学习的输入采用概念,实例和属性的形式。
1. 概念
在数据挖掘应用的领域中存在四种完全不同的学习方式:
(1)分类学习(classification learning)
是用一个已分类的样本集来表示学习方案,并希望从这个样本集中学习对未来样本进行分类的方法。
(2)关联学习(association learning)
寻找任何特性之间的关联,不仅仅是为了预测一个特定的类值。
(3)聚类(clustering)
寻找能够组合在一起的样本,并以此分组。
(4)数值预测(numeric predication)
预测出的结论不是一个离散类,而是一个数值量。
表1 天气数据
阴晴 温度 湿度 刮风 玩
Sunny hot high false no
Sunny hot high true no
Overcast hot high false yes
Rainy mild high false yes
Rainy cool normal false yes
Rainy cool normal true no
Overcast cool normal true yes
Sunny mild high false no
Sunny cool normal false yes
Rainy mild normal false yes
Sunny mild normal true yes
Overcast mild high true yes
Overcast hot normal false yes
Rainy mild high true no
对每一天标注了是否适合进行体育活动的判断结果,问题是要学习要如何用是否玩对新的一天进行分类。分类学习有时称为指导学习。
先看一组规则(分类规则 classification rules):
If outlook=sunny and humidity=high then play =no
If outlook=rainy and wind=true then play=no
If outlook=overcast then play=yes
If humidity=normal then play=yes
If none of the above then play=yes
如果一组规则按次序判断称为:决策列。分类规则是以他们是否玩的形式去预测样本的类。也可以不管他的分类,仅仅寻找一些规则。这些规则和不同的属性值紧密关联,称为关联规则(association rules)以下是一些关联规则:
If temperature=cool then humidity=normal
If humidity=normal and wind =false then play=yes
If outlook=sunny and play=no then humidity=high
If wind =false and play=no then outlook=sunny and humidity=high
关联规则和分类规则在两方面存在不同:关联规则可以“预测”任何属性,不只是类,也可以一次预测一个以上的属性值。正因为如此,关联规则的数量要远远多于分类规则的数量,其中的问题是要避免被过多的关联规则所困扰。
当样本不存在一个特定的类是,可以采用聚类的方法将那些看上去会自然落在一起的样本集合在一起。
聚类分析计算方法主要有如下几种:
(1). 划分法(partitioning methods):给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。而且这K个分组满足下列条件:(1) 每一个分组至少包含一个数据纪录;(2)每一个数据纪录属于且仅属于一个分组(注意:这个要求在某些模糊聚类算法中可以放宽);对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法;
(2). 层次法(hierarchical methods):这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。例如在“自底向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;
(3). 基于密度的方法(density-based methods):基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。这个方法的指导思想就是,只要一个区域中的点的密度大过某个阀值,就把它加到与之相近的聚类中去。代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等;
(4). 基于网格的方法(grid-based methods):这种方法首先将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。这么处理的一个突出的优点就是处理速度很快,通常这是与目标数据库中记录的个数无关的,它只与把数据空间分为多少个单元有关。代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法;
(5). 基于模型的方法(model-based methods):基于模型的方法给每一个聚类假定一个模型,然后去寻找能个很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。通常有两种尝试方向:统计的方案和神经网络的方案。
数值预测是分类学习的一种变体,数值预测的结论是一个数值,而不是一个分类。
以上是四种学习方式,不管采用什么学习方式进行学习,这里将被学习的东西称为概念,由学习方案产生的输出就是概念描述。
2. 样本
机器学习的方案的输入是一个实例集。这些实例由机器学习方案进行分类,关联或聚类。它们被称为样本,专业术语:实例,来表示输入。每一个实例都是用被来学习的单一,独立的概念样本。每个实例由一组预先定义的属性值来表示。
Peter = peggy grace ray
M f f m
Steven Graham pam = lan pappa brian
M m f m f m
Anna nikki
第一人 第二人 是姐妹吗?
Peter peggy no Peter steven no …. …… Steven peter no Steven graham no Steven pam yes Steven grace no …. ….. Lan pippa yes ….. …… Anna nikki yes ….. …… Nikki anna yes |
第一人 第二人 是姐妹吗?
Steven pam yes Graham pam yes Lan pippa yes Brian pippa yes Anna nikki yes Nikki anna yes |
仅明确指出肯定样本且采用一个不变的假设的做法称为闭合世界假定(closed world assumption)
由一张表表示家族树
姓名 性别 父母1 父母2
Peter male ? ?
Peggy female ? ?
Steven male peter peggy
Graham male peter peggy
Pam female peter peggy
Lan male grace ray
….
但是这些表格不包含独立的实例集,因为判断姐妹关系所依据的列(姓名,父母1,父母2)的值需要参考家族树关系的行。
在一张表中表示姐妹关系
第一人 第二人
姓名 性别 父母1 父母2 姓名 性别 父母1 父母2
Steven male peter peggy pam female peter peggy yes
Garaham male peter peggy pam female peter peggy yes
Lan male grace ray pippa female grace ray yes
…..
Nikki female pam lan anna female pam lan yes
其余 no
现在已经成功把原始数据关系问题转换成实例的形式,每个实例都是一个单一,独立的概念样本,这个样本被用来学习。
这个例子说明了如何从一棵树上获取不同节点间的关系,并且转换成一个独立的实例集。这是一个平整的处理过程,技术上成为反向规格化(denormalization)
反向规格化出现的两个问题:
(1) 对于表2可以表示更多的家庭成员关系,但是,从计算和存储的代价来说这种方法都是不可行的。
(2) 在一些数据上产生了显而易见的规律性,而这些规律性完全是虚假的,实际上他们仅是原始数据库结构的再现。(啤酒薯片例子)
3. 属性
每个单一,独立的实例是由一组固定的和预先定义的特征或属性值作为输入提供给机器学习的。
属性值:一个特定实例的一个属性值是属性所对应部分的一个测量值。
类型包括:数值量,名词性量,有序值,区间值,比率值。
(1)数值属性有时也称为连续属性,它是测量到实数或整数值。
(2)名词性属性 是从一个预先定义的有限的可能值得集合中取值,有时候也称为范畴属性。例如,在天气数据中,outlook的属性值:sunny,overcast和rainy.
(3)有序值是那些可能排序的范畴值。例如,气温temperature 的属性值:炎热hot,温和mild和凉爽cool。可以把它们看成: Hot>mild>cool
(4)区间值不但是有序的而且还可以用固定和相等的单位进行度量。例如日期。
(5)比率值
二.输出
数据中的结构模式是如何表达的。机器学习所能发现的模式有许多不同的表达方式,每一种方式就是一种推断数据输出结构的技术。
1. 决策表
表示机器学习输出结构的最简单,最基本的方法是采用和输入同样的形式----决策表
2. 决策树
一个决策树上的节点包含了对某个特定属性的测试,一般来说,在一个节点上的测试时将一个属性值遇一个常量进行比较。或者是两个属性之间进行比较。叶节点对所有到达叶子的实例给出一个分类,或是一组分类,或是一个包括了所有可能分类的概率分布。当对以个未知的实例进行分类时,将根据在各个连续节点上对未知实例的属性值测试的结果,自上而下的从树上寻找一条路径,当实例到达叶子时,实例的分类就是叶子所标示的类。