线性分类器值感知机算法和最小均方误差算法

合集下载

模式识别--第二讲 线性分类器

模式识别--第二讲 线性分类器

第 1 页第二讲 线性分类器一、 判别函数1、 决策论方法在模式识别中,如果根据模式特征信息,按照决策论的思路,以一定的数量规则来采取不同的分类决策,将待识别的模式划分到不同的类别中去,就称为模式识别的决策论方法。

在决策论方法中,特征空间被划分成不同的区域,每个区域对应一个模式类,称为决策区域(Decision Region )。

当我们判定待识别的模式位于某个决策区域时,就判决它可以划归到对应的类别中。

图1 决策区域需要注意的是:决策区域包含模式类中样本的分布区域,但不等于模式类的真实分布范围。

2、 判别函数如果特征空间中的决策区域边界(Decision Boundary )可以用一组方程0)( x i G来表示,则将一个模式对应的特征向量x 代入边界方程中的)(x i G ,确定其正负符号,就可以确定该模式位于决策区域边界的哪一边,从而可以判别其应当属于的类别,)(x i G 称为判别函数(Discriminant Function )。

判别函数的形式可以是线性的(Linear )或非线性(Non-linear)的。

第 2 页例如图2就显示了一个非线性判别函数,当G (x )>0时,可判别模式x ∈ω1;当G (x )<0时,可判别x ∈ω2。

图2 非线性判别函数非线性判别函数的处理比较复杂,如果决策区域边界可以用线性方程来表达,则决策区域可以用超平面(Hyperplane )来划分,无论在分类器的学习还是分类决策时都比较方便。

例如图3中的特征空间可以用两个线性判别函数来进行分类决策:当G 21(x )>0且G 13(x )>0时,x ∈ω2; 当G 13(x )<0且G 21(x )<0时,x ∈ω3; 当G 21(x )<0 且 G 13(x )>0时,x ∈ω1;当G 21(x )>0且G 13(x )<0时,x 所属类别无法判别。

作业2-线性分类器

作业2-线性分类器

end; for i=1:N1 x(1,i)=x1(1,i); x(2,i)=x1(2,i); y(i)=1; end; for i=(N1+1):(N1+N2) x(1,i)=x2(1,(i-N1)); x(2,i)=x2(2,(i-N1)); y(i)=-1; end; svm_struct=svmtrain(x,y,'Showplot',true); % 调用 svmtrain 函数对样本进行分类 % 分别创建训练样本矩阵和标号矩阵
x1(1,i)=-1.7+1.1*randn(1); x1(2,i)= 1.6+0.9*randn(1); x1(3,i)= 1; end; N2=400; for i=1:N2 x2(1,i)= 1.3+1.0*randn(1); x2(2,i)=-1.5+0.8*randn(1); x2(3,i)= 1; % 2 类400个训练样本,2维正态分布 % 1 类440个训练样本,2维正态分布
算法 2.
w(1)=rand(1); %对w 赋任意初值 w(2)=rand(1); w(3)=rand(1); p=0.001; %设置步长大小,一般在0~1 之间取值 for j=1:100 %j 为迭代次数,共迭代100 次 k=0; %k 是记录两类的样本误分类点的次数 n(j)=j; %n 记录迭代次数 for i=1:N1 xe=x1(:,i); %将1 类的各个样本值取出来,存入xe 中 if(w*xe<0) %1 类的迭代修正判断条件 w=w+p*xe'; %1 类的迭代修正公式,每次只修正一个样本的 %固定增量法 k=k+1; %记录1 类的误分类点总次数 end; end; for i=1:N2 xe=x2(:,i); %将2 类的各个样本值取出来,存入xe 中 if(w*xe>0) %2 类的迭代修正判断条件 w=w-p*xe'; %2 类的迭代修正公式,每次只修正一个样本的 %固定增量法 k=k+1; %记录1、2 类的误分类点总次数 end; end; en(j)=k; %en 记录每一次迭代中误分类点总次数 end; subplot(2,2,1); plot(n,en); %画图,横坐标为迭代次数,纵坐标为每次迭代 的误分类点总次数画图 t1=-5:1:5; %t1 范围是-5~5,步长为1 t2=(-w(1)*t1-w(3))/w(2); %求决策面 subplot(2,2,2);

线性分类器算法原理及应用

线性分类器算法原理及应用

线性分类器算法原理及应用随着人工智能技术的发展,机器学习已成为各行各业的热门话题,许多人也开始关注和了解各种机器学习算法。

其中,线性分类器算法是一种应用较为广泛的算法,本文将为大家介绍它的原理及应用。

一、线性分类器算法的基础知识1.1 算法简介线性分类器算法是一种常见的机器学习算法,主要用于二分类问题(即将数据分为两类)。

它的基本原理是利用线性函数将数据进行分类,其中具体的分类依据是判断某个数据点是否在计算后大于或小于一个阈值。

1.2 基本公式在线性分类器算法中,一个线性函数的基本公式如下所示:Y = b + w1X1 + w2X2 + … + wnXn其中,Y表示样本的类别,b表示偏置项,w1~wn表示权值,X1~Xn表示输入数据的特征值。

当Y大于某个阈值时该样本被归为一类,小于则归为另一类。

1.3 适用场景线性分类器算法适用于多种分类问题,如判断一封邮件是否为垃圾邮件、一个人是否会违约等。

它的应用非常广泛,并且准确率较高。

二、线性分类器算法的实现步骤2.1 数据处理在使用线性分类器算法前,我们需要对数据进行预处理。

首先,需要清洗数据,去除异常值和缺失值等。

然后,对数据进行标准化处理,将数据归一化,避免数据范围的差异性对结果的影响。

2.2 模型训练训练模型是线性分类器算法的核心步骤。

在训练模型前,我们需要将数据集分为训练集和测试集,以验证模型的准确率。

训练模型的过程就是不断调整权值和偏置项,根据损失函数来确定误差,并利用优化算法进行调整。

常见的优化算法包括随机梯度下降法和牛顿法等。

2.3 模型评估模型评估是判断模型是否准确的重要步骤。

在评估模型时,我们需要将测试集输入模型中,通过预测值与实际值的比较来确定模型的准确率。

模型的评估应基于多个指标,如精度、召回率、F1值等。

通过综合考虑这些指标来评估模型的准确性。

三、线性分类器算法应用案例3.1 垃圾邮件分类垃圾邮件是我们在日常生活和工作中难以避免的问题。

线性分类器

线性分类器
每一个超平面都由方向(由决定)和在空间的具体位置(由决定)来表示。选择超平面:使超平面在每一个方向上与类、类中各自最近的点距离相同。我们的目的是寻找一个方向使间隔尽可能大。但是每一个超平面都由一个比例系数决定,为了不受这个因素的限制,对所有的可选超平面采用合适的比例系数。
中心问题:
1.存在一个间隔,满足
tic
Yd = svmSim(svm,Xt); %测试输出
t_sim = toc;
Yd = reshape(Yd,rows,cols);
%画出二维等值线图
contour(x1,x2,Yd,[0 0],'m'); %分类面
hold off;
3.3支持向量机实验结果参见下图:
评价三种方法的方法???
for i=1:N
if((X(i,:)*w)*y(i)<0)
mis_clas=mis_clas+1;
gradi=gradi+rho*(-y(i)*X(i,:))';
end
end
w=w-rho*gradi;%最后推到的那个公式
end
s(1)=1.6; t(1)=-s(1)*w(1)/w(2)-w(3)/w(2);
s(2)=11.2; t(2)=-s(2)*w(1)/w(2)-w(3)/w(2);%确定直线需要的两个点
figure(2)
plot(X(1:45,1),X(1:45,2),'*',X(46:100,1),X(46:100,2),'o',s,t);%绘制分界线
axis([0,12,0,8]);
1.3感知器算法实验结果参见下图
其中是第次迭代的权向量估计,并且是一系列的正实数。但是在这里必须注意:不连续的点除外。从感知机代价的定义以及有小点可以得到,

线性分类器

线性分类器

⑴感知准则函数 (perceptron criterion function) 定义
J p ( A)
Yy A
(- AT Y )
式中yA为被权向量A误分样本集合。 只有yA=f (空集)时,Jp (A) = 0,此时的A,即为 所要的解向量A*。 这函数最早用在脑模型感知器上,故称感知准则 函数, 也是神经网络基础。 ⑵优化方法:梯度下降法 函数Jp (A) 在某点Ak处梯度是一个向量
⑵ 广义线性判别函数的线性可分性 • N个d维向量的线性二分总数为: d
i 例如 N 4, d 2, 则 D(4,2) 2 C3 14
i D( N , d ) 2 C N -1 i 0
2
其实可能的分法有2N=16种,2种不线性可分。
i 0
其可分概率为7/8。 • 线性可分的概率P(N,d) d D( N , d ) i P(N , d ) 21- N C N -1 2N i 0 d维空间的二分法线性划分,需要 计算(d + 1)个加权系数,因此用N /(d + 1) 为坐标作概率图。N /(d + 1) 2线性分类能力强。
i 1
y1 1 式中 Y y2 x y3 x 2
a1 (即c0 ) A a2 (即c1 ) a3 (即c2 )
这里的g(x)称为广义线性判别函数。Y称为增广 模式向量,A称为广义权向量。 • 高次判别函数都可变换化为广义线性函数。可 用线性函数解决非线性问题,但变换增加了维 数,如上例一维变三维。 • ATY不是x的线性函数,却是Y的线性函数。决策 面方程 ATY =0 在Y空间为通过原点的超平面。
T

感知机的基本原理和数学表达式

感知机的基本原理和数学表达式

感知机的基本原理和数学表达式感知机是一种简单而有效的线性分类算法,其基本原理是通过学习一组权重参数,将输入数据划分为两个不同的类别。

感知机模型的数学表达式可以描述为以下形式:y = sign(wx + b)其中,y表示样本的预测输出,w表示权重向量,x表示输入向量,b表示偏置项,sign()函数表示符号函数,即当wx + b大于0时,输出为1;当wx + b小于等于0时,输出为-1。

感知机的基本原理是通过不断调整权重参数,使得感知机能够正确地对样本进行分类。

具体来说,感知机的学习过程可以分为以下几个步骤:1. 初始化权重参数w和偏置项b,可以随机选择一组初始值。

2. 对于训练数据集中的每一个样本x,根据当前的参数w和b计算预测输出y。

3. 如果预测输出y与样本的真实标签不一致,则更新权重参数w和偏置项b。

更新的方式可以使用梯度下降法,即根据损失函数对参数进行调整,使得损失函数的值逐渐减小。

4. 重复步骤2和步骤3,直到所有的样本都被正确分类,或者达到一定的迭代次数。

感知机的学习过程可以用数学表达式来描述。

假设训练数据集为{(x1, y1), (x2, y2), ..., (xn, yn)},其中xi为输入向量,yi 为样本的真实标签。

对于每一个样本(xi, yi),我们定义损失函数L(w, b)为:L(w, b) = -∑(yi(wx + b))其中,∑表示对所有样本求和。

损失函数的目标是最小化误分类样本的数量。

为了调整参数w和b,我们需要计算损失函数对参数的梯度。

对于权重向量w的梯度∂L/∂w和偏置项b的梯度∂L/∂b,可以按照以下方式计算:∂L/∂w = -∑(yi * xi)∂L/∂b = -∑(yi)根据梯度的方向,我们可以更新参数w和b的值:w = w + η∂L/∂wb = b + η∂L/∂b其中,η表示学习率,决定了每次更新参数的步长。

感知机算法的收敛性定理表明,如果训练数据集是线性可分的,即存在一组参数使得所有样本都能被正确分类,那么经过有限次的迭代,感知机算法能够收敛到一个使得所有样本都被正确分类的参数组合。

第四章 线性分类器

第四章 线性分类器

(3)基本参量
1)在d维X空间 各类样本均值向量
1 mi = Ni
x∈ Ai
2)在一维Y空间 各类样本均值向量
1 ~ mi = Ni
T
∑x
i
i = 1,2
∑y
y∈Yi
i = 1,2
样本类内离散度矩阵
Si =
x∈ Ai
样本类内离散度
y∈Yi
∑ (x − m )(x − m )
i
~2 2 ~ Si = ∑ ( y − mi )
超平面H把特征空间分成两个半空间: Ω1 Ω2
w w T ⎛ ⎞ w w w T T ⎜ ⎟ g (x ) = w ⎜ x p + r + w0 = w x p + w0 + r =r w ⎟ w w ⎠ ⎝ w0 r= g ( x ) = w0 到超平面的距离: 若x为原点, w
特征空间某点x,表示成:x = x p + r
T
w ] :增广权向量
T
经过变换,维数增加一维,但分界面变成了通 过原点的超平面,给解决问题带来了方便。
(6)线性判别函数的设计



