一个老师给的题,自己做后的小总结,希望能其他人给点意见(数据挖掘)

1 数据挖掘的学习——以分类为例

1.1 学习材料

     学习材料(附件1)是数据挖掘方面最经典的一本教材《Data Mining:Concepts and Techniques》的翻译版《数据挖掘:概念与技术》,加拿大华人韩嘉炜(Jiawei Han)老师的一本书。韩老师是数据挖掘界公认的大牛。

    数据挖掘应用中最多的要数分类算法,而决策树算法(decision tree)又是分类算法中较为经典的一个。所以给大家发一个附件,是这本书的第一版的翻译版,网上还能下载到英文版的第二版。大家用一周的课余时间学习一下其中的“第七章分类和预测” 的前三小节,7.1和7.1是介绍性的,也即是重点学习“7.3  用判定树归纳分类”。不理解的概念可google或者查阅书中前面章节的可能有助于理解的部分。

1.2 练习题

    下面的题目是某一个数据集的简化版,请把解答写在题目的后面。

    题目:下表是一个某种体育运动的天气条件的数据集,天气问题有4个属性:阴晴、温度、湿度和刮风,结论是是否能玩。

 

RID

阴晴

温度

湿度

刮风

1

sunny

hot

high

false

no

2

sunny

hot

high

true

no

3

overcast

hot

high

false

yes

4

rainy

mild

high

false

yes

5

rainy

cool

normal

false

yes

6

rainy

cool

normal

true

no

7

overcast

cool

normal

true

yes

8

sunny

mild

high

false

no

9

sunny

cool

normal

false

yes

10

rainy

mild

normal

false

yes

11

sunny

mild

normal

true

yes

12

overcast

mild

high

true

yes

13

overcast

hot

normal

false

yes

14

rainy

mild

high

true

no

    (1)根据图7.3的判定树算法(ID 3),分析该数据集,要求写出每一步的详细的过程(模仿课本节选部分内容写)画出最后够造出来的判定树,并写出由得到的判定树产生分类规则。

    (2)对一个上表中没有的新样例进行判断:阴晴=sunny, 温度=hot, 湿度= normal, 刮风=false, 玩=?

    (3)思考一下,假如这个数据集中的数据采用数值属性,如下表,如何进行分析,说说你的想法。

RID

阴晴

温度

湿度

刮风

1

sunny

85

85

false

no

2

sunny

80

90

true

no

3

overcast

83

86

false

yes

4

rainy

70

96

false

yes

5

rainy

68

80

false

yes

6

rainy

65

70

true

no

7

overcast

64

65

true

yes

8

sunny

72

95

false

no

9

sunny

69

70

false

yes

10

rainy

75

80

false

yes

11

sunny

75

70

true

yes

12

overcast

72

90

true

yes

13

overcast

81

75

false

yes

14

rainy

71

91

true

no

 

解答:

 

(一)表中给出了取自一个某种体育运动的天气条件的数据集。类标号属性“玩”有两个不同值(即, {yes, no}),因此有两个不同的类(m = 2)。设类C1对应于yes,而类C2对应于no。类yes有9个样本,类no有5个样本。为计算每个属性的信息增益,我们首先使用(7.1)式,计算对给定样本分类所需的期望信息:

RID

阴晴

温度

湿度

刮风

1

sunny

hot

high

false

no

2

sunny

hot

high

true

no

3

overcast

hot

high

false

yes

4

rainy

mild

high

false

yes

5

rainy

cool

normal

false

yes

6

rainy

cool

normal

true

no

7

overcast

cool

normal

true

yes

8

sunny

mild

high

false

no

9

sunny

cool

normal

false

yes

10

rainy

mild

normal

false

yes

11

sunny

mild

normal

true

yes

12

overcast

mild

high

true

yes

13

overcast

hot

normal

false

yes

14

rainy

mild

high

true

no

下一步,我们需要计算每个属性的熵。让我们从属性“阴晴”开始。我们需要观察“阴晴”的每个样本值的yesno分布。我们对每个分布计算期望信息。

对于:

Sunny:s11=2,s21=3,I(s11,s21) = 0.971

Overcast:  s12=4,s22=0,I(s12,s22) =0

Rainy:  s13=3,s23=2,I(s13,s23) = 0.971

使用(7.2)式,如果样本按“阴晴”划分,对一个给定的样本分类所需的期望信息为:

因此,这种划分的信息增益是

类似地,我们可以计算Gain(温度) = 0.029, Gain(湿度) = 0.151和Gain(刮风) = 0.048。由于“阴晴”在属性中具有最高信息增益,它被选作测试属性。创建一个结点,用“阴晴”标记,并对于每个属性值,引出一个分枝。样本据此划分,如图所示,落在分区阴晴= “overcast”的样本都属于同一类。由于它们都属于同一类yes,因此要在该分枝的端点创建一个树叶,并用yes标记。为图1

   分别对sunny部分与及rainy部分递归,进一步分类,此时,发现出现终止递归的条件,在此情况下,使用多数表决(步骤5)。这涉及将给定的结点转换成树叶,并用样本中的多数所在的类标记它。替换地,可以存放结点样本的类分布。

最后,生成的判定树为图2

分类规则如下:

IF “阴晴”=sunnyAND 湿度=normal

THAN “玩”=YES

IF  “阴晴”=sunny AND 湿度=normal

THAN “玩”=YES

IF “阴晴=”overcast

THAN “玩”=YES

IF “阴晴”=rainy, 刮风=true

THAN “玩”=NO,

IF “阴晴”=rainy,刮风=false,

THAN “玩”=YES

(二)“玩”=YES

(三)当数据采用数值属性时, 我们得到的数据更加详细了,准确率应当有所提升。我们可以将数值属性按到不同的比例分类,使得s的值更多,可以是60到65,65到70,….一直到90, 也可以是60到70, 70到80,80到90,,按不同的公差分类,公差越小,准确率越高,但是,将数据划分成越来越小的部分,判定树归纳可能面临碎片、重复和复制问题。碎片,可以用创建二叉判定树解决,或者用属性构造解决这3个问题。

还有其他的方法,通过修改算法,给定A的值v,确定V时考虑v-1个可能的分割。通常,考虑每对相邻值的中间值。如果这些值已预先排序,则只需要扫描一次这些值。

信息增益度量有倾斜,它倾向于适合具有许多值的属性。已经提出了一些替代的方法,如增益率,它考虑每个属性值的概率。还有一些其它选择度量,包括Gini索引,c2相依表统计和G-统计。(这些内容感觉跟问题相关,但是看不太懂~~)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值