利用MATLAB实现感知器算法

% 感知器算法
clc;clear;close all;
[Number,X11,X12,X21,X22]=textread('data2.txt','%f%f%f%f%f');
%% 数据预处理
One_mat=ones(10,1);
Aug_W1=[X11 X12 One_mat];
Aug_W2=-1.*[X21 X22 One_mat];
%Aug_W1=[Aug_W1;10,20,1];% 样本修改
Aug_Mat=[Aug_W1;Aug_W2];
%% 迭代分类
W1=[10;8;2];
c=1;
num=1;
times=0;
while(num>0)times=times+1;num=0;for i=1:size(Aug_Mat,1)Temp=W1'*Aug_Mat(i,:)';if Temp<=0W1=W1+c*Aug_Mat(i,:)';num=num+1;endenddisp(['迭代出现W*K<=0的次数= ',num2str(num)])% 迭代长时间不收敛则退出if times>100break;end
end
disp(['迭代次数= ',num2str(times)])
Final_W=W1;
disp(['判别函数为d(x)=',num2str(Final_W(1,1)),'x1',num2str(Final_W(2,1)),'x2+',num2str(Final_W(3,1))]);
% 画图
%'unit','normalized',unit测量单位,这些单位依据父容器进行归一化。
% 容器的左下角映射到 (0,0),右上角映射到 (1,1)。
figure('color','w','unit','normalized','Position',[0.1,0.1,0.8,0.8])
x01=linspace(-6,10,200);
y01=-Final_W(1,1)./Final_W(2,1)*x01-Final_W(3,1)./Final_W(2,1);
p1=plot(X11,X12,'r*','linewidth',2);hold on
p2=plot(X21,X22,'g*','linewidth',2);hold on
% p4=plot(10,20,'k*','linewidth',2);hold on
p3=plot(x01,y01,'b','linewidth',2);hold on
title('感知器算法分类结果')
legend([p1 p2 p3],'第一类','第二类','判别面','Location','southeast');
xlabel('X1');
ylabel('X2');% 判断类别
mx1=[2;8];
mx2=[-0.6;7];
my1=Final_W(1:2,1)'*mx1+Final_W(3,1);
my2=Final_W(1:2,1)'*mx2+Final_W(3,1);
if my1>0disp(['(',num2str(mx1(1)),',',num2str(mx1(2)),')','属于第二类'])
elsedisp(['(',num2str(mx1(1)),',',num2str(mx1(2)),')','属于第一类'])
end
if my2>0disp(['(',num2str(mx2(1)),',',num2str(mx2(2)),')','属于第二类'])
elsedisp(['(',num2str(mx2(1)),',',num2str(mx2(2)),')','属于第一类'])
end


原始样本 C=1迭代次数= 6 判别函数为d(x)=9.1x1-7x2+12


原始样本 C=0.1 迭代次数= 17 判别函数为d(x)=4.76x1-3.67x2+4.1


增加样本(10,20) C=0.1 迭代次数>100 训练失败 判别函数为d(x)=4.72x1-2.41x2+2.9

