- 机器学习笔记:线性模型
- 3 线性模型
- 3.1 基本形式
- 3.2 线性回归
- 3.3 对数几率回归
- 3.4 线性判别分析(Linear Discriminant Analysis,简称LDA)
- 3.5 多分类学习 ( 多分类任务拆分策略 ) color{blue}多分类学习(多分类任务拆分策略) 多分类学习(多分类任务拆分策略)
- 3.6 类别不平衡问题
实际上就是我们熟悉的模型
f ( x ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + ⋯ + w d x d + b f(textbf{x})=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+cdots+w_{d}x_{d}+b f(x)=w1x1+w2x2+w3x3+⋯+wdxd+b
也可写成向量形式
f ( x ) = w T x + b f(textbf{x})=textbf{w}^{T}textbf{x}+b f(x)=wTx+b
当 w textbf{w} w和 b b b学得之后,模型确定。
3.2 线性回归利用最小二乘方法:
- 当
x
T
x
textbf{x}^{T}textbf{x}
xTx是满秩矩阵(正定矩阵)时
w ^ ∗ = ( x T x ) − 1 x T y hat{{textbf{w}}}^{*}=(textbf{x}^{T}textbf{x})^{-1}textbf{x}^{T}textbf{y} w^∗=(xTx)−1xTy - 当
x
T
x
textbf{x}^{T}textbf{x}
xTx不是满秩矩阵(正定矩阵)时,
通过引入正则项处理。
更近一步线性回归也可以指 y y y的函数与 x x x之间的关系
- 首先是
对数线性回归
(
l
o
g
−
l
i
n
e
a
r
r
e
g
r
e
s
s
i
o
n
)
color{blue}{对数线性回归}(log-linear regression)
对数线性回归(log−linearregression)
l n y = w T x + b lny=textbf{w}^{T}textbf{x}+b lny=wTx+b - 广义线性模型(generalized linear model)
y = g − 1 ( w T x + b ) y=g^{-1}(textbf{w}^{T}x+b) y=g−1(wTx+b)
其中 g ( ⋅ ) g(cdot) g(⋅)是联系函数
分类回归,实际上就是广义线性模型的特殊形式: 即寻找一个单调可微函数将分类任务的真实标记 y 与线性回归模型的预测值联系起来 color{blue}{即寻找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来} 即寻找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来
对数几率函数(logistic function): y = 1 1 + e − z y=dfrac{1}{1+e^{-z}} y=1+e−z1 (z取值 ( − ∞ , + ∞ ) (-infin,+infin) (−∞,+∞),y取值 ( − 1 , 1 ) (-1,1) (−1,1))
z = w T x + b z=textbf{w}^{T}textbf{x}+b z=wTx+b
则有: y = 1 1 + e − ( w T x + b ) y=dfrac{1}{1+e^{-(textbf{w}^{T}textbf{x}+b)}} y=1+e−(wTx+b)1
因此有: l n y 1 − y = w T x + b lndfrac{y}{1-y}=textbf{w}^{T}textbf{x}+b ln1−yy=wTx+b
如何预测? color{red}{如何预测?} 如何预测?
3.4 线性判别分析(Linear Discriminant Analysis,简称LDA)二分类问题,也称为“ F i s h e r Fisher Fisher判别分析”,但除此之外 L D A LDA LDA也可以用于多分类任务中,常被认为是经典的监督降维技术。
思想:将样例投影到一条直线上 ( y = w T x ) (y=w^{T}x) (y=wTx), 使得同类的点尽可能接近,异类的点尽可能远离 color{blue}使得同类的点尽可能接近,异类的点尽可能远离 使得同类的点尽可能接近,异类的点尽可能远离,再对新样本进行分类时将其投影到同一条直线上,在根据投影点的位置来确定新样本的类别。
X i , μ i , Σ i X_{i},mu_{i},Sigma_{i} Xi,μi,Σi分别是 i = { 0 , 1 } i={0,1} i={0,1}两类样本的示例集合、均值向量,协方差矩阵。
思想中蓝色部分所述即选取直线的方法,也就是通过什么来估计 w w w。
- 使得同类的点尽可能接近,即同类投影点的协方差尽可能小
w T Σ 0 w + w T Σ 1 w w^{T}Sigma_{0}w+w^{T}Sigma_{1}w wTΣ0w+wTΣ1w尽可能小 - 异类的点尽可能远离,即异类中心之间的距离尽可能大
∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^{T}mu_{0}-w^{T}mu_{1}||_{2}^{2} ∣∣wTμ0−wTμ1∣∣22尽可能小
所以综上所述:最大化 J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w J=dfrac{||w^{T}mu_{0}-w^{T}mu_{1}||_{2}^{2}}{w^{T}Sigma_{0}w+w^{T}Sigma_{1}w}=dfrac{w^{T}(mu_{0}-mu_{1})(mu_{0}-mu_{1})^{T}w}{w^{T}(Sigma_{0}+Sigma_{1})w} J=wTΣ0w+wTΣ1w∣∣wTμ0−wTμ1∣∣22=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw,即可满足上述条件。
为了简化上式定义了两个新的概念:
- 类内 ( w i t h i n ) (within) (within)散度矩阵: S w = Σ 0 + Σ 1 S_{w}=Sigma_{0}+Sigma_{1} Sw=Σ0+Σ1
- 类间 ( b e t w e e n ) (between) (between)散度矩阵: S b = ( μ 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可以改写为 J = w T S b w w T S w w J=dfrac{w^{T}S_{b}w}{w^{T}S_{w}w} J=wTSwwwTSbw
3.5 多分类学习 ( 多分类任务拆分策略 ) color{blue}多分类学习(多分类任务拆分策略) 多分类学习(多分类任务拆分策略)多分类学习的基本思路是:“拆解法”,即将多分类任务拆为若干个二分类任务求解。
具体来说(这里算是机器学习的核心思想,I think):先对问题进行拆分,然后为拆出来的每个二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。 关键在于如何对多分类任务进行拆解,以及如何对多个分类器进行集成。 color{blue}关键在于如何对多分类任务进行拆解,以及如何对多个分类器进行集成。 关键在于如何对多分类任务进行拆解,以及如何对多个分类器进行集成。
经典的拆分策略:
- 一对一(One vs. One,简称OvO)
- 训练阶段:N个类别两两配对,形成 C N 2 = N ! ( N − 2 ) ! 2 ! = N ( N − 1 ) 2 C_{N}^{2}=dfrac{N!}{(N-2)!2!}=dfrac{N(N-1)}{2} CN2=(N−2)!2!N!=2N(N−1)个二分类任务。即可训练 N ( N − 1 ) 2 dfrac{N(N-1)}{2} 2N(N−1)个分类器。 ( 这个应该是最复杂的吧 ) color{green}(这个应该是最复杂的吧) (这个应该是最复杂的吧)
- 测试阶段:将新样本放进 N ( N − 1 ) 2 dfrac{N(N-1)}{2} 2N(N−1)个分类器中,得到 N ( N − 1 ) 2 dfrac{N(N-1)}{2} 2N(N−1)个分类结果,最终结果可以通过投票法产生。
- 一对其余(One vs. Rest,简称OvR)
- 训练阶段:N个类别中,每次将一个类作为正类,其余作为反类来训练,形成N个二分类任务即可训练N个分类器。 ( 相对来说分类器比上面的少 ) color{green}(相对来说分类器比上面的少) (相对来说分类器比上面的少)
- 测试阶段:若仅有一个分类器预测为正类,则对应的类别标记为最终分类结果;若多个分类器预测为正类,则考虑分类器中预测置信度及选择置信度最大的类别标记为分类结果。
对比
color{purple}对比
对比:OvR需要N个分类器,OvO需要
N
(
N
−
1
)
2
dfrac{N(N-1)}{2}
2N(N−1)个分类器,OvR训练时间更长,OvO储存开销和测试时间更大。
在预测性能上两者相差不大。
- 多对多(Many vs.Many,简称MvM)
- 训练阶段:MvM是每次将若干个类作为正类,若干个其他类作为反类。MvM的正反类构造必须有特殊的设计,不能随意选取。
- 常用选取技术“纠错输出码”(Error Correcting Output Codes,简称ECOC)
- 训练阶段:MvM是每次将若干个类作为正类,若干个其他类作为反类。MvM的正反类构造必须有特殊的设计,不能随意选取。
三种方法:
- 欠采样:EasyEnsemble
- 过采样:Smote
- 阈值移动:看书



