机器学习期中考试

1、使用KNN算法对两个未知类型的样本进行分类(冰川水或者湖泊水),其中K=3,即选择最近的3个邻居。(20分)

样本	Ca+浓度	Mg+浓度	Na+浓度	Cl-浓度	类型A	0.2	0.5	0.1	0.1	湖泊水B	0.4	0.3	0.4	0.3	冰川水C	0.3	0.4	0.6	0.3	湖泊水D	0.2	0.6	0.2	0.1	湖泊水E	0.5	0.5	0.1	0	冰川水F	0.3	0.3	0.4	0.4	冰川水G	0.3	0.3	0.1	0.2	?冰川水H	0.1	0.4	0.2	0.2	?湖泊水

学生答案:

解:

D

i

s

t

a

n

c

e

(

G

,

A

)

2

=

0.1

;

D

i

s

t

a

n

c

e

(

G

,

B

)

2

=

0.03

;

D

i

s

t

a

n

c

e

(

G

,

C

)

2

=

0.11

Distance(G,A)^2=0.1; Distance(G,B)^2=0.03; Distance(G,C)^2=0.11

Distance(G,A)2=0.1;Distance(G,B)2=0.03;Distance(G,C)2=0.11

D

i

s

t

a

n

c

e

(

G

,

D

)

2

=

0.12

;

D

i

s

t

a

n

c

e

(

G

,

E

)

2

=

0.16

;

D

i

s

t

a

n

c

e

(

G

,

F

)

2

=

0.05

Distance(G,D)^2=0.12; Distance(G,E)^2=0.16; Distance(G,F)^2=0.05

Distance(G,D)2=0.12;Distance(G,E)2=0.16;Distance(G,F)2=0.05

G的三个最近的邻居为B,F,A,因此G的分类为冰川水

D

i

s

t

a

n

c

e

(

H

,

A

)

2

=

0.03

;

D

i

s

t

a

n

c

e

(

H

,

B

)

2

=

0.18

;

D

i

s

t

a

n

c

e

(

H

,

C

)

2

=

0.22

Distance(H,A)^2=0.03; Distance(H,B)^2=0.18; Distance(H,C)^2=0.22

Distance(H,A)2=0.03;Distance(H,B)2=0.18;Distance(H,C)2=0.22

D

i

s

t

a

n

c

e

(

H

,

D

)

2

=

0.03

;

D

i

s

t

a

n

c

e

(

H

,

E

)

2

=

0.21

;

D

i

s

t

a

n

c

e

(

H

,

F

)

2

=

0.16

Distance(H,D)^2=0.03; Distance(H,E)^2=0.21; Distance(H,F)^2=0.16

Distance(H,D)2=0.03;Distance(H,E)2=0.21;Distance(H,F)2=0.16

H的三个最近的邻居为A,D,F,因此H的分类为湖泊水

2、使用CART决策树算法对两个未知类型的样本进行分类。(使用ID3决策树算法对两个未知类型的样本进行分类。)(20分)

Ca+浓度	Mg+浓度	Na+浓度	Cl-浓度	类型低	高	高	高	冰川水高	低	高	高	冰川水低	高	低	低	冰川水高	高	低	低	冰川水低	低	低	低	湖泊水高	低	低	低	湖泊水低	高	高	低	湖泊水高	低	高	低	湖泊水低	高	高	低	?湖泊水高	高	低	高	?冰川水

CART算法:

对样本集S,计算其在各个属性划分上的基尼指数。

1)

G

i

n

i

(

S

,

C

a

+

浓度

)

=

4

/

8

[

1

(

2

/

4

)

2

(

2

/

4

)

2

]

+

4

/

8

[

1

(

2

/

4

)

2

(

2

/

4

)

2

]

=

0.5

Gini(S,Ca+浓度)=4/8 [1-(2/4)^2-(2/4)^2 ]+4/8 [1-(2/4)^2-(2/4)^2 ] = 0.5

Gini(S,Ca+浓度)=4/8[1−(2/4)2−(2/4)2]+4/8[1−(2/4)2−(2/4)2]=0.5

