【Machine Learning】逻辑回归 Logistic Regression
2013-08-11 13:38
405 查看
【公式】
![](https://img-blog.csdn.net/20130811133022921?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlvemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
s形函数:
![](https://img-blog.csdn.net/20130811133037546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlvemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
【Logistic regression cost function】
重申:cost function表示预测值和实际值的平方差
设
![](https://img-blog.csdn.net/20130811133127046?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlvemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
hθ(x)之前已经定义,由于y只能等于1或者0,则J(θ) 可变型如下
![](https://img-blog.csdn.net/20130811133154234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlvemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
那What should do Next is find out minθJ(θ)的 θ 值了
如前几章所讲,由求导求出最小的值
![](https://img-blog.csdn.net/20130811133213843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlvemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
【求导步骤】
先贴一张链式法则求三层以上的复合函数的导数:
![](https://img-blog.csdn.net/20130811133235359?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlvemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后J(θ)可以变形成
![](http://feature-space.com/en/post24=fd1d2.6fa4a.png)
![](http://feature-space.com/en/post24=197b0.6fa4a.png)
带入公式,再求导可以得出:
![](http://feature-space.com/en/post24=149f6.6fa4a.png)
设
![](http://feature-space.com/en/post24=5acde.6fa4a.png)
则有:
![](http://feature-space.com/en/post24=28e94.6fa4a.png)
![](http://feature-space.com/en/post24=00000.6fa4a.png)
将g1带入公式
![](http://feature-space.com/en/post24=5bcbd.6fa4a.png)
将k g(θ)带入
![](http://feature-space.com/en/post24=86535.6fa4a.png)
【Useful Function】
matlab中已经帮我们做好了优化 θ 的辅助函数,我们只要写好cost function并告诉系统就可以了
![](https://img-blog.csdn.net/20130811133320515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlvemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
jVal 是 cost function 的表示,比如设有两个点(1,0,5)和(0,1,5)进行回归,那么就设方程为hθ(x)=θ1x1+θ2x2;
则有costfunction J(θ): jVal=(theta(1)-5)^2+(theta(2)-5)^2;
在每次迭代中,按照gradient descent的方法更新参数θ:θ(i)-=gradient(i),其中gradient(i)是J(θ)对θi求导的函数式,在此例中就有gradient(1)=2*(theta(1)-5), gradient(2)=2*(theta(2)-5)。如下面代码所示:
【Run】
options = optimset('GradObj','on','MaxIter',100);
initialTheta = zeros(2,1)
[optTheta,functionVal,exitFlag] = fminunc(@costFunction,initialTheta,options);
‘GradObj’, Use the GradObj option to specify that
FUN also returns a second output argument G that is the partial derivatives of the function df/dX, at the point X.
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initialtheta, options);
@(t) ( costFunction(t, X, y) ) . This creates a function, with argument t, which calls your costFunction.
来源: <http://blog.csdn.net/abcjennifer/article/details/7716281>
来源: <http://feature-space.com/en/post24.html>
s形函数:
【Logistic regression cost function】
重申:cost function表示预测值和实际值的平方差
设
hθ(x)之前已经定义,由于y只能等于1或者0,则J(θ) 可变型如下
那What should do Next is find out minθJ(θ)的 θ 值了
如前几章所讲,由求导求出最小的值
【求导步骤】
先贴一张链式法则求三层以上的复合函数的导数:
然后J(θ)可以变形成
![](http://feature-space.com/en/post24=fd1d2.6fa4a.png)
![](http://feature-space.com/en/post24=197b0.6fa4a.png)
带入公式,再求导可以得出:
![](http://feature-space.com/en/post24=149f6.6fa4a.png)
设
![](http://feature-space.com/en/post24=5acde.6fa4a.png)
则有:
![](http://feature-space.com/en/post24=28e94.6fa4a.png)
![](http://feature-space.com/en/post24=00000.6fa4a.png)
将g1带入公式
![](http://feature-space.com/en/post24=5bcbd.6fa4a.png)
将k g(θ)带入
![](http://feature-space.com/en/post24=86535.6fa4a.png)
【Useful Function】
matlab中已经帮我们做好了优化 θ 的辅助函数,我们只要写好cost function并告诉系统就可以了
jVal 是 cost function 的表示,比如设有两个点(1,0,5)和(0,1,5)进行回归,那么就设方程为hθ(x)=θ1x1+θ2x2;
则有costfunction J(θ): jVal=(theta(1)-5)^2+(theta(2)-5)^2;
在每次迭代中,按照gradient descent的方法更新参数θ:θ(i)-=gradient(i),其中gradient(i)是J(θ)对θi求导的函数式,在此例中就有gradient(1)=2*(theta(1)-5), gradient(2)=2*(theta(2)-5)。如下面代码所示:
【Run】
options = optimset('GradObj','on','MaxIter',100);
initialTheta = zeros(2,1)
[optTheta,functionVal,exitFlag] = fminunc(@costFunction,initialTheta,options);
‘GradObj’, Use the GradObj option to specify that
FUN also returns a second output argument G that is the partial derivatives of the function df/dX, at the point X.
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initialtheta, options);
@(t) ( costFunction(t, X, y) ) . This creates a function, with argument t, which calls your costFunction.
来源: <http://blog.csdn.net/abcjennifer/article/details/7716281>
来源: <http://feature-space.com/en/post24.html>
相关文章推荐
- 机器学习实战——梯度下降求解逻辑回归(1理论基础)
- 机器学习总结(lecture 4)算法:逻辑回归Logistic Regression (LR)
- 【学习笔记】斯坦福大学公开课(机器学习) 之逻辑斯蒂回归(续)
- 学习笔记:逻辑斯蒂回归(logistic regression)
- 分类算法系列2----逻辑回归特征选择
- Coursera吴恩达机器学习课程 总结笔记及作业代码——第3周逻辑回归
- Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
- 机器学习:从编程的角度去理解逻辑回归
- 逻辑回归
- 深度学习3线性回归,逻辑回归
- 详解并行逻辑回归
- 逻辑斯谛回归总结
- Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决
- 逻辑回归模型(一)——数学模型
- 机器学习之十一:逻辑回归
- sklearn(scikit-learn) logistic regression loss(cost) function(sklearn中逻辑回归的损失函数)
- 最大似然估计与逻辑回归
- 机器学习常见的几个误区--逻辑回归的变量之间如果线性相关
- 深度学习入门(二) 线性回归、逻辑回归、正则化过程、神经网络简介
- 逻辑斯蒂回归学习