线性分类器设计
线性分类器设计是机器学习和模式识别领域的重要组成部分,对于数据“data1.m”来说,分别采用感知机算法、最小平方误差算法、线性SVM算法设计分类器,分别画出决策面,并比较性能。
1. 感知机算法
感知机算法是一种简单的线性分类器设计算法,其目标是找到一个超平面,使得所有训练样本的分类是正确的。感知机算法的成本函数定义为J(w)=∑x∈Y(δxwTx),其中Y是训练向量的子集,δx是变量,定义为当x∈w1时,δx=-1;当x∈w2时,δx=±1。为了计算出代价函数的最小迭代值,利用梯度下降方法设计迭代算法,即w(t+1)=w(t)−ρt∂J(w)∂w。
在感知机算法中,需要注意不连续的点除外。从感知机代价的定义以及有小点可以得到,∂J(w)∂w=∑x∈Yδxx。最后得到,w(t+1)=w(t)−ρt∑x∈Yδxx。这算法称为感知器算法,并且它的结构十分简单。
1.2 感知器仿真程序
感知器仿真程序的核心环节是t1=[x1;x2]; % 所有样本点的矩阵形式,y=[ones(45,1);-ones(55,1)]; % 45 个 1, 55 个-1,X=[t1 ones(100,1)];%扩充矩阵 X,其中行是向量的转置[l,N]=size(X');%plot(X(1:100,1),X(1:100,2),'o'),max_iter=10000; %最大训练次数,rho=0.05;w=[1;1;0];iter=0;misd_clas=N; %设置参数。
1.3 感知器算法实验结果
感知器算法的实验结果见下图。
2. 最小平方误差算法
最小平方误差算法是一种线性分类器设计算法,主要思想是:给定一个向量x,分类器的输出将wTx是(通过向量扩展提供阈值),期望输出描述为 y(x)≡y=±1。计算出权向量,使期望值和真实的输出值之间的均方误差(MSE)最小化。均方最优权向量为线性方程组的解,条件是相关矩阵是可以转置的。
误差平方和估计定义:2J(w)=∑i=1N(yi−xiT w)2≡∑i=1Nei2。对于所有已知训练特征向量的期望输出(在 2 类情况中是±1)和实际输出之间的误差进行累加,而不是计算均值。
用这种方法,可以减少对概率密度函数信息的需求,定义式对w的最小化,结果为,∑i=1Nxi(yi−xiT ^w)=0=¿(∑i=1Nxi xiT)^w=∑i=1N(xi yi)。为了求出数学公式,定义:X=[x1Tx2TxNT]=[x11x12x1lx21x22x2lxN 1x N 2xNl], y=[y1y2yN]。则,∑i=1Nxi xiT=XT X而且,∑i=1Nxi yi=XT y。因此,上式可以表示为,(XT X )^W=XT y=¿ ^w=(XT X)−1 XT y。
因此,可以通过解线性方程来获取最优权向量。矩阵 XT X是样本相关矩阵。矩阵X+¿ ≡(XT X)−1 XT y是最小平方误差算法的核心公式。
线性分类器设计是机器学习和模式识别领域的重要组成部分,感知机算法和最小平方误差算法是两种常用的线性分类器设计算法,它们的结构简单、易于实现,但是它们也存在一些缺陷,例如感知机算法需要注意不连续的点除外, 最小平方误差算法需要计算矩阵 XT X的逆矩阵。