一直想好好掌握机器学习,西瓜书断断续续翻了几遍,每次都是看完没多久就忘记了,对细节也是一知半解,一直没法形成知识系统。可能之前都只是读,但没有写,没有好好地进行总结,因此尝试着自己做一下知识归纳。
从本质来说,线性模型就是通过属性的线性组合来进行预测的模型,假设
x
i
x_{i}
xi是
x
\bm{x}
x的第i个属性,学习参数
w
\bm{w}
w和
b
\bm{b}
b,预测函数为
f
(
x
)
f(x)
f(x):
(1)
f
(
x
)
=
w
T
x
+
b
\begin{aligned} f(x)=\bm{w}^{T}\bm{x}+\bm{b} \tag{1} \end{aligned}
f(x)=wTx+b(1)
有时候为了方便,会给
x
x
x增加一个哑结点,即恒为1的输入属性,把
b
b
b也当做权值进行学习,此时的
x
\bm{x}
x为
(
x
1
,
x
2
,
.
.
.
.
,
x
n
,
1
)
(x_{1},x_{2},....,x_{n},1)
(x1,x2,....,xn,1),
w
\bm{w}
w为
(
w
1
,
w
2
,
.
.
.
.
,
w
n
,
b
)
(w_{1},w_{2},....,w_{n},b)
(w1,w2,....,wn,b),
f
(
x
)
f(x)
f(x)可以写作:
(2) f ( x ) = w T x \begin{aligned} f(x)=\bm{w}^{T}\bm{x} \tag{2} \end{aligned} f(x)=wTx(2)
线性模型可以用来做回归也可以做分类,在PCA降维和LDA线性判别中也是采用的线性模型,基本形式的SVM也可以看作是线性模型,可以说线性模型应用广泛,由于其形式简单,各类问题都会先从线性模型入手,然后再通过核函数等方法往非线性模型拓展。
首先要讨论的是线性回归模型,回归在个人理解就是在进行曲线拟合,这里一定要区分线性回归和逻辑回归,线性回归是用线性函数去拟合曲线,是真正意义上的回归,而逻辑回归实际上是分类,“逻辑回归”这个词似乎是有渊源的,但是这里就不追究了。
线性回归是试图学得
f
(
x
i
)
=
w
x
i
+
b
i
使
得
f
(
x
i
)
≈
y
i
\begin{aligned} f(x_{i})=wx_{i}+b_{i}使得f(x_{i}) \approx y_{i} \end{aligned}
f(xi)=wxi+bi使得f(xi)≈yi
要学得参数 w \bm{w} w和 b \bm{b} b就要先规定损失函数,回归的评价标准有均方误差(MSE),均方根误差(RMSE),平均绝对误差(MAE),R平方误差(R Square),这里贴出公式:
特别地,采用均方误差有很好的几何意义,它对应了常用的“欧氏距离”,基于均方误差最小化来进行模型求解的方法也成为最小二乘法,需要注意的是最小二乘法不止应用在线性模型中,只要基于均方误差最小化优化模型,都可以称作最小二乘法。用最小二乘法可以求到参数的闭式解(解析解),公式参照西瓜书P54~P55(涉及到矩阵求导)。