matlab 实现感知器,最小二乘法两种线性分类器

感知器算法

一、原理
引例:感知器就像一个老师在训一个学生,学生一件事做错了,就纠正他一下,如果下一次另一个事再做错了,就再
纠正一下,而对的就不管他,这样一直纠正,最后那个学生做什么事都是“完美的”。
感知器任务:通过已知的实例调节权重,使其能够预测出未知实例的结果。

符号表示:

if (w1*x1+w2*x2+…….>b) return true

else return false

由于b是常数,我们可以将b表示为-w0×X0,则可以表示为

if (w1*x1+w2*x2+…….+w0×x0>0) return true

else return false

训练方法:

当预测值等于我们期待的结果时: 什么也不用做

但当其小于的时候,说明我们增加的权值小了,赢补上一个正数数 例如所有xi××2的和数学表达推导如下:

w1*x1+a*x1*x1+w2*x2+a*x2*x2+…… 住:a为学习速率因子,会影响学习速率

w的更新值相当于wi=wi+a×xi
当其大于时候应改为减号,归结起来应为如下表达式:
wi=wi+a*(y-h(x))*xi
二、代码实现

function[w,b]=perceptionLearning(trainData,trainLabel,studyRate)
%trainData 训练数据
%trainLabel 训练数据的标签,取值为1和-1
%studyRate 感知器的学习率(0,1];
[nums,demens]=size(trainData);
%初始化w 和 b
w=zeros(1,demens);
b=0;
%训练过程
for i=1:nums
    flag=(trainData(i,:)*w'+b)*trainLabel(
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值