第三章 线性模型
3.1 基本形式
给定由d个属性描述的示例x=(x1;..xd),其中xi是在第i个属性上的取值。线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
f(x)=w1x1+w2x2+...+wdxd+b
一般用向量形式写成
f(x)=w^T+b
其中向量w和b,由算法学得,然后模型就得以确定。
3.2 线性回归
一元多项式回归主要应用最小二乘法,通过均方误差最小化来进行模型求解。在线性回归中,试图找到一条直线,使得所有样本到直线的欧氏距离之和最小。
一元多项式线性回归
主要使用polyfit函数进行拟合,使用polyval函数产生图像。
使用polyfit函数拟合
polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线拟合原理。曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。
调用方法:polyfit(x,y,n)。用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为行向量、矩阵,y为源数据点对应的纵坐标,可为行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。
使用polyval函数获得预测值
polyval作用是用多项式系数和x向量求y向量,使用方法是返回n次多项式p在x处的值。
具体代码如下:
%使用polyfit和polyval函数进行线性拟合回归。
clear;
clf;
clc;
%使用如下测试数据
x=1:1:5;
y=[10 15 35 40 50];
plot(x,y,'k*');
axis([0 6 0 60]);
hold on;
p1=polyfit(x,y,1); %线性,维度为1
plot(x,polyval(p1,x));
结果如下
其他维度同理,修改维度参数可以得到其他维度的拟合图像。
对于一些非线性的情况,比如指数尺度,可以通过ln(x)等方法获得对应的线性回归模型。
3.3 对数几率回归
面对分类任务,只需找一个单调可微函数将分类任务的真实标记y与线性回归模型联系的预测值起来即可。
线性模型产生的预测值是实值,需要将实值转化为0/1值,最理想的是单位阶跃函数。
单位阶跃函数不连续,可以使用对数几率函数代替它。
3.4 线性判别法
LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
上图中国提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。以上就是LDA的主要思想了,当然在实际应用中,我们的数据是多个类别的,我们的原始数据一般也是超过二维的,投影后的也一般不是直线,而是一个低维的超平面。
3.5 多分类学习
多分类学习的基本思路是拆解法,即将多分类任务拆解为若干个二分类任务求解。
主要有三种拆分策略:
1.一对一(OvO)
OvO将这N个类别两两配对,产生N(N-1)/2个二分类任务。
通常来说开销较大,当类别很多时,效率得到提升。
2.一对其余(OvR)
每次将一个类别作为正类,其余类别作为负类。此时共有(N个分类器)。在测试的时候若仅有一个分类器预测为正类,则对应的类别标记为最终的分类结果。
3.多对多(MvM)
是指每次将一个类作为正类,其他类作为反类。
ECOC
ECOC(Error Correcting Output Codes,纠错输出码)作为输出表示,用于多分类学习任务。主要思想是,通过事先分别为kk类类别定义一串编码序列(code word)。在分类的时候,只需比较待分类样本与各串编码的差异程度(distance measure)。如下图,在Dietterich一文中,一般对于ECOC的大部分应用,其Code Word的每一位都有实际的含义,假设有一预分类样本为110001,则由Hamming distance距离可得,Class 4的距离最小,因此将其划分为Class 4。ECOC还有一个显著的优点就是能够纠错,若最小Hamming distance为d,则ECOC最少能纠正⌊d−12⌋⌊d−12⌋位的错误(即仍然将其划分为实际正确的类)。