机器学习-Logistic回归

本文介绍了Logistic回归的基本概念,包括其原理(模型形式和Sigmoid函数),实现过程(数据读取、Sigmoid函数计算和梯度上升算法),以及其在二分类问题中的应用。同时讨论了其优点(如计算效率和易用性)和缺点(如欠拟合和局限性)。
摘要由CSDN通过智能技术生成

1.Logistic回归

        Logistic回归是一种广义线性回归模型,是机器学习中最常见的一种用于二分类的算法模型。        

        Logistic回归通过给定的自变量数据集来估计事件的发生概率,结果是一个概率,因变量的范围在 0 和 1, 常用于数据挖掘、疾病自动诊断、经济预测等领域。

        对于数据点,用一条直线对这些数据点进行拟合(该线称为最佳拟合直线),这个拟合的过程称为回归。

2.Logistic回归的原理

        Logistic回归的模型形式

        p = 1 / (1 + e^(-(w1x1 + w2x2 + ... + wb*xb)))

        w是待求的权重,x是自变量

        Logistic回归在因变量和自变量之间引入了一个逻辑函数,使得模型可以更好地拟合非线性关系的数据。

         Logistic回归进行分类,构建分类器,找到最佳的拟合,要找到最佳的拟合参数,需要能接受所有的输入然后预测出其类别的函数。可以使用Sigmoid函数进行处理。

        Sigmoid函数

        \sigma (z)=1/1+e^{-z}

3.实现过程

        读取文件数据

for line in fr.readlines():
        lineArr = line.strip().split()
        dataMat.append([1.0,float(lineArr[0]),float(lineArr[1])])
        labelMat.append(int(lineArr[2]))
    return dataMat,labelMat

lineArr = line.strip().split()    对单行进行处理
dataMat.append([1.0,float(lineArr[0]),float(lineArr[1])])   将三个浮点数值组成一个列表,并将这个列表添加到 dataMat 这个列表
labelMat.append(int(lineArr[2]))   将标签放入标签列表

        sigmoid函数计算

def sigmoid(inX):
    return 1.0/(1+exp(-inX))

        梯度上升优化算法求最佳回归系数

def gradAscent(dataMatIn,classLabels):
    dataMatrix = mat(dataMatIn)  #将训练特征数据转为矩阵
    labelMat = mat(classLabels).transpose()  #将标签列表转为矩阵并将其转置
    m,n = shape(dataMatrix)  #获得矩阵的行数和列数
    alpha = 0.001  #向目标移动的步长,控制速率
    maxCycles = 500  #迭代次数
    weights = ones((n,1))  #初始化回归系数为1(以列数即特征数量为基准)
    for k in range(maxCycles):
        h = sigmoid(dataMatrix * weights)  #梯度上升矢量化公式
        error = (labelMat - h)   #公式计算
        weights = weights + alpha * dataMatrix.transpose()*error
    return weights.getA()

        运行结果

4.总结

        优点:计算代价不高,简单易用,易于理解和实现,适用于二分类问题
        缺点:容易欠拟合,分类精度可能不高,无法处理多分类问题、对数据分布和假设条件有一定要求
        Logistic回归与其他分类算法相比,在处理线性可分问题时具有更好的性能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值