利用MATLAB实现感知器算法相关推荐

  1. 感知器算法及其Matlab实现

    感知器算法 感知器算法适用于线性可分情况,其数学表达式为:G(X)=WTXG(X)=W^TXG(X)=WTX 其中W是权向量,X是样本集合.感知器算法的问题在于如何求解权向量,我们可以通过已预分类的训 ...

  2. 模式识别+Matlab 感知器算法/LMSE算法

    更新时间:2020/5/20 一.分类器 1.基于赏-罚概念的感知器算法 算法原理简介: MATLAB代码实现: clc; clear all; %%初始化 %w1=[1 0 1;0 1

  3. MATLAB实现遥感图像分类——感知器算法

    前言 这些代码均是使用最基础的方法,通过一步一步迭代过程来理解算法的原理及实现过程,并不采用于实用工程,读者以此作为学习参考即可. 监督分类 监督分类的概念:首先使用训练样本学习一个分类器,再对测试样 ...

  4. 模式识别感知器算法matlab,模式识别第三章-感知器算法.doc

    模式识别第三章-感知器算法 模式识别第三章 感知器算法 一.用感知器算法求下列模式分类的解向量w: 将属于的训练样本乘以(-1),并写成增广向量的形式: ,,, ,,, 第一轮迭代:取, 因不大于0, ...

  5. 人工神经网络—感知器算法

    感知器算法 1. 回顾 2. 感知器算法 2.1 感知器算法的实现步骤 2.2 算法能停得下来吗? 2.3 基于增广向量的感知器算法 2.4 感知器算法收敛定理 3. 感知器算法收敛的MATLAB程序 ...

  6. 感知器算法(PLA)

    PLA全称是Perceptron Linear Algorithm,简称PLA 原理 <统计学习基础> 李航 感知器是二分类的现行分类模型,其输入为实力的特征向量,输出为实例的类别,取+1 ...

  7. 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题

    本文设计并实现了PerceptronLA.PseudoIA.LeastSM.LinearDA.KNN等五个算法类,以及DataProcessor的数据处理类.对感知器算法LDA.最小二乘法LSM的伪逆 ...

  8. 感知器算法(Perceptron)

    目录 引言 感知器 Matlab代码 效果展示 Python代码 效果展示 C++代码 效果展示 引言 本专栏第二个机器学习算法:感知器算法,全部代码通过Github下载,使用Matlab,Pytho ...

  9. 感知器算法原理详解及python实现

    感知器算法PLA 感知器算法是对一种分类学习机模型的称呼,属于有关机器学习的仿生学领域中的问题,由于无法实现非线性分类而下马.但"赏罚概念(reward-punishment concept ...

最新文章

  1. 描述最常用的5种http方法的用途_对不起,来晚了,这可能是设计模式讲的最通俗易懂的文章(收藏)
  2. 计算未来轻沙龙 | 顶会论文相继放榜,NLP领域有哪些最新进展?
  3. PostgreSQL归档配置及自动清理归档日志
  4. java swing 选项卡_java – 如何通过单击按钮在jTabbedPane中切换选项卡?
  5. 详解IOS开发应用之并发Dispatch Queues
  6. 什么时候都要记得:生活愈是往下,嘴角愈要上扬
  7. Java刷题面试系列习题(三)
  8. 安装linux ubuntu11系统时,应该如何选择键盘布局,在ubuntu上创建新键盘布局需要哪些步骤?...
  9. URP——后期处理特效——通道混合器Channel Mixer
  10. 高德地图api接口免费查询天气实战案例,axios请求查询天气,js版,【接上一篇微信测试号推送纪念日】
  11. 幸运大转盘抽奖(前端)
  12. 更改计算机网络密码,宽带密码修改后断网,怎样修改路由器密码
  13. 6、信息隐藏技术:空域下的信息隐藏
  14. 金九银十的你准备好了吗?Python 100道基础面试题先收藏!【附答案】
  15. Linux输出“Argument list too long”的解决方法
  16. 扭矩外特性计算最高车速
  17. 《炬丰科技-半导体工艺》利用超临界二氧化碳对MEMS进行刻蚀、冲洗和干燥
  18. JAVA 新手对于继承的理解
  19. 验证码与银行卡冻结计时系统
  20. 未能联系软件服务器,科技小知识:无法联系iphone软件更新服务器怎么回事?

热门文章

  1. [MySQL]存储过程与函数
  2. 【】每日360题,2019.11.06日18点财会类考试习题答案
  3. Ubuntu查看cuda版本
  4. 为什么过了35岁就不适合做技术了呢?
  5. GCC编译器优化选项分析及具体优化了什么
  6. SRT直播地址格式简介
  7. LeNet5网络结构分类CIFAR10数据集
  8. Ansible-fate集群三边部署(Host-guest-exchange)
  9. 成功解决VMware虚拟机中的please remove the installation medium then press enter
  10. Mesh BRep Shapes