模式作业设计Word文档下载推荐.doc

上传人:b****9 文档编号:13047805 上传时间:2022-10-03 格式:DOC 页数:17 大小:901.50KB
下载 相关 举报
模式作业设计Word文档下载推荐.doc_第1页
第1页 / 共17页
模式作业设计Word文档下载推荐.doc_第2页
第2页 / 共17页
模式作业设计Word文档下载推荐.doc_第3页
第3页 / 共17页
模式作业设计Word文档下载推荐.doc_第4页
第4页 / 共17页
模式作业设计Word文档下载推荐.doc_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

模式作业设计Word文档下载推荐.doc

《模式作业设计Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《模式作业设计Word文档下载推荐.doc(17页珍藏版)》请在冰豆网上搜索。

模式作业设计Word文档下载推荐.doc

clc;

data=input('

请输入样本数据矩阵:

'

);

X=data(:

1);

Y=data(:

2);

figure

(1);

plot(X,Y,'

r*'

'

LineWidth'

3);

axis([0908])

xlabel('

x'

ylabel('

y'

holdon;

gridon;

m=size(data,1);

n=size(data,2);

counter=0;

k=input('

请输入聚类数目:

ifk>

m

disp('

输入的聚类数目过大,请输入正确的k值'

k=input('

end

M=cell(1,m);

fori=1:

k

M{1,i}=zeros(1,n);

Mold=cell(1,m);

Mold{1,i}=zeros(1,n);

%随机选取k个样本作为初始聚类中心

%第一次聚类,使用初始聚类中心

p=randperm(m);

%产生m个不同的随机数

M{1,i}=data(p(i),:

whiletrue

counter=counter+1;

第'

disp(counter);

次迭代'

count=zeros(1,k);

%初始化聚类C

C=cell(1,k);

C{1,i}=zeros(m,n);

%聚类

gap=zeros(1,k);

ford=1:

forj=1:

n

gap(d)=gap(d)+(M{1,d}(j)-data(i,j))^2;

end

[y,l]=min(sqrt(gap));

count(l)=count(l)+1;

C{1,l}(count(l),:

)=data(i,:

Mold=M;

disp('

聚类中心为:

fori=1:

disp(M{1,i});

end

聚类结果为:

disp(C{1,i});

sumvar=0;

E=0;

disp('

单个误差平方和为:

forj=1:

count(i)

forh=1:

E=E+(M{1,i}(h)-C{1,i}(j,h))^2;

end

end

disp(E);

sumvar=sumvar+E;

总体误差平方和为:

disp(sumvar);

%计算新的聚类中心,更新M,并保存旧的聚类中心

M{1,i}=sum(C{1,i})/count(i);

%检查前后两次聚类中心是否变化,若变化则继续迭代;

否则算法停止;

tally=0;

ifabs(Mold{1,i}-M{1,i})<

1e-5*ones(1,n)

tally=tally+1;

continue;

else

break;

iftally==k

1.5结果与分析

3

第1次迭代

22

74

36

00

11

63

73

37

46

57

10

7

20

第2次迭代

6.66673.3333

3.75006.5000

4

1.3333

3.7500

9.0833

程序以循环语句来实现算法中迭代的要求。

在对课本上图2.13所示的10个样本进行聚类时,考虑到实际应用中,需试探不同的K值和选择不同的聚类中心起始值,而题中K值已定,所以随机选取了k个样本作为初始聚类中心。

另一方面,这个程序不能生成聚类的结果图。

2.1题目

给出感知器算法程序框图,编写算法程序,解习题3-5,。

2.2算法原理

两类线性可分的模式类:

,设判别函数为。

其中,,。

d(X)应具有以下性质:

对样本进行规范化处理,即ω2类样本全部乘以(-1),则有:

下面是感知器的具体步骤:

(1)选择个分属于和类的模式样本构成训练样本集{,,},构成增广向量形式,并进行规范化处理。

任取权向量初始值W

(1),开始迭代。

括号中的1代表迭代次数k=1。

(2)用全部训练样本进行一轮迭代,计算的值,并修正权向量。

假设进行到第k次迭代时,输入的样本为,计算,分两种情况更新权向量:

①若0,说明分类器对的分类发生错误,权向量需要校正,且校正为:

,其中,c为校正增量系数,。

②若,表明分类正确,权向量不变,即。

可统一写为

(3)分析分类结果:

只要有一个错误分类,回到

(2),直至对所有样本正确分类,结束迭代。

此时的权向量即为算法结果。

2.3程序流程图

2.4MATLAB程序代码

disp('

感知器算法求解两类训练样本的判别函数'

Data1=input('

请输入第一类样本数据:

Data2=input('

请输入第二类样本数据:

W=input('

请输入权向量初始值W

(1)='

Expand=cat(1,Data1,Data2);

ExpandData1=cat(2,Data1,ones(4,1));

ExpandData2=cat(2,Data2.*-1,ones(4,1).*-1);

ExpandData=cat(1,ExpandData1,ExpandData2);

X=Expand(:

Y=Expand(:

Z=Expand(:

[ro,co]=size(ExpandData);

Step=0;

CountError=1;

whileCountError>

0;

CountError=0;

fori=1:

ro

Temp=W*ExpandData(i,:

)'

;

ifTemp<

=0

W=W+ExpandData(i,:

disp(W)

CounterError=CountError+1;

end

Step=Step+1;

disp(W)

figure

(1)

plot3(X,Y,Z,'

ks'

zlabel('

z'

f=@(x,y,z)W

(1)*x+W

(2)*y+W(3)*z+W(4);

[x,y,z]=meshgrid(-1:

.2:

1,-1:

1,0:

1);

v=f(x,y,z);

h=patch(isosurface(x,y,z,v));

isonormals(x,y,z,v,h)

set(h,'

FaceColor'

r'

EdgeColor'

none'

2.5结果与分析

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1