K近邻分类的算法实现文档格式.docx

上传人:b****4 文档编号:6437960 上传时间:2023-05-06 格式:DOCX 页数:24 大小:54.61KB
下载 相关 举报
K近邻分类的算法实现文档格式.docx_第1页
第1页 / 共24页
K近邻分类的算法实现文档格式.docx_第2页
第2页 / 共24页
K近邻分类的算法实现文档格式.docx_第3页
第3页 / 共24页
K近邻分类的算法实现文档格式.docx_第4页
第4页 / 共24页
K近邻分类的算法实现文档格式.docx_第5页
第5页 / 共24页
K近邻分类的算法实现文档格式.docx_第6页
第6页 / 共24页
K近邻分类的算法实现文档格式.docx_第7页
第7页 / 共24页
K近邻分类的算法实现文档格式.docx_第8页
第8页 / 共24页
K近邻分类的算法实现文档格式.docx_第9页
第9页 / 共24页
K近邻分类的算法实现文档格式.docx_第10页
第10页 / 共24页
K近邻分类的算法实现文档格式.docx_第11页
第11页 / 共24页
K近邻分类的算法实现文档格式.docx_第12页
第12页 / 共24页
K近邻分类的算法实现文档格式.docx_第13页
第13页 / 共24页
K近邻分类的算法实现文档格式.docx_第14页
第14页 / 共24页
K近邻分类的算法实现文档格式.docx_第15页
第15页 / 共24页
K近邻分类的算法实现文档格式.docx_第16页
第16页 / 共24页
K近邻分类的算法实现文档格式.docx_第17页
第17页 / 共24页
K近邻分类的算法实现文档格式.docx_第18页
第18页 / 共24页
K近邻分类的算法实现文档格式.docx_第19页
第19页 / 共24页
K近邻分类的算法实现文档格式.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

K近邻分类的算法实现文档格式.docx

《K近邻分类的算法实现文档格式.docx》由会员分享,可在线阅读,更多相关《K近邻分类的算法实现文档格式.docx(24页珍藏版)》请在冰点文库上搜索。

K近邻分类的算法实现文档格式.docx

),x/〔…,x,丫,不,可的Lp距离定义为

厶八兀•,有)=(£

#一尤

\/-I

这里卩才。

当P=2时,称为欧式距离,即

L2(xf-,xp=[^x/-x/

当"

=1时,称为曼哈顿距离,即”

Li(xp^.)=£

L/-x/

MI

当p=g时,它是各个距离坐标的最大值,即

Lx(xiyXj)=maxx--x'

j

2.1.3K值的选择

k值的选择会对k近邻法的结果产生重大影响。

如果选择较小的k值,就相当于用较小的邻域中的训练实例进行预测,“学习”的近似误差会减小,只有与输入实例较近的(相似的)训练实例才会对预测结果起作用。

但缺点是“学习”的估计误差会增大,预测结果会对近邻的实例点非常敬感。

如果近邻的实例点恰巧是噪声,预测就会出错。

换句话说,k值得减小就意味着整体模型变得复杂,容易发生过拟合。

如果选择较大的k值,就相当于用较大邻域中的训练实例进行预测。

其优点是可以减少学习的估计误差。

但缺点是学习的近似误差会增大。

这时与输入实例较远的(不相似的)训练实例也会对预测起作用,是预测发生错误。

K值得增大就意味着整体的模型变得简单。

如果k二N,那么无论输入实例是什么,都将简单的预测它属于在训练实例中最多的类。

这时,模型过于简单,完全忽略训练实例中的大量有用信息,是不可取的。

2.1.4分类决策规则

K近邻法中的分类决策规则往往是多数表决,即由输入实例的k个邻近的训练实例中的多数类决定输入实例的类。

多数表决规则有如下解释:

如果分类的损失函数为0-1损失函数,分类函数为

f:

R"

->

{q,C2,…,C*}

那么误分类的概率是

p(r^/(x))=i-p(r=/(x))

对给定的实例Vez,其最近邻的k个训练实例点构成集合Nk(x)。

如果涵盖NZ的区域的类别是勺那么误分类概率是

T工心宀)=1—£

工心=勺)

〉:

/(y=c)

要使误分类概率最小即经验风险最小,就要使W、'

小)1;

最大,所以多数

表决规则等价于经验风险最小化。

2.2K近邻算法

输入:

训练数据集

丁={(州,)'

1),(吃,『2),—,(亦川)}

其中,兀“匸川为实例的特征向量,川)=6心,…S为实例的类别,

i二1,2,…,N;

实例特征向量x;

输出:

实例x所属的类y。

(1)根据给定的距离度量,在训练集T中找出与x最邻近的k个点,涵盖这k个点的x邻域记作Nk(x);

(2)在NkW中根据分类决策规则(如多数表决)决定x的类别y:

y=argmax工/()〔.=1,2,N;

丿=12…,K

C,形自\:

(.丫)

该式中,I为指示函数,即当时I为1,否则I为0。

当k取1的特殊情况时,k近邻算法即为最近邻算法。

对于输入的实例点或

是特征向量X,其分类由其最邻近的点的分类决定。

第三章数据模拟和实例分析

3.1数据模拟

用MATLAB随机生成150组数据,类别为三类,编程如下#程序1:

Al=rand(5O,2);

holdonplot(Al(:

l),Al(:

2),T)A2=rand(50,2)+0.75;

holdon

plot(A2(:

l),A2(:

2),T)holdon

A3=rand(50,2)+l.5;

