(1) 建立该数据集的决策树。该决策树能捕捉到“+”和“-”的概念吗?
(2) 决策树的准确率、精度、召回率和F1各是多少?(注意,精度、召回率和F1量均是
对“+”类定义) (3) 使用下面的代价函数建立新的决策树,新决策树能捕捉到“+”的概念么?
??0??C(i,j)??1??实例个数????实例个数如果i?j如果i??,j??如果i??,j??
(提示:只需改变原决策树的结点。)
答:(1)在数据集中有20个正样本和500个负样本,因此在根节点处错误率为 E?1?max(20520520,500)?20520
如果按照属性X划分,则:
X=0 X=1 X=2 + 0 10 10 - 200 0 300 EX=0=0/310=0 EX=1=0/10=0 EX=2=10/310 ?X?E?200520?0?10520?0?310520?10310?10520
如果按照属性Y划分,则:
Y=0 Y=1 Y=2 + 0 20 0 - 200 100 200 EY=0=0/200=0 EY=1=20/120 EY=2=0/200=0
?X?E?120520?20120?0
因此X被选为第一个分裂属性,因为X=0和X=1都是纯节点,所以使用Y属性去分割不纯节点X=2。
Y=0节点包含100个负样本,Y=1节点包含10个正样本和100个负样本,Y=2节点包含100个负样本,所以子节点被标记为“—”。整个结果为:
??,X?1类标记=?
?,其他?(2) 实际类 预测类 + - 0 - 500 + 10 10 第 13 页 共 27 页
accuracy: recall:
510520=0.9808,precision:
1010=1.0
=0.6666
1020=0.5 , F-measure:
2?0.5?1.01.0?0.5(3)由题可得代价矩阵为
实际类 预测类 + - + 0 500/20=25 - 1 0 决策树在(1)之后还有3个叶节点,X=2∧Y=0,X=2∧Y=1,X=2∧Y=2。其中X=2∧Y=1是不纯节点,误分类该节点为“+”类的代价为:10?0+100?1=100,误分该节点为“—”类的代价为:10?25+100?0=250。所以这些节点被标记为“+”类。 分类结果为:
?? 类标记????X?1??X?2?Y?1?其他
3.10 什么是提升?陈述它为何能提高决策树归纳的准确性?
答:提升是指给每个训练元组赋予权重,迭代地学习k个分类器序列,学习得到分类器Mi
之后,更新权重,使得其后的分类器Mi+1“更关注”Mi误分的训练元组,最终提升的分类器M*组合每个个体分类器,其中每个分类器投票的权重是其准确率的函数。在提升的过程中,训练元组的权重根据它们的分类情况调整,如果元组不正确地分类,则它的权重增加,如果元组正确分类,则它的权重减少。元组的权重反映对它们分类的困难程度,权重越高,越可能错误的分类。根据每个分类器的投票,如果一个分类器的误差率越低,提升就赋予它越高的表决权重。在建立分类器的时候,让具有更高表决权重的分类器对具有更高权重的元组进行分类,这样,建立了一个互补的分类器系列。所以能够提高分类的准确性。
3.11 表3-27给出课程数据库中学生的期中和期末考试成绩。
表3-27 习题3.11数据集
期中考试 X 72 50 81 74 94 86 59 83 65 33 88 期末考试 Y 84 63 77 78 90 75 49 79 77 52 74 第 14 页 共 27 页
81 90 (1) 绘制数据的散点图。X和Y看上去具有线性联系吗? (2) 使用最小二乘法,由学生课程中成绩预测学生的期末成绩的方程式。 (3) 预测期中成绩为86分的学生的期末成绩。 答:(1)数据图如下所示:
1009080706050403020100020406080100系列1
X和Y具有线性联系。 (2)
1 2 3 4 5 6 7 8 9 10 11 12 SUM Y = a + b*X
X 72 50 81 74 94 86 59 83 65 33 88 81 866
Y 84 63 77 78 90 75 49 79 77 52 74 90 888
X*Y 6048 3150 6237 5772 8460 6450 2891 6557 5005 1716 6512 7290 66088
X^2 5184 2500 6561 5476 8836 7396 3481 6889 4225 1089 7744 6561 65942
预测Y 73.9031 61.1079 79.1375 75.0663 86.6983 82.0455 66.3423 80.3007 69.8319 51.2207 83.2087 79.1375
a = Y0 + b*X0
b = (∑xiyi-nX0Y0)/(∑xi2-nX02) X0 = (∑xi)/n Y0 = (∑yi)/n
求得 a = 32.0279,b = 0.5816。
(3) 由(2)中表可得,预测成绩为86分的学生的期末成绩为82.0455。 3.12 通过对预测变量变换,有些非线性回归模型可以转换成线性模型。指出如何将非线性回
归方程y?ax转换成可以用最小二乘法求解的线性回归方程。
第 15 页 共 27 页
?答:令w?x?,对样本数据做变换wi?xi?(i?1,2,....,n),利用(wi,Yi)(i=1,2,?,n)
解出y = aw中的a,再代入y?ax?即得到y对x的回归方程。
第4章聚类分析
4.1 什么是聚类?简单描述如下的聚类方法:划分方法,层次方法,基于密度的方法,基于模型的方法。为每类方法给出例子。 答:聚类是将数据划分为相似对象组的过程,使得同一组中对象相似度最大而不同组中对象
相似度最小。主要有以下几种类型方法: (1)划分方法
给定一个有N个元组或者记录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K 记录;第二,每一条记录属于且仅属于一个分组(注意:这个要求在某些模糊聚类算法中可以放宽);对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的记录越远越好。 使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法。 (2)层次方法 这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。例如在“自底向上”方案中,初始时每一个数据记录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。 代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等。 (3)基于密度的方法 基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。这个方法的指导思想就是:只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。 代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等。 (4)基于模型的方法 基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在假定就是:目标数据集是由一系列的概率分布所决定的。 基于模型的方法主要有两类:统计学方法和神经网络方法(SOM)。 4.2 假设数据挖掘的任务是将如下的8个点(用(x,y)代表位置)聚类为三个簇。 A1(2,10),A2(2,5),A3(8,4),B1(5,8),B2(7,5),B3(6,4),C1(1,2),C2(4,9)。距离函数是Euclidean 函数。假设初始我们选择A1,B1和C1为每个簇的中心,用k-means 算法来给出 (a) 在第一次循环执行后的三个簇中心; (b) 最后的三个簇中心及簇包含的对象。 答:(a)如图, 第 16 页 共 27 页