看了一些介绍逻辑回归的文章,这里通过一个例子的贯穿做一下知识点的整合巩固,如有遗漏或不合理的地方欢迎讨论交流。
问题引入与模型建构
现有20个学生投入0-6个小时学习课程的记录,分析投入时间和是否通过考试的概率的关系。在这个问题中是否通过考试只有两种结果:通过和不通过。可以用虚拟变量1和0分别表示。我们用y代表已知的考试结果,x为已知的投入时间,发现其中还有一个隐藏变量:知识掌握程度,可以先设为z,假设z(x)线性变化,当然z(x)的具体表达式暂时未知,需要通过学习来获得。而对分类问题的预测其本质是建立在z(x)的基础上的。这一点很多文章并没有讲清楚,但对于算法的理解至关重要。
他们之间的关系是z(x),y(z)。同时选用sigmoid 函数作为合理的y(z)的关系。
模型构建
在介绍Logistic Regression之前我们先简单说一下线性回归,线性回归的主要思想就是通过历史数据拟合出一条直线,用这条直线对新的数据进行预测,线性回归可以参考我之前的一篇文章。
这里直接给出公式(这里简短插一句,我觉得应该写成X^T*Theta的形式,因为Theta才是主变量):
z ( x ) = b + w x = ( b w ) ( 1 x ) = Θ T X P r ( y = 1 ∣ X ; Θ ) = y ( z ) = h Θ ( z ) = 1 1 + e − z P r ( y = 0 ∣ X ; Θ ) = 1 − h Θ ( z ) z(x)=b+wx= \begin{pmatrix} b&w \end{pmatrix} \begin{pmatrix} 1\\ x \end{pmatrix}=\Theta^TX\\ {}\\ Pr(y=1|X;\Theta)=y(z)=h_{\Theta}(z)=\frac{1}{1+e^{-z}}\\ {}\\ Pr(y=0|X;\Theta)=1-h_{\Theta}(z)