2)

G

i

n

i

(

S

,

M

g

+

浓度

)

=

4

/

8

[

1

(

3

/

4

)

2

(

1

/

4

)

2

]

+

4

/

8

[

1

(

1

/

4

)

2

(

3

/

4

)

2

]

=

0.375

Gini(S,Mg+浓度)=4/8 [1-(3/4)^2-(1/4)^2 ]+4/8 [1-(1/4)^2-(3/4)^2 ] = 0.375

Gini(S,Mg+浓度)=4/8[1−(3/4)2−(1/4)2]+4/8[1−(1/4)2−(3/4)2]=0.375

3)

G

i

n

i

(

S

,

N

a

+

浓度

)

=

4

/

8

[

1

(

2

/

4

)

2

(

2

/

4

)

2

]

+

4

/

8

[

1

(

2

/

4

)

2

(

2

/

4

)

2

]

=

0.5

Gini(S,Na+浓度)=4/8 [1-(2/4)^2-(2/4)^2 ]+4/8 [1-(2/4)^2-(2/4)^2 ] = 0.5

Gini(S,Na+浓度)=4/8[1−(2/4)2−(2/4)2]+4/8[1−(2/4)2−(2/4)2]=0.5

4)

G

i

n

i

(

S

,

C

l

浓度

)

=

4

/

8

[

1

(

2

/

4

)

2

(

2

/

4

)

2

]

+

4

/

8

[

1

(

4

/

4

)

2

]

=

0.25

Gini(S,Cl-浓度)=4/8 [1-(2/4)^2-(2/4)^2 ]+4/8 [1-(4/4)^2 ] = 0.25

Gini(S,Cl−浓度)=4/8[1−(2/4)2−(2/4)2]+4/8[1−(4/4)2]=0.25

Cl-浓度属性的基尼指数最小,将Cl-浓度属性作为第一个划分属性,将集合S划分为以下两个子集:

S1(高):

Ca+浓度	Mg+浓度	Na+浓度	类型低	高	高	冰川水高	低	高	冰川水

S2(低):

Ca+浓度	Mg+浓度	Na+浓度	类型低	高	低	冰川水高	高	低	冰川水低	低	低	湖泊水高	低	低	湖泊水低	高	高	湖泊水高	低	高	湖泊水

对样本集S1,所有样本均属于同一类型:冰川水。

对样本集S2,计算其在各个属性划分上的基尼指数:

1)

G

i

n

i

(

S

2

,

C

a

+

浓度

)

=

2

/

6

[

1

(

1

/

2

)

2

(

1

/

2

)

2

]

+

4

/

6

[

1

(

2

/

4

)

2

(

2

/

4

)

2

]

=

0.5

Gini(S2,Ca+浓度)=2/6 [1-(1/2)^2-(1/2)^2 ]+4/6 [1-(2/4)^2-(2/4)^2 ] = 0.5

Gini(S2,Ca+浓度)=2/6[1−(1/2)2−(1/2)2]+4/6[1−(2/4)2−(2/4)2]=0.5

2)

G

i

n

i

(

S

2

,

M

g

+

浓度

)

=

2

/

6

[

1

(

2

/

2

)

2

]

+

4

/

6

[

1

(

3

/

4

)

2

(

1

/

4

)

2

]

=

0.25

Gini(S2,Mg+浓度)=2/6 [1-(2/2)^2 ]+4/6 [1-(3/4)^2-(1/4)^2 ] =0.25

Gini(S2,Mg+浓度)=2/6[1−(2/2)2]+4/6[1−(3/4)2−(1/4)2]=0.25

3)

G

i

n

i

(

S

2

,

N

a

+

浓度

)

=

2

/

6

[

1

(

2

/

2

)

2

]

+

4

/

6

[

1

(

2

/

4

)

2

(

2

/

4

)

2

]

=

0.333

Gini(S2,Na+浓度)=2/6 [1-(2/2)^2 ]+4/6 [1-(2/4)^2-(2/4)^2 ] =0.333

Gini(S2,Na+浓度)=2/6[1−(2/2)2]+4/6[1−(2/4)2−(2/4)2]=0.333

可以看出Gini(S2,Mg+浓度)最小,所以应该选择Mg+浓度属性作为测试属性。

Mg+浓度属性将样本集划分为两个子集:

1)S21

Ca+浓度	Na+浓度	类型低	低	冰川水高	低	冰川水低	高	湖泊水

2)S22

Ca+浓度	Na+浓度	类型低	低	湖泊水高	低	湖泊水高	高	湖泊水

对样本集S21,计算其在各个属性划分上的基尼指数:

1)

G

i

n

i

(

S

21

,

C

a

+

浓度

)

=

2

/

3

[

1

(

1

/

2

)

2

(

1

/

2

)

2

]

+

1

/

3

[

1

(

1

/

1

)

2

]

=

0.333

Gini(S21,Ca+浓度)=2/3 [1-(1/2)^2-(1/2)^2 ]+1/3 [1-(1/1)^2 ] =0.333

Gini(S21,Ca+浓度)=2/3[1−(1/2)2−(1/2)2]+1/3[1−(1/1)2]=0.333

2)

G

i

n

i

(

S

21

,

N

a

+

浓度

)

=

2

/

3

[

1

(

2

/

2

)

2

]

+

1

/

3

[

1

(

1

/

1

)

2

]

=

0

Gini(S21,Na+浓度)=2/3 [1-(2/2)^2 ]+1/3 [1-(1/1)^2 ] =0

Gini(S21,Na+浓度)=2/3[1−(2/2)2]+1/3[1−(1/1)2]=0

可以看出Gini(S2,Na+浓度)最小,所以应该选择Na+浓度浓度属性作为测试属性。

Na+浓度属性将样本集划分为两个子集, 并且各个子集中的样本都属于同一个类型。

对样本集S22,所有样本均属于同一类型湖泊水。

决策树构造完毕,如下图所示。

在这里插入图片描述

图1 选择Na+浓度作为节点

由上面决策树,得第一个待识别样本类型为湖泊水;第二个待识别样本类型为冰川水。

3、如下表所示的数据集,其在二维空间中的分布情况如图1所示,用户输入ε=1,MinPts=5,采用DBSCAN算法对表中数据进行聚类。(20分)

序号	属性1	属性2	序号	属性1	属性21	1	0	7	4	12	4	0	8	5	13	0	1	9	0	24	1	1	10	1	25	2	1	11	4	26	3	1	12	1	3

在这里插入图片描述

第一类:{1,3,4,5,10}

第二类:{2,6,7,8,11}

4、已知数据集如表1所示,使用朴素Bayes算法预测气候状况为雨天,高温,湿度中等。微风时,是否适合户外运动?(20分)

表1 数据集信息

天气情况x1	温度情况x2	湿度情况x3	风力情况x4	户外运动Y晴朗	高	大	微风	不适合n晴朗	高	大	强风	不适合n阴天	高	大	微风	适合y下雨	中	大	微风	适合y下雨	低	中等	微风	适合y下雨	低	中等	强风	不适合n阴天	低	中等	强风	适合y晴朗	中	大	微风	不适合n晴朗	低	中等	微风	适合y下雨	中	中等	微风	适合y

解:

即求X={下雨,高,中等,威风}的户外运动为可以的后验概率P(Y=y|X)和为不可以的后验概率P(Y=n|X)两者值中较大者为X的预测值。

根据Bayes定理,

P

(

Y

=

y

X

)

=

P

(

X

Y

=

y

)

P

(

Y

=

y

)

=

P

(

x

1

Y

=

y

)

P

(

x

2

Y

=

y

)

P

(

x

3

Y

=

y

)

P

(

x

4

Y

=

y

)

P

(

Y

=

y

)

P(Y=y|X)\\= P(X|Y=y)*P(Y=y) \\= P(x_1|Y=y)* P(x_2|Y=y)* P(x_3|Y=y)* P(x_4|Y=y)*P(Y=y)

