• 线性回归和逻辑回归


    线性回归

    线性回归是为了建立输入特征\(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

  • 相关阅读:
    【一天一道兼容性】之——IE6下fixed失效
    【前端重构技能天赋】(三)——最终篇
    Putty中文乱码问题
    Cygwin Application initialization failed: no display name and no $DISPLAY environment
    c++中的string用法(二)
    在win7下面使用cygwin,并且安装使用git,以及git简明教程
    vi 一些命令(备忘,自己用的)
    对C++中string类型的总结
    ofstream和ifstream详细用法
    写第一个shell脚本,遇到的问题总结整理。
  • 原文地址:https://www.cnblogs.com/alesvel/p/16299841.html
Copyright © 2020-2023  润新知