核心思想: 根据样本集去确定权向量w和w0 确定的方法: 首先要有一个准则函数,根据这个准则函数 去找出满足要求的尽可能好的结果 分类器的设计转化为求准则函数的极值 两个关键问题 寻找合适的准则函数 如何对准则函数求最优
n得到n个一维样本y的样本投影后分别为y寻找最好的投影方向即寻找最合适的变换向量w样本类内离散度矩阵总类内离散度矩阵样本类间离散度矩阵4准则函数及求解要求投影后各类样本尽可能分得开即两类均值之差越大越好
模式识别
第四章 线性分类器

人工智能线性回归和线性分类器实验总结

人工智能线性回归和线性分类器实验总结

人工智能线性回归和线性分类器实验总结在人工智能领域,线性回归和线性分类器是两个重要的算法。

在进行相关实验后,我总结了线性回归和线性分类器的实验结果如下:线性回归是一种用于寻找自变量与因变量之间线性关系的模型。

在我的实验中,我使用了一个数据集来训练线性回归模型,并对其进行了测试。

通过分析模型的性能指标,如均方误差(Mean Squared Error)和决定系数(R-squared),我发现线性回归模型在拟合数据方面表现良好。

该模型能够准确地预测因变量,并且误差较小。

然而,我也发现线性回归对于非线性关系的数据并不适用,因为它只能处理线性关系。

