• 逻辑回归学习笔记


    逻辑回归

    线性回归不适合处理分类问题,因为用连续型函数逼近离散型函数不太靠谱。因此考虑如何修改线性回归方法使其适用于分类问题。

    现在给出\((x_1,y_1),(x_2,y_2)...(x_n,y_n),x_i \in R^k,y_i\in \{0,1\}\)

    对于\(w\in R^k,b\in R,f(x)=w^Tx+b\),那么怎么把它的值域限制在0和1呢?构造\(g:R\to (0,1)\),例如\(g(x)=\frac{e^x}{1+e^x}=\frac{1}{1+e^{-x}}\),复合函数\(h(x)=g(f(x))=\frac{1}{1+e^{-(w^Tx+b)}}\)

    引入概率论

    如果把x和y都看作随机变量,那么就有了联合分布以及条件分布的概念。\((x_i,y_i)\)满足联合分布,现在想要学习的就是\(P(y|x)\)以及\(P(x,y)\)

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

    简化记号:\(x=(1,x),w = (b, w)\)。则有:

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

    对于一个点而言,设其到超平面的距离为\(l\),则\(l=\frac{w^Tx}{||w||}\)\(P(y=1|x)\)有三种取值:

    \[P(y=1|x)=\left\{\begin{matrix}~1,w^Tx>>0\\ \frac{1}{2},w^Tx=0 \\ ~0,x^Tx<<0 \end{matrix}\right. \]

    极大似然估计,设\((x_i,y_i)\)独立同分布,\(P(x_i,y_i)=P(y_i|x_i)P(x_i)=P(y_i=1|x_i)^{y_i}P(y_i=0|x_i)^{1-y_i}P(x_i)\)。注意上面的前两项最终只会取一项。

    似然函数可以写为:\(\Pi_{i=1}^nP(x_i,y_i)=\Pi_{i=1}^n[P(y_i=1|x_i)^{y_i}P(y_i=0|x_i)^{1-y_i}]·\Pi_{i=1}^nP(x_i)\)

    变成求解\(argmax_w\Pi_{i=1}^n[P(y_i=1|x_i)^{y_i}P(y_i=0|x_i)^{1-y_i}]=argmax_w[\Pi_{y_i=1}\frac{1}{1+e^{-w^Tx_i}}][\Pi_{y_j=0}\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}}]\)

    取对数可以让乘积变成求和,等价于\(argmax_w\Sigma_{y_i=1}log(\frac{1}{1+e^{-w^Tx_i}})+\Sigma_{y_i=0}log(\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}})=argmin_w -\Sigma_{y_i=1}log(\frac{1}{1+e^{-w^Tx_i}})-\Sigma_{y_i=0}log(\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}})\)

    损失函数:\(l(w)= -\Sigma_{y_i=1}log(\frac{1}{1+e^{-w^Tx_i}})-\Sigma_{y_i=0}log(\frac{e^{-w^Tx_j}}{1+e^{-w^Tx_j}})\)

    此时闭形式解是不存在的,只能使用数值解法。

    梯度下降

    一般来说,\(f:R^k\to R,\nabla f\)

    \(x_{n+1}=x_n-\eta \nabla f(x_n)\)

    对于若干个点的二分类问题,如果其完全可分,则可以用感知机进行求解,如果不完全可分,则可以用线性规划。现在则可以使用逻辑回归。

    如果对于\(w\in R^k,A=\{x_i|y_i(w^Tx_i)<0\},l(w)=|A|\),去找到\(w\)满足\(l(w)\)最小的话,最终结果可能非常不稳定。

    推广

    多元分类怎么办?

    给出\((x_i,y_i),y_i\in \{0,1,...m-1\}\)

    目标:\(w_1,w_2...w_{m-1}\)

    \(P(y_i=k|x_i)=\frac{e^{w_k^Tx_i}}{1+\Sigma_{k=1}e^{w_k^Tx_i}},k\neq0\)

    \(P(y_i=0|x_i)=\frac{1}{1+\Sigma_{k=1}e^{w_k^Tx_i}}\)

    引入非线性

    如果是二维空间中线性不可分,则可以尝试进行升维:

    \((x_1,x_2)\to (x_1,x_2,x_1^2,x_2^2,x_1x_2)\in R^5\)

    注意上面的参数都是线性的。

    对于感知机、线性规划、线性回归、逻辑回归都可以引入非线性项。

  • 相关阅读:
    在python中处理XML
    正则表达式
    python 反射
    python模块概况,json/pickle,time/datetime,logging
    python装饰器
    python3内置函数详解
    python函数,lambda表达式,三目运算,列表解析,递归
    python数据类型及其常用方法
    python3的文件操作
    初识Docker
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/16107593.html
Copyright © 2020-2023  润新知