《机器学习实战》之logistic回归

本文详细介绍了Logistic回归的原理,包括其作为分类算法的特点、Sigmoid函数的作用,以及如何通过梯度上升法求解最优参数。通过实例展示了梯度上升和随机梯度上升在分类准确率上的差异,并探讨了遇到的问题及解决方案。同时,文章提供了Iris数据集上的应用示例和相关图形分析。
摘要由CSDN通过智能技术生成

一、Logistic回归算法
  Logistic回归是一种线性拟合的分类算法,其中回归是指通过一条线对点进行拟合(该线称为最佳拟合曲线),即通过一条线使尽量多的点都在线上或离线最近(误差最小)。而logistic回归算法就是先获得所有特征的最佳拟合曲线的参数
在这里插入图片描述
然后再根据sigmod函数进行分类
在这里插入图片描述
sigmod函数是最典型的S曲线,它看起来很像一个阶跃函数,即当z>0时,sigmod(z)>0.5,且当z无限大时,sigmod(z)无限接近于1,相反则无限接近于0,故可采用sigmod函数进行分类,即当z>0时将其分为1类,小于0时分为0类,故logistic回归算法便成了求最佳拟合曲线的参数w的分类算法。
二、基于梯度上升法的拟合参数计算
   梯度上升/下降和牛顿法是最常用的无约束最优参数的计算方法,此处采用其中梯度上升法。梯度上升的最基本的思想:不管是上升还是下降,如果一个函数是可微的,那么沿着它的一阶导数的方向(即梯度方向)上升和下降是最快的,如果梯度为▽,则函数f(x,y)的梯度可表示为:
   在这里插入图片描述
    在此处求参数时,先利用最大似然估计求得似然函数,然后再利用梯度上升算法求最大似然函数得参数值,从而求得z的参数值,故在此处梯度上升算法的迭代公式为:
在这里插入图片描述
,其中α是迭代的步长,或者叫做学习率。
  故对于logistic回归算法来说,设:
  在这里插入图片描述
  为了求最优参数w,令其代价函数为:
  在这里插入图片描述
  对其取对数似然函数有:
  在这里插入图片描述
  故当采用梯度上升算法求最优w值时,只需要求得对数似然函数的导数,即可获得梯度上升的梯度,然后就知道迭代公式。具体推导步骤见下图:
在这里插入图片描述
故根据图片上的推导可知,梯度上升的迭代公式为:
在这里插入图片描述
这就是为什么在代码函数gradAscent中采用weights = weights + alpha * dataMatrix.transpose()* error 这句代码的原因,当时想了半天,查了好久终于推导出来了。
三、代码
  对于logistic回归算法来说,理解sigmod函数和理解基于梯度上升求最优化参数w之后就没什么好讲的了,其中对于随机梯度上升算法来说就是改进了原来每次遍历所有数据集而变成每次只取一个数据集进行迭代,并且迭代过的数据集以后便不再使用,其他的就没什么好说的了。然后有什么问题的话,代码都加上了注解,直接上代码吧:

# -*- coding: utf-8 -*-
"""
Created on Mon Sep 17 20:15:27 2018

@author: chenxi
"""
fro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值