知识点十四:Logistic回归(非线性回归)
1、什么是线性回归
用一条直线对训练数据进行拟合的过程,叫做回归。这条直线成为称为:最佳拟合直线。
2、Logistic回归
Logistic回归的目的是寻找一个非线性函数Sigmoid的最佳拟合参数(注意:logistic回归正好是知识点一:《函数公式是怎么来的?》的一种照应),求解过程可以由最优化算法来完成。在最优化算法中,最常用的就是梯度上升算法,而梯度上升算法又可以简化为随机梯度上升算法。
随机梯度上升算法与梯度上升算法的效果相当,但占用更少的计算资源。此外,随机梯度上升是一个在线算法,它可以在新数据到来时就完成参数更新,而不需要重新读取整个数据集来进行批处理运算。
3、梯度上升算法
假如需要求取函数:
的最大值。
函数图像如下:
函数的导数为:
所以 x=1.5即取得函数的最大值1.25
但是真实环境中的函数不会像上面这么简单,就算求出了函数的导数,也很难精确计算出函数的极值。此时我们就可以用迭代的方法来做。就像爬坡一样,一点一点逼近极值。爬坡这个动作用数学公式表达即为:
其中,α为步长。
求上面函数极值的Python代码如下:
def function(x):
return -2 * x + 3
def argmax():
begin = 0
end = 6
eps = 0.01
presision = 0.00001
while abs(end - begin) > presision:
begin = end
end = begin + eps * function(end)
return end
结果为:1.5004868539823504