1.
某学校对入学的新生进行性格问卷调查(没有心理学家的参与),根据学生对问题的回答,把学生的性格分成了8个类别。请说明该数据挖掘任务是属于分类任务还是聚类任务?为什么?并利用该例说明聚类分析和分类分析的异同点。
解答:
(a)该数据挖掘任务属于聚类任务(clustering)。
(b)该任务没有预先定义的类别标签,而是根据学生对问题的回答对学生的性格进行分类,将相似的学生划分到同一个类别中。聚类分析正是基于数据本身的特征将数据划分为不同类别,这些类别在聚类之前是未知的。
(c)
相同点:
都用于从数据中提取有用的信息,可以将数据划分为不同的组或类别。
不同点:
1. 分类是有监督学习,需要标注训练数据; 聚类是无监督学习,不需要标注数据。
2. 分类的目标是学习将实例准确分配到预定义的类别; 聚类的目标是自动发现数据中的自然分组。
3. 分类适用于有明确目标类别的场景; 聚类适用于发现数据内在模式、结构的场景。
4. 分类通常使用准确率、精确率、召回率等指标评估;聚类使用簇内相似度、簇间差异度等指标评估。
2.
Apriori算法在数据挖掘中被广泛使用,已知有5000名球迷看奥运会,看乒乓球比赛和看篮球比赛的人数分别如下表所示:
看乒乓球 | 没看乒乓球 | 合计(行) | |
看篮球 | 2000 | 1750 | 3750 |
没看篮球 | 1000 | 250 | 1250 |
合计(列) | 3000 | 2000 | 5000 |
计算“看乒乓球—>看篮球”的支持度比例(Support)、置信度比例(Confidence)、提升度(Lift)。
解答:
支持度比例(Support)
支持度比例表示同时发生两个事件的概率。
Support("看乒乓球→看篮球") = P("看乒乓球"且"看篮球") = 2000/5000=40%
置信度比例(Confidence)
置信度比例表示已发生A事件时,B事件发生的条件概率。
Confidence("看乒乓球→看篮球") = P("看篮球"|"看乒乓球") =(2/5)/(3/5)=66.7%
提升度(Lift)
提升度用于判断两个事件是否相互依赖。如果Lift > 1,则表示两个事件之间是正相关;如果Lift < 1,则表示两个事件之间是负相关;如果Lift = 1,则表示两个事件相互独立。
Lift("看乒乓球→看篮球") = Confidence("看乒乓球→看篮球") / P("看篮球")
= (2/3) / (3750/5000)
= 1.6
提升度大于1,说明"看乒乓球"和"看篮球"两个事件之间存在正相关关系,看乒乓球的人群更倾向于看篮球比赛。
3.
认识数据
假设描述学生的信息包含以下属性:性别,籍贯,年龄。记录p,q和C1,C2的信息如下,分别求出记录和簇彼此之间的距离。
p={男,广州,18}
q={女,韶关,20}
C1={男:25,女:5; 广州:20,深圳:6,韶关:4; 20}
C2={男:3,女:12; 汕头:12,深圳:1,韶关:2; 24}
(a)记录与记录之间的距离
p与q间距离记录p和q之间的距离总和是1 + 1 + 2 = 4。
d(p,q)=1 + 1 + 2 = 4
性别:p是男,q是女,性别间距离是1。
籍贯:p是广州,q是韶关,籍贯间的距离是1。
年龄:p是18,q是20,年龄间的距离是2。
(b)记录与簇间距离
p与C1间距离
d(p, C1)=(1-25/30)+(1-20/30)+(20-18)=2.5
性别:p是男,C1中男性最常见(频率25/30)
籍贯:p是广州,C1中广州最常见(频率20/30)
年龄:p是18,C1中列出年龄是20,年龄距离为|18-20|=2。
依次计算距离
q与C1间距离d(q,C1)=(1-5/30)+(1-4/30)+(20-20)=51/30
p与C2间距离d(p, C2)=(1-3/15)+(1-0/15)+(24-18)=7.8
q与C2间距离d(q, c2)=(1-12/15)+(1-2/15)+(24-20)=76/15
(c)簇与簇间距离
C1与C2间距离
d(C1, C2)=[1-(25*3+5*12)/30*15] + [1-(6*1+4*2)/30*15] + |20-24| = 2551/450
4.
已知:训练集合中垃圾邮件的比例为P(h+)=0.2;训练集合中正常邮件的比例为P(h-)=0.8;单词出现频率表如下:
分词 | 在垃圾邮件中出现的比例 | 在正常邮件中出现的比例 |
免费 | 0.3 | 0.01 |
奖励 | 0.2 | 0.01 |
网站 | 0.2 | 0.2 |
求解:判断一封邮件D=<“免费”“奖励”“网站”>是否是垃圾邮件?
P(h+)和p(h-)表示先验概率,只需要看现有邮件训练集中有多少封邮件是垃圾邮件,有多少封邮件是正常邮件,求其所占比例就可以得到P(h+)和p(h-)。
依题可得
P(h+) = 0.2 (垃圾邮件的先验概率)
P(h-) = 0.8 (正常邮件的先验概率)
P("免费"|h+) = 0.3 (在垃圾邮件中"免费"出现的条件概率)
P("免费"|h-) = 0.01 (在正常邮件中"免费"出现的条件概率)
P("奖励"|h+) = 0.2
P("奖励"|h-) = 0.01
P("网站"|h+) = 0.2
P("网站"|h-) = 0.2
根据题目要求可知,我们需要求出P(h+|D)和P(h-|D)
根据贝叶斯定理:P(A|B)=P(B|A)P(A)/P(B)
P(h+|D) = (P(D|h+)P(h+)) / P(D)
P(h-|D) = (P(D|h-)P(h-)) / P(D)
P(D) = P(D|h+)P(h+) + P(D|h-)P(h-)
P(D|h+) = P("免费"|h+) * P("奖励"|h+) * P("网站"|h+) = 0.3 * 0.2 * 0.2 = 0.012
P(D|h-) = P("免费"|h-) * P("奖励"|h-) * P("网站"|h-) = 0.01 * 0.01 * 0.2 = 0.000002
则P(D) = 0.012 * 0.2 + 0.000002 * 0.8 = 0.002424
最后计算概率:
P(h+|D) = (0.012 * 0.2) / 0.002424 = 0.9917
P(h-|D) = (0.000002 * 0.8) / 0.002424 = 0.0083
可以判断这封邮件D更可能是垃圾邮件