【Matlab】自编代码实现感知机
2017-07-13 12:57
344 查看
不用工具箱,只用基本语言从0实现感知机Perceptron。
手动实现以后,比以前看懂理论,理解要深刻很多。
下面放上代码,大家多看看也没坏处
手动实现以后,比以前看懂理论,理解要深刻很多。
下面放上代码,大家多看看也没坏处
%不用工具箱 %感知机 clear;clc;close m=100; p0=random('unif',-1,1,2,m); t=(2*p0(1,:)+p0(2,:))<0.25; eta=0.1 w0=[1,1];b0=[1];%初始化 w=[b0,w0]; p=[ones(1,m);p0]; plot(p0(1,t),p0(2,t),'.') hold on plot(p0(1,~t),p0(2,~t),'o') plot_point_1=[-(w(1)+w(3))/w(2),1]; plot_point_2=[-(w(1)-w(3))/w(2),-1]; h=plot([plot_point_1(1),plot_point_2(1)],[plot_point_1(2),plot_point_2(2)]); %% k=0 while k<30 for i=1:m y=(w*p(:,i)>=0); e=t(1,i)-y; w=w+eta*e*p(:,i)'; %缺点是eta不递减 plot_point_1=[-(w(1)+w(3))/w(2),1]; plot_point_2=[-(w(1)-w(3))/w(2),-1]; set(h,'xdata',[plot_point_1(1),plot_point_2(1)]) set(h,'ydata',[plot_point_1(2),plot_point_2(2)]) title(num2str(i)) drawnow pause(0.1) end %下面是算法停止条件 if k==30%条件1:超过最大迭代次数 break end %条件2:误差已经很小 %条件3:权重变化已经很小 k=k+1; end
相关文章推荐
- 感知机 MATLAB实现(数据+代码)
- 卡尔曼滤波简介及其算法实现代码(C++/C/MATLAB)
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(四)Matlab中滤波器HDL代码生成优化
- MATLAB中对一个矩阵的行(列)归一化为二范数是1的简洁代码:一句实现
- matlab中的开方sqrt用牛顿迭代法实现的代码
- 卡尔曼滤波简介及其算法实现代码(C++/C/MATLAB)
- 图像细化matlab代码实现
- MATLAB实现层次分析法计算权重的代码函数实现
- fourier transfrom 傅立叶变换代码实现(matlab语言)
- MFC中实现定时执行与提醒功能(自编代码)
- 基于PCA的人脸识别的Matlab实现代码
- 用matlab转换图片为C代码,实现液晶屏显示
- 用matlab实现感知机学习算法,训练分类器并解决井字游戏
- 灰度共生矩阵(GLCM) 及matlab代码实现
- 高斯混合概率假设密度滤波器 matlab代码实现
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(三)Matlab中滤波器的HDL代码生成
- MATLAB 感知机简单实现
- 感知机 python 代码实现 ----- 统计学习方法
- 灰度共生矩阵(GLCM) 及matlab代码实现
- LDA算法-matlab代码实现