机器学习实战之Logistic回归(二)分类器的应用例子(含数据集)

本文介绍了在Python环境下,使用梯度上升法训练Logistic回归模型,并分析数据以画出决策边界。通过示例数据集,展示了如何找到最佳参数并应用随机梯度上升法进行优化。最后,讨论了拟合曲线的不足之处,为后续改进奠定基础。
摘要由CSDN通过智能技术生成

转载请注明作者和出处:https://blog.csdn.net/weixin_45814668
微信公众号:qiongjian0427
知乎:https://www.zhihu.com/people/qiongjian0427
Github:https://github.com/qiongjian/Machine-learning/
运行环境:anaconda—jupyter notebook
Python版本: Python3.x

下图所示为数据集,提取码:ld9w。
在这里插入图片描述

训练算法:找到最佳参数

数据集有100个样本点,每个点包含两个数值型特征:X1和X2。

在此数据集上,我们将通过使用梯度上升法找到最佳回归系数,也就是拟合出Logistic回归模型的最佳参数。

梯度上升法的伪代码如下:

每个回归系数初始化为1
重复R次:
    计算整个数据集的梯度
    使用alpha*gradient更新回归系数的向量
返回回归系数

正式代码,在python中新建logRegres.ipynp的文件,输入下面代码。

from numpy import *

def loadDataSet():#函数功能为打开文本文件并逐行读取
    dataMat = [];labelMat = []
    fr = open('TestSet.txt')
    for line in fr.readlines():
        lineArr = line.strip().split()
        # 为了方便计算,我们将 X0 的值设为 1.0 ,也就是在每一行的开头添加一个 1.0 作为 X0
        dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
        labelMat.append(int(lineArr[2]))
    return dataMat, labelMat

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

#输入数据特征与数据的类别标签
def gradAscent(dataMatIn, classLabels):
    #转换为numpy型
    dataMatrix = mat(dataMatIn)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值