前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >感知器基础

感知器基础

作者头像
mwangblog
发布2019-03-04 17:33:29
3000
发布2019-03-04 17:33:29
举报
文章被收录于专栏:mwangblogmwangblog

假设集

一般算法

口袋算法

MATLAB程序

代码语言:javascript
复制
function [w, update_times] = my_perceptron(x, y, eta)
% 基本的感知器算法,在没有错分样本时停止
% x             输入  x向量
% y             输入  y向量
% eta           输入  w <- w + eta*yt*xt
% w             输出  权重
% update_times  输出  w更新次数
% 初始化参数和变量

[dataSetSize, xSize] = size(x);
w = zeros(xSize, 1);
result = zeros(dataSetSize, 1);
gen = 0;    
% 计算感知器分类结果,并与训练数据进行比较
for index = 1:dataSetSize    
    result(index) = mysign(w' * x(index, :)');
end
test = result - y;

% 如果有错分样本,则尝试纠正错误,直至没有错分样本

while ~isempty(find(test, 1))
    % 随机选择一个错分样本
    index_list = find(test);
    index = index_list(randi(length(index_list)));
    % 更新w
    xt = x(index, :);
    yt = y(index);
    w = w + eta * (yt * xt)';
    gen = gen + 1;

    % 重新计算感知器分类结果并与训练数据进行比较
    for index = 1:dataSetSize        
        result(index) = mysign(w' * x(index, :)');
    end
    test = result - y;
end

update_times = gen;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 mwangblog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 假设集
  • 口袋算法
  • MATLAB程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档