1、上午主要还是昨天的logistic回归demo的问题,我本来初衷只是想弄明白为什么sigmoid函数-Z改成Z,我程序报overflow,但是由于对logistic还不熟,自己想出了很多问题:
- J(θ)是把每一条记录的误差加合,每一个的误差是-ln(h(θ))当y=1,-(1-ln(h(θ))当y=0,把每一条记录的误差加合就是J(θ),每一次迭代都重新加一次,有一段脑壳没把这个loop的层次分开,脑壳发傻,J(θ)加合了每一次的误差,我说怎么都是越来越大,太SB了
- 然后正确计算J(θ)后,我发现J(θ)一直在波动,我当时觉得好奇怪,理论上不是已经证明了吗?梯度就是函数值变化最快的方向,我取梯度的负方向自然就是J(θ)不断变小啊,和博士讨论了下,也没得出结论,后来我顿悟,是因为步长太大,造成了荡千秋的情况,从图像上看秋千的波动振幅越来越小,最后趋近于收敛值,而且速度还蛮快。但是我自己也有个疑问,为什么振幅不是在极值点附近,J(θ)这个函数到底有些什么特性,二元的时候是怎样一个图形?
- 还有就是那个所谓的初衷问题,现在都未能解决,有一点是清楚的就是exp()这个函数输入太大,导致计算机无法计算,所以报overflow
2、matplotlib绘制直线的方法
import matplotlib.pyplot as plt
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
x是所有点x轴坐标数组,y是所有点y轴坐标数组,x和y数组按序号一一对应。
以上,星期五主要就是这些事了,以后星期五的总结就连同每周总结一起写了,不然过一阵就淡忘了,再次强调锻炼身体,按时睡觉!

本文探讨了Logistic回归中遇到的溢出问题及解决思路,并通过matplotlib绘制直线的方法进行了直观展示。同时,文中还分析了梯度下降过程中目标函数波动的原因。
2044

被折叠的 条评论
为什么被折叠?