另一方面,线性分类器是一种用于将样本数据分为两个或多个类别的模型。

我在实验中使用了一个二分类问题的数据集,运用线性分类器进行分类。

通过计算准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1得分等指标,我发现线性分类器在我的实验中表现出了较高的分类性能。

它能够正确分类大多数样本,并具有较低的误分类率。

然而,我也注意到线性分类器对于非线性可分的数据集效果较差。

在这种情况下,我可以尝试使用其他非线性分类器,如支持向量机(SVM)或决策树。

通过这些实验,我认识到线性回归和线性分类器作为基础的算法在一些情况下是有效的。

它们提供了一种简单而快速的方法来理解和处理与线性相关的数据。

然而,我也认识到这些算法在处理非线性问题时存在局限性。

因此,在实际应用中,我们需要根据具体问题的特点选择合适的算法。

此外,在实验过程中,我还学到了一些关键的实验技巧。

首先,数据的预处理对于实验的成功非常重要。

特征的选择和数据的标准化可以改善模型的性能。

其次,模型的超参数选择也是一个关键因素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

线性分类器之感知机算法和最小平方误差算法1.问题描述对所提供的的数据“data1.m ”,分别采用感知机算法、最小平方误差算法设计分类器,分别画出决策面,并比较性能,并且讨论算法中参数设置的影响2.方法叙述2.1感知机算法1.假设已知一组容量为N 的样本集1y ,2y ,…,N y ,其中N y 为d 维增广样本向量,分别来自1ω和2ω类。

