赞
踩
选择机器学习的模型,根据不同的业务或使用场景选择合适的模型,下面是sklearn上的机器学习模型选择的一个地图。
模型的参数用来让数据更好的适应结果
例如有一个线性模型为:
现实的例子中,数据会以很多点的形式给我们,我们想要解决回归问题,就需要将这些点拟合成一条直线,找到最优的θ0和θ1来使这条直线更能代表所有数据。
整个模型
那么怎么求出参数呢?就有了下面的目标函数,用来求模型的参数。
目标函数也为代价函数,我们的目标是让代价(错误)最小
而如何找到最优解呢,这就需要使用代价函数来求解了,以平方误差代价函数为例。
平方差代价也就是真实值和预测值差的平方
目标:
代价函数:
1.如果
则代价函数只是关于
那么要让代价函数最下,只需要求出二次函数的最小值即可,由此也可以得到参数的值
2.
找到函数最低点也可得到参数值
当然我们也能够用二维的图来表示,即等高线图;
注意:如果是线性回归,则costfunctionJ与的函数一定是碗状的,即只有一个最小点。
引出了梯度下降:能够找出cost function函数的最小值;
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;
当然解决问题的方法有很多,梯度下降只是其中一个,还有一种方法叫Normal Equation;
方法:
(1)先确定向下一步的步伐大小,我们称为Learning rate;
(2)任意给定一个初始值:;
(3)确定一个向下的方向,并向下走预先规定的步伐,并更新;
(4)当下降的高度小于某个定义的值,则停止下降;
算法:
特点:
(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
(2)越接近最小值时,下降速度越慢;
问题:如果初始值就在local minimum的位置,则会如何变化?
答:因为已经在local minimum位置,所以derivative 肯定是0,因此不会变化;
如果取到一个正确的值,则cost function应该越来越小;
问题:怎么取值?
答:随时观察值,如果cost function变小了,则ok,反之,则再取一个更小的值;
下图就详细的说明了梯度下降的过程:
从上面的图可以看出:初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
注意:下降的步伐大小非常重要,因为如果太小,则找到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象;
下图就是overshoot minimum现象:
如果Learning rate取值后发现J function 增长了,则需要减小Learning rate的值
感谢:(参考文献)
http://blog.csdn.net/xiazdong/article/details/7950084
http://blog.csdn.net/sd9110110/article/details/52863390
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。