P(Y=y∣X)=P(X∣Y=y)∗P(Y=y)=P(x1​∣Y=y)∗P(x2​∣Y=y)∗P(x3​∣Y=y)∗P(x4​∣Y=y)∗P(Y=y)

这里,

P

(

x

1

Y

=

y

)

=

P

(

x

1

=

下雨

Y

=

y

)

=

3

/

6

P(x_1|Y=y)= P(x_1=下雨|Y=y)=3/6

P(x1​∣Y=y)=P(x1​=下雨∣Y=y)=3/6

P

(

x

2

Y

=

y

)

=

P

(

x

2

=

Y

=

y

)

=

1

/

6

P(x_2|Y=y)= P(x_2=高|Y=y)=1/6

P(x2​∣Y=y)=P(x2​=高∣Y=y)=1/6

P

(

x

3

Y

=

y

)

=

P

(

x

3

=

中等

Y

=

y

)

=

4

/

6

P(x_3|Y=y)= P(x_3=中等|Y=y)=4/6

P(x3​∣Y=y)=P(x3​=中等∣Y=y)=4/6

P

(

x

4

Y

=

y

)

=

P

(

x

4

=

微风

Y

=

y

)

=

5

/

6

P(x_4|Y=y)= P(x_4=微风|Y=y)=5/6

P(x4​∣Y=y)=P(x4​=微风∣Y=y)=5/6

$P(Y=y)= 6/10 $

因此,

P

(

Y

=

y

X

)

=

3

/

6

1

/

6

4

/

6

5

/

6

6

/

10

=

1

/

36

P(Y=y|X)= 3/6*1/6*4/6*5/6*6/10=1/36

P(Y=y∣X)=3/6∗1/6∗4/6∗5/6∗6/10=1/36

同理,计算

P

(

Y

=

n

X

)

=

P

(

X

Y

=

n

)

P

(

Y

=

n

)

=

P

(

x

1

Y

=

n

)

P

(

x

2

Y

=

n

)

P

(

x

3

Y

=

n

)

P

(

x

4

Y

=

n

)

P

(

Y

=

n

)

P(Y=n|X)= P(X|Y=n)*P(Y=n)=P(x1|Y=n)* P(x2|Y=n)* P(x3|Y=n)* P(x4|Y=n)*P(Y=n)

P(Y=n∣X)=P(X∣Y=n)∗P(Y=n)=P(x1∣Y=n)∗P(x2∣Y=n)∗P(x3∣Y=n)∗P(x4∣Y=n)∗P(Y=n)

其中,

P

(

x

1

Y

=

n

)

=

P

(

x

1

=

下雨

Y

=

n

)

=

1

/

4

P(x1|Y=n)= P(x1=下雨|Y=n)=1/4

P(x1∣Y=n)=P(x1=下雨∣Y=n)=1/4

P

(

x

2

Y

=

n

)

=

P

(

x

2

=

Y

=

n

)

=

2

/

4

P(x2|Y=n)= P(x2=高|Y=n)=2/4

P(x2∣Y=n)=P(x2=高∣Y=n)=2/4

P

(

x

3

Y

=

n

)

=

P

(

x

3

=

中等

Y

=

n

)

=

1

/

4

P(x3|Y=n)= P(x3=中等|Y=n)=1/4

P(x3∣Y=n)=P(x3=中等∣Y=n)=1/4

P

(

x

4

Y

=

n

)

=

P

(

x

4

=

微风

Y

=

n

)

=

2

/

4

P(x4|Y=n)= P(x4=微风|Y=n)=2/4

P(x4∣Y=n)=P(x4=微风∣Y=n)=2/4

P

(

Y

=

n

)

=

4

/

10

P(Y=n)= 4/10

P(Y=n)=4/10

因此,

P

(

Y

=

n

X

)

=

1

/

4

2

/

4

1

/

4

2

/

4

4

/

10

=

1

/

160

P(Y=n|X)= 1/4*2/4*1/4*2/4*4/10=1/160

