二分类问题

在二分类问题中,输出\(y\in \{0, 1\}\)。同样的,我们也可以用线性拟合来尝试解决二分类问题(如下图左),但数据点比较异常时,容易出现下图右这样的情况:

一般,在二分类问题中,我们会选用『logistic函数』来拟合(因为形状像S,又称为『sigmoid函数』): \[ h_\theta (x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} \] logistic函数\(g(z)=1/(1+e^{-z})​\)的形状如下: 可以定义 \[ \begin{align} P(y=1|x;\theta)& =h_\theta (x) \\\ P(y=0|x;\theta)& =1-h_\theta(x) \end{align} \] 于是: \[ P(y|x;\theta)=h_\theta(x)^y(1-h_\theta(x))^{(1-y)} \] 进行极大似然估计: \[ L(\theta)=P(y|x;\theta)=\prod_{i=1}^mP(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^mh_\theta(x^{(i)})^{y^{(i)}}(1-h_\theta(x^{(i)}))^{(1-y^{(i)})} \] 为了计算方便,定义 \[ \begin{align} l(\theta)&=log(L(\theta))\\\ &=\sum_{i=1}^mlog(P(y^{(i)}|x^{(i)};\theta))\\\ &=\sum_{i=1}^m(y^{(i)}\cdot log(h_\theta(x^{(i)}))+(1-y^{(i)})\cdot log(1-h_\theta(x^{(i)}))) \end{align} \] 利用梯度上升进行求解: \[ \theta := \theta + \alpha \nabla_\theta l(\theta) \] 其中 \[ \nabla_{\theta_j} l(\theta)=\frac{\partial}{\partial\theta_j}l(\theta)=\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))\cdot x_j^{(i)}\\\ \theta_j:=\theta_j+\alpha \cdot \sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))\cdot x_j^{(i)} \] 最终的梯度上升结果几乎与线性拟合中的梯度下降结果一样。