机器学习吃瓜记-03
主要内容
西瓜书的第3章 线性模型
。
第3章 线性模型
线性模型Linear model
给定有d
个属性描述的示例\(x =
(x_1,x_2,...,x_d)\)
线性模型(Linear
model)是试图学得一个通过属性的线性组合来进行预测的函数。
模型公式
\[f(x) = w^Tx + b\]
目标是学得\(w = (w_1,w_2,...,w_d)\) 和
\(b\),模型就得以确定。
线性模型的优点在于有良好的可解释性(comprehensibility),是可以通过属性权重之和来表达函数值,权重分大小,也就代表某种属性在判断的时候重不重要。
通常有这么几种经典的线性模型,回归任务
、二分类任务
和多分类任务
。
1. 线性回归
线性回归 Linear regression
是试图学得一个线性模型以尽可能准确地预测实值输出标记。
线性回归的目标是
\[
f\left(x_{i}\right)=w x_{i}+b, \text { 使得 } f\left(x_{i}\right) \simeq
y_{i}
\]
关键在于如何衡量\(f(x)\)和\(y\)之间的差别,就要引入均方误差这么一个性能度量。
所以是要求得使均方误差最小化的\(w\)和\(b\)。
\[\begin{aligned}
\left(w^{*}, b^{*}\right) &=\underset{(w, b)}{\arg \min }
\sum_{i=1}^{m}\left(f\left(x_{i}\right)-y_{i}\right)^{2} \\
&=\underset{(w, b)}{\arg \min } \sum_{i=1}^{m}\left(y_{i}-w
x_{i}-b\right)^{2}
\end{aligned}
\]
均方误差的几何意义就是欧氏距离(Euclidean distance)。
所以基于均方误差最小化来进行模型求解的方法称为最小二乘法Least square method
。
在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
参数估计 parameter estimation
参数估计parameter estimation
也就是求使得均方误差最小的\(w\)和\(b\)。
\[E_{(w, b)}=\sum_{i=1}^{m}\left(y_{i}-w
x_{i}-b\right)^{2}\]
想要求\(w\)和\(b\)值,则分别对\(w\)和\(b\)求偏导。
\[\frac{\partial E_{(w, b)}}{\partial
w}=2\left(w \sum_{i=1}^{m} x_{i}^{2}-\sum_{i=1}^{m}\left(y_{i}-b\right)
x_{i}\right)\]
\[
\frac{\partial E_{(w, b)}}{\partial b}=2\left(m
b-\sum_{i=1}^{m}\left(y_{i}-w x_{i}\right)\right)
\]
令公式等于零,分别求得\(w\)和\(b\)值。
\[
w=\frac{\sum_{i=1}^{m} y_{i}\left(x_{i}-\bar{x}\right)}{\sum_{i=1}^{m}
x_{i}^{2}-\frac{1}{m}\left(\sum_{i=1}^{m} x_{i}\right)^{2}}
\]
\[
b=\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-w x_{i}\right)
\]
2.多元线性回归
为了方便把\(w\) 和 \(b\) 吸收入向量形式\(\hat{\boldsymbol{w}}=(\boldsymbol{w} ,
b)\)。
把数据集\(D\)表示为\(X\)
\[
\mathbf{X}=\left(\begin{array}{ccccc}
x_{11} & x_{12} & \ldots & x_{1 d} & 1 \\
x_{21} & x_{22} & \ldots & x_{2 d} & 1 \\
\vdots & \vdots & \ddots & \vdots & \vdots \\
x_{m 1} & x_{m 2} & \ldots & x_{m d} & 1
\end{array}\right)
\]
目标函数为
\[
\hat{\boldsymbol{w}}^{*}=\underset{\hat{\boldsymbol{w}}}{\arg \min
}(\boldsymbol{y}-\mathbf{X}
\hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X}
\hat{\boldsymbol{w}})
\]
求解
\[
\frac{\partial E_{\hat{\boldsymbol{w}}}}{\partial
\hat{\boldsymbol{w}}}=2 \mathbf{X}^{\mathrm{T}}(\mathbf{X}
\hat{\boldsymbol{w}}-\boldsymbol{y})
\]
令公式为零可得
\[
\hat{\boldsymbol{w}}^{*}=\left(\mathbf{X}^{\mathrm{T}}
\mathbf{X}\right)^{-1} \mathbf{X}^{\mathrm{T}} \boldsymbol{y}
\]
这时候如果\(X^TX\)为满秩矩阵(full-rank
matrix)或正定矩阵(positive definite matrix)可以的到唯一解。
但是往往现实中并不是满秩矩阵,所以会得到多个\(\hat{\boldsymbol{w}}\),这个时候就要选择哪一个解作为输出,常见的做法是引入正则化(regularization)项。
也就有了经常耳闻的L1正则化Lasso回归
和L2正则化Ridge回归
。
广义线性模型
广义线性模型generalized linear model
\[
y=g^{-1}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)
\]
\(g(\cdot)\)称为联系函数Link
function需要是单调可微的。
3.对数几率回归
想要使用线性模型进行分类任务,根据广义线性模型只需找到一个单调可微函数将分类任务的真是标记和线性回归模型的预测值联系起来。
二分类任务的输出是{0,
1},而线性回归的预测值是实值,所以最理想的是单位阶跃函数,但是单位阶跃函数并不连续,所以最好的替代函数是对数几率函数logistic function
。
4.线性判别分析
线性判别分析Linear Discriminant Analysis
的主要思想在于,把给定的训练样例集,设法将样例投影到一条直线上,使得同类的样例的投影点尽可能接近,异类样例的投影点尽可能远离。
最大化的目标
\[
\begin{aligned}
J &=\frac{\left\|\boldsymbol{w}^{\mathrm{T}}
\boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}}
\boldsymbol{\mu}_{1}\right\|_{2}^{2}}{\boldsymbol{w}^{\mathrm{T}}
\boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}}
\boldsymbol{\Sigma}_{1} \boldsymbol{w}} \\
&=\frac{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}}
\boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1}\right)
\boldsymbol{w}}
\end{aligned}
\]
定义 类内散度矩阵within-class scatter matrix
\[
\begin{aligned}
\mathbf{S}_{w} &=\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1} \\
&=\sum_{\boldsymbol{x} \in
X_{0}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)^{\mathrm{T}}+\sum_{\boldsymbol{x}
\in
X_{1}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}}
\end{aligned}
\]
定义 类间散度矩阵between-class scatter matrix
\[
\mathbf{S}_{b}=\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}}
\]
则最大化目标可以改写为
\[
J=\frac{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b}
\boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w}
\boldsymbol{w}}
\]
简单概括主要思想就是,尽可能达到类内更紧凑、类间更分散
的效果。
求解方法
:因为分子和分母都是关于\(w\)的二次项,所以解与\(w\)的长度没有关系,只与方向有关。
\[
\begin{array}{cl}
\min _{\boldsymbol{w}} & -\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b}
\boldsymbol{w} \\
\text { s.t. } & \boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w
\boldsymbol{}} \boldsymbol{w}=1
\end{array}
\]
由拉格朗日乘子法
\[
\mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w}
\]
\[
\mathbf{S}_{b}
\boldsymbol{w}=\lambda\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)
\]
\[
\boldsymbol{w}=\mathbf{S}_{w}^{-1}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)
\]
即可得到\(w\)。
5.多分类问题
遇到多分类问题的时候我们的基本策略为,利用二分类学习器来解决多分类问题。
即通过拆解法
,将多分类问题拆解为多个二分类问题。
- 拆分策略
- 一对一 OvO
- 一对多 OvR
- 多对多 MvM 常见技术ECOC纠错输出码
6.类别不平衡问题
前面的分类都是在
不同类别的训练样本数目相当
的前提下进行的。
但是现实中并不一定是这样的。
类别不平衡性处理的基本方法
再缩放rescaling,但是实际操作并不简单。
所以在技术上大体有三类做法
欠采样undersampling
代表算法 EasyEnsemble(Liu, 2009)过采样oversampling
代表算法 SMOTE(Chawlaet, 2002)阈值移动threshold-moving