机器学习——线性模型

一个离散属性的机器学习问题,转为分类或线性模型的关键就是怎么把这些离散值属性,如高矮,红绿用数值表现出来。通常来说,对于有序的属性,如{高、矮、胖},我们可以用{1,0.5,0}表示。若属性中不存在有序关系,我们用向量来表示,如“西瓜”,“黄瓜”,“南瓜”可以转化为(1,0,0),(0,1,0),(0,0,1)。
线性模型
y1=x11w1+x12w2+...+x1dwdy2=x21w1+x22w2+...+x2dwd.....ym=xm1w1+xm2w2+...+xmdwd y_{1}= x_{11}w_{1}+x_{12}w_{2}+...+x_{1d}w_{d}\\ y_{2}= x_{21}w_{1}+x_{22}w_{2}+...+x_{2d}w_{d}\\ .....\\ y_{m} = x_{m1}w_{1}+x_{m2}w_{2}+...+x_{md}w_{d}\\ y1=x11w1+x12w2+...+x1dwdy2=x21w1+x22w2+...+x2dwd.....ym=xm1w1+xm2w2+...+xmdwd

为便于分析,我们把b放到权向量里面。
w=[w1,w2,...,wd,b] w=[w_{1},w_{2},...,w_{d},b] w=[w1,w2,...,wd,b]

y=[y1,y2,...,ym] y=[y_{1},y_{2},...,y_{m}] y=[y1,y2,...,ym]

(x11x12...x1d1x21x22...x2d1...............xm1xm2...xmd1) \left( \begin{array}{ccccc} x_{11} & x_{12} & ... & x_{1d} & 1 \\ x_{21} & x_{22} & ... & x_{2d} & 1 \\ ... & ... & ... & ... & ... \\ x_{m1} & x_{m2} & ... & x_{md} & 1 \\ \end{array} \right) x11x21...xm1x12x22...xm2............x1dx2d...xmd11...1
注意:上面共有m个输入输出样本对,(x1,y1),(x2,y2)...(xm,ym)(x_{1},y_{1}),(x_{2},y_{2})...(x_{m},y_{m})(x1,y1),(x2,y2)...(xm,ym),每一组的输入有d个属性,如(x1,y1)(x_{1},y_{1})(x1,y1),它的含义是输入为(x11,x12...x1d)(x_{11},x_{12}...x_{1d})(x11,x12...x1d)时,输出为y1,构建出的线性回归模型是d+1维。

矩阵形式可以表示为:
y=XWT y=XW^{T} y=XWT
XTXX^{T}XXTX满秩,则易知WT=(XTX)−1XTyW^{T}=(X^{T}X)^{-1}X^{T}yWT=(XTX)1XTy
广义线性模型:将线性模型利用非线性映射函数g(.)映射到非线性模型上去,以便更好地逼近。
y=g−1(xTw+b) y=g^{-1}(x^{T}w+b) y=g1(xTw+b)
注意:g(.)线性可微

如对数线性回归:
lny=xTw+b lny=x^{T}w+b lny=xTw+b
对数几率回归(解决分类问题)
刚刚提出的线性模型可以解决回归问题,那么分类问题怎么解决呢?我们依旧可以构建一个线性模型,只是需要设置一个阈值,当xTw>Cx^{T}w>CxTw>C,为1类等等。
常用对数几率函数解决二类分问题:
y=11+e−z,z=xTw+b. y=\frac{1}{1+e^{-z}},z=x^{T}w+b. y=1+ez1z=xTw+b.
上式可以转化为:
lny1−y=xTw+b ln\frac{y}{1-y}=x^{T}w+b ln1yy=xTw+b
其中lny1−yln\frac{y}{1-y}ln1yy被称为对数几率,它反映了xxx作为正例的相对可能性。
线性判别分析(LDA )
该方法就是利用投影的方法,将不同分类的样本点投影到一条直线上,从而使类内距离小,类间距离大,而使分类效果更好。
在这里插入图片描述
类内距离:wTΣ0w+wTΣ0ww^{T}\Sigma_{0}w+w^{T}\Sigma_{0}wwTΣ0w+wTΣ0w
类间距离:∥wTμ0+wTμ1∥22\|w^{T}\mu_{0}+w^{T}\mu_{1}\|_{2}^{2}wTμ0+wTμ122
其中Σ0\Sigma_{0}Σ0Σ1\Sigma_{1}Σ1为协方差矩阵。
类内散度矩阵(SwS_{w}Sw)
Sw=Σ0+Σ1=∑xϵXi(x−μi)(x−μi)T,(i=0,1) S_{w}=\Sigma_{0}+\Sigma_{1}=\sum\limits_{x \epsilon X_{i}} (x-\mu_{i})(x-\mu_{i})^{T},(i=0,1) Sw=Σ0+Σ1=xϵXi(xμi)(xμi)T,(i=0,1)

类间散度矩阵(SbS_{b}Sb)
Sb=(μ0−μ1)(μ0−μ1)T S_{b}=(\mu_{0}-\mu_{1})(\mu_{0}-\mu_{1})^{T} Sb=(μ0μ1)(μ0μ1)T

准则函数J参考下式,J越大越好。

J=∥wTμ0+wTμ1∥22wTΣ0w+wTΣ0=wTSbwwTSww J=\frac{\|w^{T}\mu_{0}+w^{T}\mu_{1}\|_{2}^{2}}{w^{T}\Sigma_{0}w+w^{T}\Sigma_{0}}=\frac{w^{T}S_{b}w}{w^{T}S_{w}w} J=wTΣ0w+wTΣ0wTμ0+wTμ122=wTSwwwTSbw

多类分问题见西瓜书63页:
上述方法适合二类分,如果要进行多分类任务,我们引进全局散度矩阵。 **全局散度矩阵($S_{t}$):** $$ S_{t}=S_{b}+S_{w} $$

对于多类分问题,除了引进StS_{t}St外,SbS_{b}SbSwS_{w}Sw的计算方法也发生了改变,最后准则函数也会改变。
多分类学习
多分类学习的基本思路是拆解法,即将多个分类任务拆分成多个两类分任务。并为拆解出来的每一个两类分任务训练一个分类器,最后对分类器结果集成,得到多分类结果。
经典拆分策略:一对一(OvO),一对多(OvR),多对多(MvM)。
其中,OvO和OvR策略参考下图很容易清楚其思想内涵。
OvO和OvR示意图
MvM: 就是M个分类器将N个类别做M次划分,每次有类别有一部分正例和一部分反例,如f1分类器将C2划分为正例,C1、C3、C4划分为反例。该方法包括编码和解码,编码就是f1要对类别以及测试示例进行编码。解码就是根据类别与测试样例距离最小找出测试样例最终属于哪一个类别。
常用MvM技术为纠错输出码ECOC。
该编码分为二元和三元,二元只将各类分为正类和反类,三元可以有停用类,即分类时不使用该类。
在这里插入图片描述
以蓝框C1和蓝框测试样例为例讲述明氏距离和欧氏距离的计算。
海明距:0+1+1+1+0=30+1+1+1+0=30+1+1+1+0=3
欧氏距离:0+22+22+22+0=23\sqrt{0+2^{2}+2^{2}+2^{2}+0}=2\sqrt{3}0+22+22+22+0=23
对于二元ECOC码,最后根据欧式距离最小应将它分为C3类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellobigorange

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值