机器学习实战 第五章 logistic回归

本文深入探讨了《机器学习实战》中Logistic回归的应用,包括基于Sigmoid函数的分类原理、梯度上升法确定最佳回归系数的过程,并介绍了如何利用随机梯度上升算法优化模型训练。此外,还展示了如何通过绘制决策边界直观理解分类效果。

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

机器学习实战 第五章 logistic回归

二值型输出分类器。

5.1 基于logistic回归和sigmoid函数的分类

一个很有意思的阶跃函数叫做海维赛德阶跃函数,英文是heaviside step function,我原本以为这会是个人名——海维赛德,结果一看英文heaviside,这个意思难道不是一边重?因为一边重,所以一边就被压成了0,另一边就是1.

sigmoid:

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

5.2 基于最优化方法的最佳回归系数确定

sigmoid函数的输入相对来说简单,就是一个数值,然后对其进行计算。之所以将原来的大量计算进行简化,成为了一个数,我认为其中原因如下:1.label是二值,所以其最后进行判断相对简单,通过sigmoid函数。2.对于其进行参数的调整,主要是为了能够进行区分性的度量,参数可以看作是对于每一个维度上的大小的度量。所以经过参数放缩之后,第一个作用就是能够对于原来的数据进行放缩,第二个就是选取出主要的影响因素。

5.2.1 梯度上升法

这其中有个梗,怎么就突然从梯度变成了对于参数的处理了呢。

梯度实际上就是在每个变量上面的变化量的大小。变化大的就多来点儿,变化小的就少来点儿。这样一种类似于贪心的策略能够保证尽快的达到最大或者最小值点。

而用梯度来对于原始的参数w进行更改我认为是这样的原因,求偏导实际上就是对于w进行一个判断,到底哪个w变化最大,那么这最后的偏导启示就是输入,输入的数值越大,那么偏导也就越大,这意味着影响也就越大。

梯度上升算法是w+偏导,而下降时w-偏导。感觉这个梗得理解一下。因为虽然说是这么计算,似乎是因为符号上能够说通。

5.2.2 训练算法:使用梯度上升找到最佳参数

    def loadDataSet():
        dataMat = [];labelMat = [];
        fr = open('testSet.txt');
        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;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值