matlab实现感知机算法--统计学习小灶

 1 clear all;
 2 clc;
 3 %%
 4 %算法
 5 %输入:训练数据集T = {(x1,y1),(x2,y2),...,(xn,yn)};学习率η
 6 %输出:w,b;感知机模型f(x) = sign(w*x+b)
 7 %(1)选取初值w0,b0
 8 %(2)在训练集中选取数据(xi,yi)
 9 %(3)如果yi(w*xi+b)<=0
10 %                   w = w+η*yi*xi
11 %                   b = b+ηyi
12 %(4)转至(2),直至训练集中没有误分类点
13 %%
14
15 %初始化
16 X = [3 3 1;4 3 1;1 1 -1];%训练集
17 [sn,fn] = size(X);
18 y = X(:,fn);%标签
19 X(:,fn) = [];
20 fn = fn-1;
21 w = zeros(2,1);
22 b = 0;
23 yta = 1;%参数η
24 ok = 0;
25 %%
26 %循环体
27 while(ok==0)%%%不断的扫描直到所有的实例都满足无误分类点才结束
28     for i = 1:sn
29         if (y(i)*(w‘*X(i,:)‘+b)<=0)
30
31             w = w + yta*y(i)*X(i,:)‘
32             b = b + yta*y(i)
33         else
34             if(i == sn) ok=1;
35                 break
36             end
37       end
38     end
39 end
40
41 %%
42 %图示
43 figure(1)
44 plot(X(1,:),X(2,:),‘r.‘)
45 hold on
46 plot(X(3,:),‘*‘) %样本
47 xmin=min(X(:,1));
48 xmax=max(X(:,1));
49 % ymin=min(X(:,2));
50 % ymax=max(X(:,2));
51 xindex=xmin-1:(xmax-xmin)/100:xmax+1;
52 yindex=w(1)*xindex+w(2)*xindex+b;
53 plot(xindex,yindex)%分类面
时间: 2024-11-05 09:35:48

matlab实现感知机算法--统计学习小灶的相关文章

统计学习精要

统计学习精要(The Elements of Statistical Learning)课堂笔记系列 Posted at January 2nd, 2014 Filed under 课程教材:The Elements of Statistical Learning http://www-stat.stanford.edu/~tibs/ElemStatLearn/ 授课人:复旦大学计算机学院 吴立德教授 分节课堂笔记: 统计学习精要(The Elements of Statistical Lear

【统计学习】随机梯度下降法求解感知机模型

1. 感知机学习模型 感知机是一个二分类的线性分类问题,求解是使误分类点到超平面距离总和的损失函数最小化问题.采用的是随机梯度下降法,首先任意选取一个超平面w0和b0,然后用梯度下降法不断地极小化目标损失函数,极小化过程中不是一次使所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降.假设误分类点集合M是固定的,那么损失函数L(w,b)的梯度: 随机选取一个误分类点,对w和b进行更新: 其中n是步长,又称为学习率(learning rate),这样通过迭代可以使损失函数L(w,b)不

分布式计算、统计学习与ADMM算法

在整理旧电脑时,才发现13年下半年电脑里有不少残文.老师说,东西搁下了再拿起来花费的时间和之前可能差不多.我一眼看过去这篇关于分布式计算的文章,貌似还真的没有了当时理解的深度和感觉.当时还想利用ADMM算法,把统计中常见的带惩罚的高维问题在此框架下用R重写一下,但是中途多种事情一耽搁,就早已抛之脑后.看来任何事情,真的还是需要坚持,哪怕拨点时间都是好的.先把一篇残文扔出来祭奠下过去的13年吧.公式多文字长,慎入! 业界一直在谈论大数据,对于统计而言,大数据其实意味着要不是样本量增加n→∞,要不就

关于统计变换(CT/MCT/RMCT)算法的学习和实现

原文地址http://blog.sina.com.cn/s/blog_684c8d630100turx.html 刚开会每周的例会,最讨厌开会了,不过为了能顺利毕业,只能忍了.闲话不多说了,下面把上周学习的一个简单的算法总结一下,以备后面写毕业论文的时候可以参考一下. 一.Census Transform(CT)算法的学习 Census Transform 算法是Ramin Zabih 和 John Woodfill 于1994年在他们的论文<Non-parametric LocalTransf

《统计学习》——感知机

<统计学习>--感知机 本文不是像网上大多数的博文那样,洋洋洒洒的写一大篇文章,只是记录下学习机器学习的一些总结与心得,志在总结与和同道中人一起讨论,分享各自的想法. 1.何为感知机? 我们在学习机器学习的时候,基本都是从感知机开始的,为什么?因为它的思想较为易懂和容易实现,而且对于一般的问题(如二分类问题),效果也很好.感知机是神经网络和支持向量机SVM的基础,也被称为"单层神经网络". 感知机是二分类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,定义为+1

(转)统计学习-2 感知机知识准备(模型类型、超平面与梯度下降法)

判别模型与生成模型 前面也有过介绍,回顾一下,判别模型的意思就是它不关心数据是怎么产生的,不关心数据之间有何概率关系,它只关心数据之间有什么不同,这种不同会造成什么结果.比如说给你一堆水果,让你把它们中相同种类的放在一个篮子里,判别模型的话,我们直接通过分辨两个果子之间的差别,是黄的还是红的,是大的还是小的来分类,而如果是生成模型,那么我们就需要学习水果的品种,认识水果,那么就可以这样,哦,这个果子看上去更像苹果,那么它就是苹果啦来分类. 从数学的角度来讲,判别模型直接学习条件概率模型 P(Y|

感知机算法(MATLAB)

感知机算法属于比较简单的分类器算法,但是跟逻辑回归和支持向量机一样属于构建分类超平面. 不同的是感知机采用分错的样本与分类超平面的距离作为损失函数,下面的算法基于随机梯度下降法,采用异步方式达到收敛状态 function [w,b]=perceptionLearn(x,y,learningRate,maxEpoch) % Perception Learn Algorithm % x,y 一行为一个样本,y取值{-1,+1} [m,n]=size(x); w=zeros(n,1); b=0; fi

统计学习方法一:基础

对统计学习方法中的基础概念和理论做一个总结.逐步更新. 内容摘自<统计学习方法>第一章,第一章内容基本全是重要内容,因此此篇部落格算是一个加入了自己理解思路的读书笔记. 一.统计学习方法包含哪几种? 监督学习:用于学习的数据集都是输入\输出数据对(有标记的样本),学习的任务是找到输入与输出的对应规则.主要用于分类.标注.回归分析. 非监督学习:用于学习的数据集只有输入(未标记的样本),学习的任务是对于数据进行分析,找到输出.主要用于聚类. 半监督学习:是监督学习和非监督学习的结合,它主要考虑如

统计学习的相关定义

1. 什么是统计学习? 统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科.具有以下特点: (1)以计算机和网络为平台:(2)以数据为对象,数据驱动的学科:(3)目的是对数据进行预测和分析:(4)以方法为中心,统计学习方法构建模型并应用模型进行预测和分析:(5)概率论.信息论.计算理论.最优化理论及计算机学习的交叉学科. 统计学习方法的步骤: (1)得到一个有限的训练数据集合:(2)得到包含所有可能的模型的假设空间,即