[machine learning] logistic回归

利用logistic回归进行分类的主要思想是:根据现有的数据对分类边界线建立回归公式,以此进行分类。本章简单介绍了基本的梯度上升法和随机梯度上升法。logistic回归的优点是计算代价不高,易于理解和实现。缺点是容易欠拟合,分类精度可能不高。


一。logistic回归的一般过程:

收集数据——准备数据(数值型)——分析数据(任意方法)——训练算法(找到最佳的回归系数)——测试算法——使用算法。



二。sigmoid函数

sigmoid函数公式如下:f(z)=1/(1+e^(-z)),因为此函数的近似一个阶跃函数,当z=0时,函数值是0.5,当z增大时函数值逼近于1,当z值减小时函数值逼近于0.

为了实现分类,将每一个特征值乘上一个回归系数,再进行求和,将得到的总和作为sigmoid函数的输入,得到一个结果。结果大于0.5,则数据被分到1类,小于0.5,则数据被分到0类。

python代码如下:





三。梯度上升法计算最佳回归系数。

sigmoid函数的输入z=w0x0+w1x1+...+wnxn,其中x是分类器的输入数据,w是回归系数。第一个寻找最佳回归系数的最优化算法是梯度上升法,伪代码如下:

每个回归系数初始化为1

迭代R次:

        计算整个数据集的梯度

        使用alpha(步长)*gradient(梯度)更新回归系数的向量w

返回回归系数

python代码如下:

 


上述代码已经确定了不同类别数据之间的分界线,使用matplotlib画出分类边界线的python代码如下:





四。随机梯度上升法计算回归系数

随机梯度上升法与梯度上升法的区别是:随机梯度上升法每一次仅仅使用一个样本来更新回归系数,伪代码如下:


所有回归系数初始化为1

历遍数据集中的每一个样本:

        计算该样本的梯度

        使用alpha(步长)*gradient(梯度)更新回归系数的向量w

返回回归系数

python代码如下:



一个改进的随机梯度算法如下,增加了迭代的次数,alpha的值也在每次迭代的时候调整,python代码如下:





五。实例:从疝气病预测病马的死亡概率

python代码如下:







        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值