当前位置:
首页 >
机器学习 感知机算法_0(Matlab实现)
发布时间:2024/4/18
44
豆豆
生活随笔
收集整理的这篇文章主要介绍了
机器学习 感知机算法_0(Matlab实现)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
- 效果
- 代码
- Main
- Perceptron
- Sign
效果
代码
Main
x=[-1 7 13 9 14 14 11 -3 14 1 15 3 1]; y=[1 1 1 -1 -1 -1]';% size_x=size(x); b=ones(1,size_x(2));%初始权值 Error=0;%允许分类错误数量最大值 error=size_x(1);%当前一轮迭代分类错误数量 Step=0.1;%迭代步长while(error>Error)[b, error]=Perceptron(b, x, y, size_x(1), Error, Step); end%作图 plot(x(1:3,1),x(1:3,2),'*'); hold on; plot(x(4:6,1),x(4:6,2),'+'); X=-10:0.5:10; Y=(b(1,1).*X+b(1,3))/(-b(1,2)); plot(X,Y);Perceptron
function [b, error]=Perceptron(b, x, y, nums_x, Error, Step) %b:感知器当前权值 %x:自变量矩阵 %nums_x:x的规模 %y:目标值矩阵%当y=1, Func(b, x)>=0为分类正确 %当y=-1, Func(b, x)<0为分类正确 %分类正确时, 于是y*Func(b, x)>=0恒成立 %Sum_y*Func(b, x)越大, 分类误差越小 %于是可定义损失函数:-y*Func(b, x), 并求其最小值%分类错误数量 error=0;for i=1:nums_xif(y(i,1)*Sign(b, x(i,:))<0)error=error+1;b=b+Step*(x(i,:).* y(i,1));end end endSign
function [y] = Sign(b,x) %接收前向神经元的信号x %信号A转换为信号y %向后向神经元发送信号y%y=bn*xn+b(n-1)*x(n-1)+b(n-2)*x(n-2)+...+b1*x1+b0*1 %b=[bn, b(n-1),...,b1, b0] %x=[xn, x(n-1),...,x1, 1]%计算 y=2*(sum(b.*x)>=0)-1; end总结
以上是生活随笔为你收集整理的机器学习 感知机算法_0(Matlab实现)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 机器学习 K-means算法_0(Mat
- 下一篇: 鸢尾花分类_K近邻(分类通用 数据挖掘入