感知器算法----Matlab实现
2017-09-19 18:42
706 查看
data=[0 0 -1;0 1 1 ; -1 0 1 ; 1 1 -1]; X = data(:, [1, 2]); y = data(:, 3); m = size(X,1); plotData2(X,y); X = [ones(m,1) X]; error = 1; W=[0;0;0]; first = 1; tim=0; alph=0.1; hold on axis([-2 2 -2 2]); x1=-2:0.2:2; while error>0 error=0; for i = 1:m if ( ((W'*(X(i,:)'))*y(i) <= 0 )|| (first == 1) ) first=0; error=error+1; tim=tim+1; W = W + alph*(X(i,:))'*y(i); fprintf('%d\n',tim); if W(3)~=0 && W(2)~=0 y1=-(W(1)/W(3)+W(2)*x1/W(3)); plot(x1,y1,'-b'); end; end; end; end; if W(3)~=0 && W(2)~=0 y1=-(W(1)/W(3)+W(2)*x1/W(3)); plot(x1,y1,'r'); end; hold off function plotData2(X, y) figure; hold on; pos = find(y==1) ; neg = find(y==-1); fprintf('%d\n\n',pos); fprintf('%d\n',neg); % Plot Examples plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ... 'MarkerSize', 9); plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'r', ... 'MarkerSize', 7); hold off; end
效果是这样的:
权值为:
-0.100000000000000
-0.300000000000000
0.200000000000000
相关文章推荐
- 神经网络之感知器算法简单介绍和MATLAB简单实现
- matlab实现感知器学习算法
- Fisher线性判别与感知器算法Matlab实现
- Fisher线性判别与感知器算法Matlab实现
- 基于经典分割算法的图像内细胞识别与计数(matlab实现)(不定期更新完善)
- 智能算法之Matlab实现(1)——遗传算法(1)
- 模式识别经典算法——FCM图像聚类分割(最简matlab实现)
- 基于MATLAB的腐蚀膨胀算法实现
- MATLAB 定点算法的设计和实现
- 多值连通区域标记算法的matlab实现
- 区域生长算法(附MATLAB代码实现)
- 卡尔曼滤波简介及其算法实现代码(C++/C/MATLAB)
- matlab将孔隙空间充满毛细血管算法实现
- 感知器算法及其实现
- 椭球曲面拟合算法实现,matlab/C++
- 用matlab实现感知机学习算法,训练分类器并解决井字游戏
- python实现感知器算法详解
- 基于Retinex的图像去雾算法(MATLAB实现)
- 每天进步一点点------Alpha半透明图形叠加算法Matlab+Verilog实现
- PCA 降维算法详解 及 MATLAB实现。