P(Y=n∣X)=1/4∗2/4∗1/4∗2/4∗4/10=1/160

因为

P

(

Y

=

y

X

)

>

P

(

Y

=

n

X

)

P(Y=y|X)> P(Y=n|X)

P(Y=y∣X)>P(Y=n∣X),故气候状况为雨天,高温,湿度中等,微风时,户外运动应为适合。

5、假如空间中的五个点{A,B,C,D,E},各点之间的距离关系如表2所示,设初始聚类中心点为{A,B},根据所给的数据对其运行K-中心点算法实现第一次迭代后的聚类划分结果及相应的两个中心点(K=2)。(20分)

样本点 A B C D E

A 0 1 2 3 4

B 1 0 3 5 2

C 2 3 0 1 4

D 3 5 1 0 6

E 4 2 4 6 0

根据已知条件,当两个初始中心点为{A,B}时,所得划分为{A,C,D}和{B,E}。

第一次迭代:

假定中心点{A,B}分别被非中心点{C,D,E}替换,根据K-中心点算法需要计算下列代价:

T

C

A

C

TC_{AC}

TCAC​、

T

C

A

D

TC_{AD}

TCAD​、

T

C

A

E

T

C

B

C

T

C

B

D

T

C

B

E

TC_{AE}、TC_{BC}、TC_{BD}和TC_{BE}

TCAE​、TCBC​、TCBD​和TCBE​。其中

T

C

A

C

TC_{AC}

TCAC​表示中心点A被非中心点C代替后的总代价。下面以

T

C

A

C

TC_{AC}

TCAC​为例说明计算过程。

当A被C代替后,看各对象的变化情况。

A:因A离B近,

C

A

A

C

=

d

(

A

,

B

)

d

(

A

,

A

)

=

1

0

=

1

C_{AAC}=d(A,B)-d(A,A)=1-0=1。

CAAC​=d(A,B)−d(A,A)=1−0=1。

B:B不受影响,

C

B

A

C

=

0

C_{BAC}=0

CBAC​=0。

C:

C

C

A

C

=

d

(

C

,

C

)

d

(

C

,

A

)

=

0

2

=

2

C_{CAC}=d(C,C)-d(C,A)=0-2=-2

CCAC​=d(C,C)−d(C,A)=0−2=−2。

D:

C

D

A

C

=

d

(

D

,

C

)

d

(

D

,

A

)

=

1

3

=

2

C_{DAC}=d(D,C)-d(D,A)=1-3=-2

CDAC​=d(D,C)−d(D,A)=1−3=−2。

E:

C

E

A

C

=

0

C_{EAC}=0

CEAC​=0。

于是,

T

C

A

C

=

C

A

A

C

+

C

B

A

C

+

C

C

A

C

+

C

D

A

C

+

C

E

A

C

=

1

+

0

2

2

+

0

=

3

TC_{AC}= C_{AAC}+ C_{BAC}+ C_{CAC} + C_{DAC}+ C_{EAC}=1+0-2-2+0=-3

TCAC​=CAAC​+CBAC​+CCAC​+CDAC​+CEAC​=1+0−2−2+0=−3。同理,可以计算出:

T

C

A

D

=

3

T

C

A

E

=

2

T

C

B

C

=

1

T

C

B

D

=

1

T

C

B

E

=

1

TC_{AD}=-3,TC_{AE}=2,TC_{BC} =-1,TC_{BD}=-1,TC_{BE}=-1

TCAD​=−3,TCAE​=2,TCBC​=−1,TCBD​=−1,TCBE​=−1。

选取最小代价,有两种选择。

选取

T

C

A

C

TC_{AC}

TCAC​为最小代价时,则两个中心点为{B,C},样本被重新划分为{ A,B,E}和{C,D}两个簇。

选取

T

C

A

D

TC_{AD}

TCAD​为最小代价时,则两个中心点为{B,D},样本被重新划分为{ A,B,E}和{C,D}两个簇。

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/8b7dfffde4.html