plot(A3(:

l),A3(:

2),'

.'

得到如图所示图像

图1模拟数据在坐标系中的分布

再用k近邻分类算法对这150组数据进行分类,取k二15近邻,程序如下

#程序2:

clearall

clc

y=importdata(,C:

\Users\adm\Desktop\test.txt,);

p=y(:

2:

3);

P二P:

Add=zeros(150J);

Add(l:

50,:

)=ones(50J);

Add(51:

100,:

)=2*ones(50J);

Add(101:

l50,:

)=3*ones(50J);

figure(l),plot(y(:

J),Add;

g.'

);

holdon

gridon;

count=0;

fori=l:

3

forj=1:

50

fork=l:

150

distance(k)=mse(p(:

k)-p(:

(i-1)*50+j));

%保存每个向量与所有训练样本之间的距离

end

[dlindex1]=sort(distance);

%对距离distance向量进行从小到大的排序num=[000];

form=l:

20%考察num,存放的是排序后distance前20个属于每一类别的个数

ifindexl(m)<

=50

num(l)=num(l)+l;

elseifindexl(m)<

=100

num

(2)=num

(2)+l;

else

num(3)=num(3)+l;

[d2class]=max(num);

%属于哪类的个数最多,就属于哪类,class即就是该向量所属的类别

ifi==class

count=count+l;

A((i-1)*50+j)=class;

%存放判断的结果

count

rate=count/150

figure

(2),plot(y(:

J),A;

r/);

%画图分类

程序运行后得到

count=143rate=0.9533

图•模拟数据原始分类

2.8

2.6

2.4

2

1.8

1.6

1.4

1.2

05

010015

2.2

 

图2K近邻方法得到的分类

实验结果分析

从图像和运行结果均可以看出,对上述模拟数据用取k=15的k近邻算法作出的分类正确率为95.33%,分类效果不错,符合预期。

改变k值,分别取k=1,5,10,15,20,30,40,60做测试,发现k取1的取值对分类结果没有明显的规律,当k=l时,即为最近邻的特殊情况,此时分类和原分类吻合,当k从1开始逐渐增大时,分类效果呈现起伏,这说明k值得选取对分类结果有一定的影响,程序执行如下表。

K值

衣2Iris数据集分类效果

正确率

错误

1

5

96%

4%

10

94.67%

5.33%

15

95.33%

4.67%

20

96.67%

3.33%

30

40

60

3.2实例分析

本文选取了著名的Iris数据集,Iris数据集共150组,有四个特征,分别是花萼和花瓣的长度和宽度,类别也是三类,取k=20,对前•文程序代码稍作修改如下。

#程序3:

y=impoitdata('

C:

\Users\adm\Desktop\test.txt'

5);

p=p:

figure(l),plot(y(:

J),Add,'

forj=1:

150distance(k)=mse(p(:

k)-p(:

(i-l)*50+j));

20%考察num,存放的是排序后distance前20

个属于每一类别的个数

elseifindex1(m)<

%属于哪类的个数最多,就属于哪类»

class即就是该向量所属的类别

l),A,TJ);

gridon;

程序执行后得到以下结果:

count=147rate=0.9800

图3原始数据的分类图像

图4K近邻分类算法所得到的分类图像

上述程序运行后的结果表明k取20时对Iris数据集具有较好的分类效果,从某种意义上说,k近邻算法对花的分类可以给出一定的借鉴意义。

改变k值后,分别取k=4,6,8,10,12,14,16,18,20,22,24,30时,发现对于Iris数据集k取&

22之间的值最为合适,分类正确率稳定,当k小于8或是大于22时,分类效果下降。

执行程序得到的结果如下表。

衣2分类正确率

错误率

4

6

97.33%

2.67%

8

98%

2%

12

14

16

18

22

24

第四章结语

通过在MATLAB软件上编写和运行K近邻算法的过程中,我们了解到K近邻法是有监督的学习方法,在分类阶段,k是一个用户定义的常数。

一个没有类别标签的向量(查询或测试点)将被归类为最接近该点的k个样本点中最频繁使用的一类。

该算法的优点是精度高、对异常值不敏感、无数据输入假定。

然而该方法山于其计算量较大,对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点,在计算速度上有待改进,但也正因为如此它只是适用于一些样本容量比较大的类域的自动分类,而那些样本容量较小的类域釆用这种算法则容易产生误分。

k-近邻算法的另一个缺陷是它无法给出任何数据的基础结构信息,因此我们也无法知晓平均实例样本和典型实例样本具有什么特征。

附录

Iris数据集包含150个样本,都属于莺尾属下的三个亚属,分别是山莺尾、变色莺尾和维吉尼亚莺尾,有四个特征被用作样本的定量分析,它们第一列和第二列是花萼的长度和宽度,第二列是花瓣的长度和宽度。

花呼长

花萼宽

花瓣长

花瓣宽

类别

5.1

3.5

0.2

4.9

4.7

3.2

1.3

4.6

3.1

1.5

L

3.6

5.4

3.9

1.7

0.4

7

3.4

0.3

9

4.4

2.9

0.1

11

3.7

4.8

13

4.3

1.1

5.8

17

19

21

23

25

26

27

28

29

31

32

33

34

35

36

37

38

39

41

42

43

44

45

46

47

48

49

51

52

53

54

00

5.7

3.8

5・1

3.3

0.5

1.9

5.2

4.1

5.5

4.2

4.5

2.3

0.6

5.3

6.4

6.9

6.5

第14页

56

57

58

59

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

6.3

6.6

2.7

5.9

6・1

5.6

6.7

6.2

2.5

6.8

6.1

第15页

7.1

2.1

7.6

7.3

7.2

5.1

7.7

7.4

7.9

第16页

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

6.1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2