Logistic Regression

  • 目的:分类还是回归?经典的二分类算法!
  • 机器学习算法选择:先逻辑回归再用复杂的,能简单还是用简单的
  • 逻辑回归的决策边界:可以是非线性的

Sigmoid函数

  • 公式:g(z)=11+ezg(z)=\frac{1}{1+e^{-z}}
  • 自变量取值为任意实数,值域为[0,1]
  • 解释:将任意的输入映射到看[0,1]区间,我们在线性回归中可以得到一个预测值,再将该值映射到Sigmoid函数中,这样就完成了由值到概率的转换,也就是分类任务
    逻辑回归算法原理推导
  • 预测函数:hθ(x)=g(θTx)=11+eθTxh_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}}
    其中θ0+θ1x1+,...,+θnxn=i=1nθixi=θTx\theta_0+\theta_1x_1+,...,+\theta_nx_n=\sum_{i=1}^n\theta_ix_i=\theta^Tx
    逻辑回归算法原理推导
  • 分类任务:P(y=1x;θ)=hθ(x)P(y=1|x;\theta)=h_\theta(x) P(y=0x;θ)=1hθ(x)P(y=0|x;\theta)=1-h_\theta(x)
    • 整合:P(yx;θ)=(hθ(x))y(1hθ(x))1yP(y|x;\theta)=(h_\theta(x))^y(1-h_\theta(x))^{1-y}
  • 解释:对于二分类任务(0,1),整合后y取0只保留(1hθ(x))1y(1-h_\theta(x))^{1-y},y取1只保留(hθ(x))y(h_\theta(x))^y

Logistic Regression

  • 似然函数:L(θ)=i=1mP(yixi;θ)=i=1m(hθ(xi))yi(1hθ(xi))1yL(\theta)=\prod_{i=1}^mP(y_i|x_i;\theta)=\prod_{i=1}^m(h_\theta(x_i))^{y^i}(1-h_\theta(x_i))^{1-y}

  • 对数似然:l(θ)=logL(θ)=i=1m(yiloghθ(xi)+(1yi)log(1hθ(xi)))l(\theta)=\log L(\theta)=\sum_{i=1}^m(y_i\log h_\theta(x_i)+(1-y_i)\log(1-h_\theta(x_i)))

  • 此时应用梯度上升求最大值,引入J(θ)=1ml(θ)J(\theta)=-\frac{1}{m}l(\theta)转换为梯度下降任务
    逻辑回归算法原理推导

  • 参数更新:θj:θjα1mi=1m(hθ(xi)yi)xij\theta_j:\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x_i)-y_i)x_i^j

  • 多分类的softmax: hθ(xi)=[p(yi=1xi;θ)p(yi=2xi;θ)...p(yi=kxi;θ)]=1j=1kejTxi[eθ1Txieθ2Txi...eθkTxi] h_\theta(x^i)= \left[ \begin{matrix} p(y^i=1|x^i;\theta) \\ p(y^i=2|x^i;\theta) \\ . \\ . \\ . \\ p(y^i=k|x^i;\theta) \end{matrix} \right] =\frac{1}{\sum_{j=1}^ke_j^{Tx^i}} \left[ \begin{matrix} e^{\theta_1^Tx^i} \\ e^{\theta_2^Tx^i} \\ . \\ . \\ . \\ e^{\theta_k^Tx^i} \end{matrix} \right]

  • 总结:逻辑回归真的很好很好用!

相关文章: