Fork me on github

线性回归和逻辑回归

线性回归

线性回归是为了建立输入特征\(x = (x_1, \cdots, x_n)^T\) 和输出值y之间的线性关系,即:

\[y = w^T x + b \]

假设有一组训练数据,特征\(X = ({x^{(1)},\cdots,x^{(m)}})\),值\(\hat Y = ({\hat{y}^{(1)},\cdots,\hat{y}^{(m)}})\), 则上式扩展为矩阵形式

\[Y = w^T X + (b,\cdots,b)_{1 \cdot m}= \theta^T \tilde{X} \]

其中\(X\)的维度为n x m, \(Y\)的维度为1 x m, \(w\)的维度为n x 1, \(\theta\)的维度为n+1 x 1, \(\tilde{X}\)的维度为n+1 x m.
m为样本个数,n为样本特征维度.

接下去就是如何找到\(w,b\)这n+1个值,有不同的方法。

\(w,b\)最常见的方法就是最小平方法,即:找到某一组 \(\theta = (b, w_1, \cdots, w_n)^T\) , 使得拟合函数曲线(即\(y = w^Tx + b\))与观测值之差的平方和最小,那组\(w\)就是想要的参数,最小平方法表示成函数如下:

\[min \sum_{i=1}^m \frac{1}{2}(\hat{y}^{(i)} - y^{(i)})^2 = min \sum_{i=1}^m \frac{1}{2}(\hat{y}^{(i)} - w^T {x}^{(i)} - b)^2= min (\frac{1}{2}(\hat{Y} - \theta^T \tilde{X}) (\hat{Y} - \theta^T \tilde{X})^T) \]

最小化的对象称作损失函数,记为:

\[L(\theta) = \frac{1}{2}(\hat{Y} - \theta^T \tilde{X}) (\hat{Y} - \theta^T \tilde{X})^T \]

将损失函数对\(\theta\)求导可得:

\[\frac{\partial L(\theta)}{\partial \theta} = \frac{1}{2}\frac{\partial(\theta^T \tilde{X} \tilde{X}^T\theta)}{\partial \theta} - \frac{\partial(\theta^T \tilde{X} \hat{Y}^T)}{\partial \theta} + \frac{1}{2}\frac{\partial(\hat{Y} \hat{Y}^T)}{\partial \theta} \]

由于最后一项分子为常数,所以:

\[\frac{\partial L(\theta)}{\partial \theta} = \frac{1}{2}(\theta^T \tilde{X} \tilde{X}^T + \tilde{X} \tilde{X}^T\theta) - \tilde{X}\hat{Y}^T = \tilde{X} \tilde{X}^T\theta - \tilde{X}\hat{Y}^T \]

令上式为零可得:

\[\hat\theta = (\tilde{X} \tilde{X}^T)^{-1}\tilde{X}\hat{Y}^T \]

\(\hat\theta\)表示\(\theta\)的一个最佳估计。

logistic回归

Sigmoid函数

\[\forall z \in \mathbb{R}, g(z) = \frac{1}{1+e^{-z}} \in [0,1] \]

Step 1: Function Set

Logistic 回归是一个用于二分分类的算法。
线性回归中找到的线性关系系数\(w,b\), 满足\(y=w^T x + b\),得到的预测值y是连续值,所以是回归模型。

对于分类问题,我们要想让预测值y为离散值。比如二分类问题,我们有训练数据集\(T = [(x^{(1)},\hat{y}^{(1)}),\cdots,(x^{(m)},\hat{y}^{(m)})]\), 其中\(x^{(i)} \in \mathbb{R}^n, \hat{y}^{(i)} \in {0,1}\), 要想知道一个样本\(x\)属于y=1的概率为多少,即要找到办法求出\(P_{w,b}(y=1|x)\), 然后如果\(P_{w,b}(y=1|x)\geq 0.5\),输出类别y=1

结合sigmoid函数的性质,可以对\(z = w^T x + b\)应用上述sigmoid函数,得到能够预测概率的函数:

\[P_{w,b}(y=1|x) = \sigma(z) = \frac{1}{1+e^{-z}} = \frac{1}{1+e^{-(w^Tx+b)}} \]

同样

\[P_{w,b}(y=0|x) = \frac{e^{-(w^Tx+b)}}{1+e^{-(w^Tx+b)}} \]

我们的目标Function Set:

\[f_{w,b}(x) = P_{w,b}(y=1|x), \forall w,b \]

Goodness of a Function

有了函数集合,下一步是找到最好的function, 那么就得定义Goodness of a Function.

假设训练数据集\(T = [(x^{(1)},1),(x^{(2)},1),(x^{(1)},0),\cdots,(x^{(m)},1)]\)每一笔data都是由\(f_{w,b}(x) = P_{w,b}(y=1|x)\)产生的
那么Given a set of \(w,b\), what is its probability of generating the dataset T?

\[L(w,b) = f_{w,b}(x^{(1)})f_{w,b}(x^{(2)})(1-f_{w,b}(x^{(3)}))\cdots f_{w,b}(x^{(m)}) \]

最可能的\(\hat w, \hat b\)是那组使得\(L(w,b)\)最大的,即

\[\hat w, \hat b = arg max_{w,b}L(w,b) = arg min_{w,b}-\ln L(w,b) \]

\[- \ln L(w,b) = - [\ln f_{w,b}(x^{(1)}) + \ln f_{w,b}(x^{(2)}) + \ln (1-f_{w,b}(x^{(3)})) \cdots] = \sum_{i} -[\hat{y}^{(i)}\ln f_{w,b}(x^{(i)}) + (1-\hat{y}^{(i)})\ln(1-f_{w,b}(x^{(i)}))] \]

softmax regression

Softmax regression也叫multiclass logistic regression, 是将logistic regression从二分类任务拓展到多分类任务的算法。

测试代码

算例试用scikit-learn

代码实现

参考github

References

posted @ 2022-05-23 04:22  JIANG宇Alesvel  阅读(167)  评论(0编辑  收藏  举报