Logistic回归

本文介绍Logistic回归的基本原理,包括数据加载、Sigmoid函数及梯度上升算法的应用,并通过实例展示了如何实现Logistic回归。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

svm由于篇幅较大,暂时延迟一下,先更新一个logistic回归。

       logistic回归是一种最优化算法,基本思想是根据现有数据对分类边界线建立回归公式,以此进行分类。训练分类器的做法是寻找最佳拟合参数,是一种二值型分类算法,当然二值型分类可以推广到n类型分类,对每一种分类需求分别建立模型即可。

(1)加载数据

       我们在二维坐标系上建立模型,以往对应的xy轴分别设为X1,X2,回归方程的常量b看成1.0*b,加载的数据格式为多行,每一行前两个数字分别为X1,X2,最后一个数字为label,以此加载数据生成列表的代码如下:

def loadDataSet():
    dataMat=[]
    labelMat=[]
    with open('testSet.txt') as fr:
        data=fr.readline()
    for line in data:
        lineArr=line.strip().split()
        dataMat.append([1.0,float(lineArr[0]),float(lineArr[1])])
        labelMat.append(int(lineArr[2]))
    return dataMat,labelMat

(2)sigmoid函数

       为了实现logistic分类器,我们可以在每个特征上乘以一个回归系数,相加后带入sigmoid函数,进而得到一个范围在0~1之间的任意数值。大于0.5的分到1类,小于0.5分到0类。所以logistic回归也被看成是一种概率估计。

                                                   sigmoid函数的形式是:\large \delta (z)=1/(1+e^{-z})

from numpy import  exp
'''
code
'''
def sigmoid(inX):
    return 1.0/(1+exp(-inX))

(3)梯度上升算法

def gradAscent(dataMatIn,classLabels):
    dataMatrix=mat(dataMatIn)
    labelMat=mat(classLabels)
    m,n=shape(dataMatrix)
    alpha=0.01
    maxCycles=1000
    weights=ones((n,1))
    for k in range(maxCycles):
        h=sigmoid(dataMatrix*weights)
        error=(labelMat-h)
        weights=weights+alpha*dataMatrix.transpose()*error
    return weights

其中利用numpy的mat函数转化成numpy矩阵便于计算,下面给出一个简单的IDLE测试矩阵乘法的例子:

>>> weights
array([[2.],
       [1.],
       [1.]])
>>> datas
matrix([[1, 2, 3],
        [2, 3, 4],
        [3, 4, 5]])
>>> datas*weights
matrix([[ 7.],
        [11.],
        [15.]])
>>> 

这段代码的数学推导weights=weights+alpha*dataMatrix.transpose()*error 简单来说就是看误差方向

方法的核心是,只要沿着函数的梯度方向搜寻,就可以找到函数的最佳参数。但该方法在每次更新回归系数时都需要遍历整个数据集,对于大数据效果还不理想。所以还需要一个“随机梯度上升算法”对其进行改进。该方法一次仅用一个样本点来更新回归系数,所以效率要高得多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值