如果有一个线性机器能把每个样本正确分类,即存在一个权向量a ,使得对于任何1ω∈y ,都有y a T >0,而对一任何2ω∈y ,都有y a T<0,则称这组样本集线性可分;否则称线性不可分。

若线性可分,则必存在一个权向量a ,能将每个样本正确分类。

2.基本方法:由上面原理可知,样本集1y ,2y ,…,N y 是线性可分,则必存在某个权向量a ,使得⎪⎩⎪⎨⎧∈<∈>21y ,0y ,0ωωj j Ti i T y a y a 对一切对一切 如果我们在来自2ω类的样本j y 前面加上一个负号,即令j y =—j y ,其中2ω∈j y ,则也有y a T >0。

因此,我们令⎩⎨⎧∈∈='21y ,-y ,ωωj ji i n y y y 对一切对一切那么,我们就可以不管样本原来的类型标志,只要找到一个对全部样本ny '都满足y a T >0,N n ,,3,2,1⋯⋯=的权向量a 就行了。

此过程称为样本的规范化,ny '成为规范化增广样本向量,后面我们用y 来表示它。

我们的目的是找到一个解向量*a ,使得N n y a n T ,...,2,1,0=>为此我们首先考虑处理线性可分问题的算法。

先构造这样一个准则函数)()(y∑∈=ky Tp y aa J γδ式中kγ是被权向量a 错分类的样本集合。

y δ的取值保证因此()a J p 总是大于等于0。

即错分类时有0≤y a T (1ω∈y ),0≥y a T(2ω∈y ),此时的y δ分别为-1,1。

下一步便是求解使代价函数)(a J p 达到极小值时的解向量*a 。

这里我们采用梯度下降法。

首先对a 求梯度,这是一个纯量函数对向量的求导问题,不难看出∑∈=∂∂=∇ky p p y aa J a J γδ)()()(y梯度下降法的迭代公式为J k a k a k ∇-=+ρ)()1(,将上式代入得∑∈=+ky ky k a k a γδρy-)()1(这样,经过有限次修改,一定能找到一个解向量*a 。

其中算法在运行之前必须人为任意给定权向量)1(a ,而常量k ρ的选取也十分讲究。

2.2最小平方误差算法(MSE)感知算法是基于求解线性不等式组的算法,其目标是寻找权向量a ,使得满足n y a T>0的数目最大,从而是错分样本数数最小。

而不同的是,最小平方误差算法(以下简称MSE),是对准则函数引进最小均方误差这一条件而建立起来的,这种算法的主要特点是在训练过程中判定训练集是否线性可分,从而对结果的收敛性做出判断。

我们把不等式组变为如下形式:n y a T =n b >0n b 为给定的任意的正常数。

将上式联立方程组可以得到:b =Ya其中Y=[Ty 1Ty 2……Ty N ]T ,为N*d 的矩阵,Ty n 为规范化增广样本向量。

通常样本数N 大于样本维度d ,故Y 为长方形阵且一般列满秩。

实际上这是方程个数多余未知数的情况,一般为矛盾方程组无精确解。

因此定义误差向量:b -e Ya =并且定义误差准则函数∑=-===Nn n n T b a a J 1222s y ||b -Ya ||||e ||)()(然后寻找一个使得固定值J s (a)极小化的a 作为问题的解。

这就是矛盾方程组的最小二乘近似解,也就是所谓的伪逆解或者是MSE 解。

使用解析法求出伪逆解。

首先对)(s a J 求梯度:)()(b b a a J n Nn n n T -Ya Y 2y y 2)(T 1s =-==∇∑=令0)(s =∇a J 得a *=(Y T Y)-1Y T b ,这就是式子Y a =b 的MSE 解。

可以看出,)(s a J 有唯一的极小值0,发生在Y a =b 时。

准则函数的值等于n y a T和n b 误差的平方之和,此时1,2,,i N = ,我们的目标是使这个误差的平方和最小,因此称这一准则导出的算法为最小均方误差算法。

我们可以发现,当b=[N/N1,N/N1,N/N1……N/N2,N/N2……]T (N/N1有N1个,N/N2有N2个,N=N1+N2),MSE 解a *等价于Fisher 解。

证明略。

同样,当样本N 趋于无穷的时候,如果令b =u N ,其中u N 中元素均是1,则它以最小均方误差逼近贝叶斯判别函数。

3.算法实现3.1数据读取子函数function [x1,x2]=getts()%分别读取分类x1和x2 x1=zeros(45,2); x2=zeros(45,2);x1(1,1)=5.1418; x1(1,2)=0.5950; x1(2,1)=5.5519; x1(2,2)=3.5091; x1(3,1)=5.3836; x1(3,2)=2.8033; x1(4,1)=3.2419; x1(4,2)=3.7278; x1(5,1)=4.4427; x1(5,2)=3.8981; x1(6,1)=4.9111; x1(6,2)=2.8710; x1(7,1)=2.9259; x1(7,2)=3.4879; x1(8,1)=4.2018; x1(8,2)=2.4973; x1(9,1)=4.7629; x1(9,2)=2.5163; x1(10,1)=2.7118; x1(10,2)=2.4264; x1(11,1)=3.0470; x1(11,2)=1.5699; x1(12,1)=4.7782; x1(12,2)=3.3504; x1(13,1)=3.9937; x1(13,2)=4.8529; x1(14,1)=4.5245; x1(14,2)=2.1322; x1(15,1)=5.3643; x1(15,2)=2.2477; x1(16,1)=4.4820; x1(16,2)=4.0843; x1(17,1)=3.2129; x1(17,2)=3.0592; x1(18,1)=4.7520; x1(18,2)=5.3119; x1(19,1)=3.8331; x1(19,2)=0.4484; x1(20,1)=3.1838; x1(20,2)=1.4494; x1(21,1)=6.0941; x1(21,2)=1.8544; x1(22,1)=4.0802; x1(22,2)=6.2646; x1(23,1)=3.0627; x1(23,2)=3.6474; x1(24,1)=4.6357; x1(24,2)=2.3344; x1(25,1)=5.6820; x1(25,2)=3.0450; x1(26,1)=4.5936; x1(26,2)=2.5265;x1(27,1)=4.7902; x1(27,2)=4.4668; x1(28,1)=4.1053; x1(28,2)=3.0274; x1(29,1)=3.8414; x1(29,2)=4.2269; x1(30,1)=4.8709; x1(30,2)=4.0535; x1(31,1)=3.8052; x1(31,2)=2.6531; x1(32,1)=4.0755; x1(32,2)=2.8295; x1(33,1)=3.4734; x1(33,2)=3.1919; x1(34,1)=3.3145; x1(34,2)=1.8009; x1(35,1)=3.7316; x1(35,2)=2.6421; x1(36,1)=2.8117; x1(36,2)=2.8658; x1(37,1)=4.2486; x1(37,2)=1.4651; x1(38,1)=4.1025; x1(38,2)=4.4063; x1(39,1)=3.9590; x1(39,2)=1.3024; x1(40,1)=1.7524; x1(40,2)=1.9339; x1(41,1)=3.4892; x1(41,2)=1.2457; x1(42,1)=4.2492; x1(42,2)=4.5982; x1(43,1)=4.3692; x1(43,2)=1.9794; x1(44,1)=4.1792; x1(44,2)=0.4113; x1(45,1)=3.9627; x1(45,2)=4.2198;x2(1,1)=9.7302; x2(1,2)=5.5080; x2(2,1)=8.8067; x2(2,2)=5.1319; x2(3,1)=8.1664; x2(3,2)=5.2801; x2(4,1)=6.9686; x2(4,2)=4.0172; x2(5,1)=7.0973; x2(5,2)=4.0559; x2(6,1)=9.4755; x2(6,2)=4.9869; x2(7,1)=9.3809; x2(7,2)=5.3543;x2(8,1)=7.2704; x2(8,2)=4.1053;x2(9,1)=8.9674; x2(9,2)=5.8121;x2(10,1)=8.2606; x2(10,2)=5.1095; x2(11,1)=7.5518; x2(11,2)=7.7316; x2(12,1)=7.0016; x2(12,2)=5.4111; x2(13,1)=8.3442; x2(13,2)=3.6931; x2(14,1)=5.8173; x2(14,2)=5.3838; x2(15,1)=6.1123; x2(15,2)=5.4995; x2(16,1)=10.4188; x2(16,2)=4.4892; x2(17,1)=7.9136; x2(17,2)=5.2349; x2(18,1)=11.1547; x2(18,2)=4.4022; x2(19,1)=7.7080; x2(19,2)=5.0208; x2(20,1)=8.2079; x2(20,2)=5.4194; x2(21,1)=9.1078; x2(21,2)=6.1911; x2(22,1)=7.7857; x2(22,2)=5.7712; x2(23,1)=7.3740; x2(23,2)=2.3558; x2(24,1)=9.7184; x2(24,2)=5.2854; x2(25,1)=6.9559; x2(25,2)=5.8261; x2(26,1)=8.9691; x2(26,2)=4.9919; x2(27,1)=7.3872; x2(27,2)=5.8584; x2(28,1)=8.8922; x2(28,2)=5.7748; x2(29,1)=9.0175; x2(29,2)=6.3059; x2(30,1)=7.0041; x2(30,2)=6.2315; x2(31,1)=8.6396; x2(31,2)=5.9586; x2(32,1)=9.2394; x2(32,2)=3.3455; x2(33,1)=6.7376; x2(33,2)=4.0096; x2(34,1)=8.4345; x2(34,2)=5.6852; x2(35,1)=7.9559; x2(35,2)=4.0251; x2(36,1)=6.5268; x2(36,2)=4.3933; x2(37,1)=7.6699; x2(37,2)=5.6868; x2(38,1)=7.8075; x2(38,2)=5.0200; x2(39,1)=6.6997; x2(39,2)=6.0638; x2(40,1)=5.6549; x2(40,2)=3.6590; x2(41,1)=6.9086; x2(41,2)=5.4795; x2(42,1)=7.9933; x2(42,2)=3.3660; x2(43,1)=5.9318; x2(43,2)=3.5573; x2(44,1)=9.5157; x2(44,2)=5.2938; x2(45,1)=7.2795; x2(45,2)=4.8596; x2(46,1)=5.5233; x2(46,2)=3.8697; x2(47,1)=8.1331; x2(47,2)=4.7075; x2(48,1)=9.7851; x2(48,2)=4.4175; x2(49,1)=8.0636; x2(49,2)=4.1037; x2(50,1)=8.1944; x2(50,2)=5.2486; x2(51,1)=7.9677; x2(51,2)=3.5103; x2(52,1)=8.2083; x2(52,2)=5.3135; x2(53,1)=9.0586; x2(53,2)=2.9749; x2(54,1)=8.2188; x2(54,2)=5.5290; x2(55,1)=8.9064; x2(55,2)=5.3435;3.2感知机算法clear all;[x1,x2]=getts();%读取训练样本x1,x2w=[5.1 1.9 -34]';%设置权向量初值Dcost=[0;0;0];%用来存储代价函数的梯度和i=0;n=0;cost=1;%初始化循环条件while(cost~=0)i=i+1;cost=0;for j=1:45if (w'*[x1(j,:) 1]')>0Dcost=Dcost+[x1(j,1:2) 1]';% 用来存储代价函数的梯度和cost=cost+w'*[x1(j,1:2) 1]';%代价函数值endendfor k=1:55if (w'*[x2(k,:) 1]')<0Dcost=Dcost-[x2(k,1:2) 1]'; % 用来存储代价函数的梯度和cost=cost+w'*[x2(k,:) 1]'; %代价函数值endendw=w-0.001*Dcost/i;%权向量更新n=n+1;endfor i=1:45 r1(i)=x1(i,1);end;for i=1:45 r2(i)=x1(i,2);end;for i=1:55 r3(i)=x2(i,1);end;for i=1:55 r4(i)=x2(i,2);end;figure(1);plot(r1,r2,'*',r3,r4,'o');title('the training set');figure(2)x=0:0.01:12;y=-x*w(1)/w(2)-w(3)/w(2);%画决策面plot(r1,r2,'*',r3,r4,'o',x,y);axis([0 12 0 7]);3.2最小平方误差算法clear all;[x1,x2]=getts();X=zeros(100,3);Y=zeros(100,1);X(1:45,1:2)=x1;%获得Xa=Y中的增广样本矩阵X X(1:45,3)=1;X(46:100,1:2)=x2;X(46:100,3)=1;Y(1:45)=1;Y(46:100)=-1;w=(inv(X'*X))*X'*Y%得到伪逆解;for i=1:45 r1(i)=x1(i,1);end;for i=1:45 r2(i)=x1(i,2);end;for i=1:55 r3(i)=x2(i,1);end;for i=1:55 r4(i)=x2(i,2);end;figure(1);plot(r1,r2,'*',r3,r4,'o');title('the training set');figure(2)x=0:0.01:12;y=-x*w(1)/w(2)-w(3)/w(2);%画决策面plot(r1,r2,'*',r3,r4,'o',x,y);axis([0 12 0 7]);4.结果分析比较4.1感知机算法分类的结果Fig1.感知机算法分类的结果感知机分类器结果如上图所示,能够较好的将两类分开。

相关文档
最新文档