python机器学习0基础到入门的心得----入门篇4 Logistic回归

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq351469076/article/details/80883987

本章节代码

概述

最优化算法, 假设现在有一些数据点, 我们用一条直线对这些点进行拟合(该线称为最佳拟合直线), 这个拟合过程就称作回归

根据现有数据对分类边界线建立回归(‘回归’源一词于最佳拟合, 表示要找到最佳拟合参数集)公式, 以此进行分类


优点:

  • 计算代价不高, 易于理解和实现

缺点:

  • 容易欠拟合, 分类精度可能不高

适用数据类型

  • 连续型和标称型

Logistic回归分类器实现过程

我们想要的函数应该是, 能接受所有输入然后预测出类别。比如,在只有两个类别情况下, 上述函数输出0或1, 有一个公式可以很完美的处理, 叫做Sigmoid函数
这里写图片描述
z = w1(回归系数) * x1(向量) + w2(回归系数) * x3(向量) + ………..
向量w就是我们要找到的最佳系数


下面的两个图表示Sigmoid函数在不同的坐标尺度下的两条曲线图。当x为0时, Sigmoid函数值为0。随着x增大, 对应的Sigmoid值将逼近于1,而随着x的减小,Sigmoid值将逼近于0, 如果横坐标刻度足够大, Sigmoid函数看起来很像一个阶跃函数
这里写图片描述
因此, 为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数吗,然后把所有的结果值相加,将这个总和**代入**Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1, 小于0.5被归入0类, 所以,Logistic回归也可以被看成是一种概率估计

确定了分类器的实现过程, 那么最佳系数是多少?如何确定他们的大小?, 请往下看


梯度上升算法

  • 找到某函数的最大值, 具体是沿该函数的梯度▽方向探寻
    这里写图片描述
    这个梯度意味着沿x的方向移动这里写图片描述, 沿y的方向移动这里写图片描述
    其中f(x, y)必须指定在已有的坐标点上, 并且可微
    • 通俗说,如果是二元坐标系,可微就是指一小段曲线可以用直线代替。
    • 如果是三元坐标系,可微就是指一小段弧面可以用平面代替。
    • 这里写图片描述

梯度算法总是指向函数值增长最快的方向, 这里所说的移动方向, 而不是移动量的大小, 该量值称为α
w: = w (回归系数) + α(步长) * ▽w.T * f(w)(差值)
这里写图片描述
该公式会一直执行, 直到达到某个条件为止, 比如迭代次数或达到某个允许的误差范围之内

对应的还有梯度下降算法, 公式里面的+换成-即可


Logistic回归的目的是寻找一个非线性函数Sigmoid的最佳拟合参数集, 求解过程由最优化算法来完成, 在最优化的算法中, 最常用的就是梯度上升算法, 梯度上升算法可以简化为随机梯度上升算法。

随机梯度上升算法是一个在线算法, 它可以在新数据到来时就完成参数更新, 而不需要读取整个数据集来进行批处理运算

猜你喜欢

转载自blog.csdn.net/qq351469076/article/details/80883987