机器学习与数据挖掘-educoder-实训作业(逻辑回归)

 

目录

第1关:逻辑回归算法大体思想

第2关:逻辑回归的损失函数

 第3关:梯度下降

 第4关:逻辑回归算法流程

 第5关:sklearn中的逻辑回归


第1关:逻辑回归算法大体思想

什么是逻辑回归

当一看到“回归”这两个字,可能会认为逻辑回归是一种解决回归问题的算法,然而逻辑回归是通过回归的思想来解决二分类问题的算法。

那么问题来了,回归的算法怎样解决分类问题呢?其实很简单,逻辑回归是将样本特征和样本所属类别的概率联系在一起,假设现在已经训练好了一个逻辑回归的模型为f(x),模型的输出是样本x的标签是1的概率,则该模型可以表示成p^​=f(x)。若得到了样本x属于标签1的概率后,很自然的就能想到当p^​>0.5时x属于标签1,否则属于标签0。所以就有$$\hat y=\begin{cases} 0 & \hat p <0.5 \ 1 & \hat p >0.5 \end{cases}(其中\hat y$$为样本x根据模型预测出的标签结果,标签0和标签1所代表的含义是根据业务决定的,比如在癌细胞识别中可以使0代表良性肿瘤,1代表恶性肿瘤)。

由于概率是0到1的实数,所以逻辑回归若只需要计算出样本所属标签的概率就是一种回归算法,若需要计算出样本所属标签,则就是一种二分类算法。

那么逻辑回归中样本所属标签的概率怎样计算呢?其实和线性回归有关系,学习了线性回归的同学肯定知道线性回归无非就是训练出一组参数WT和b来拟合样本数据,线性回归的输出为y^​=WTx+b。不过y^​的值域是(−∞,+∞),如果能够将值域为(−∞,+∞)的实数转换成(0,1)的概率值的话问题就解决了。**要解决这个问题很自然地就能想到将线性回归的输出作为输入,输入到另一个函数中,这个函数能够进行转换工作,假设函数为σ,转换后的概率为p^​,则逻辑回归在预测时可以看成p^​=σ(WTx+b)**。 σ其实就是接下来要介绍的sigmoid函数。

sigmoid 函数

sigmoid函数的公式为:

σ(t)=1/1+e−t

函数图像如下图所示:

 

从sigmoid函数的图像可以看出当t趋近于−∞时函数值趋近于0,当t趋近于+∞时函数值趋近于1。可见sigmoid函数的值域是(0,1),满足我们要将(−∞,+∞)的实数转换成(0,1)的概率值的需求。因此逻辑回归在预测时可以看成

p^​=1/(1+e−WTx+b)

编程要求

根据提示,在右侧编辑器补充 python 代码,实现sigmoid函数。底层代码会调用您实现的sigmoid函数来进行测试。(提示: numpy.exp() 函数可以实现e的幂运算)

测试说明

测试用例:

输入:1

预期输出:0.73105857863

输入:-2

预期输出:0.119202922022

#encoding=utf8

import numpy as np

#sigmoid函数
def sigmoid(t):
    #输入:负无穷到正无穷的实数
    #输出:转换后的概率值
    #********** Begin **********#
    result = 1.0 / (1 + np.exp(-t))
    #********** End **********#
    return round(result,12)
if __name__ == '__main__':
    pass

 

第2关:逻辑回归的损失函数

根据上一节实训中所学习到的知识,我们已经知道了逻辑回归计算出的样本所属类别的概率p^​=σ(WTx+b),样本所属列表的判定条件为$$\hat y=\begin{cases} 0 & \hat p <0.5 \ 1 & \hat p >0.5 \end{cases}。很明显,在预测样本属于哪个类别时取决于算出来的\hat p。从另外一个角度来说,假设现在有一个样本的真实类别为\hat p$$有关。

当然逻辑回归的损失函数不仅仅与p^​有关,它还与真实类别有关。假设现在有两种情况,情况A:现在有个样本的真实类别是0,但是模型预测出来该样本是类别1的概率是0.7(也就是说类别0的概率为0.3);情况B:现在有个样本的真实类别是0,但是模型预测出来该样本是类别1的概率是0.6(也就是说类别0的概率为0.4);请你思考2

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值