逻辑回归实现二分类问题

逻辑回归

前言

logistic回归是被用于解决分类问题的机器学习方法,以下我们将对逻辑回归在二分类的应用上展开介绍,涉及的内容有激活函数sigmoid,梯度上升算法,以及在数据集上的实际应用。

本次实践的代码已上传到https://github.com/vistor985/-.git

线性回归

在此之前,我们了解一下线性回归,线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值真实值之间的误差最小化,如以下模型

f ( x ) = w 1 x 1 + w 2 x 2 + … + w d x d + b f(\boldsymbol{x})=w_{1} x_{1}+w_{2} x_{2}+\ldots+w_{d} x_{d}+b f(x)=w1x1+w2x2++wdxd+b

一般用向量形式写成

f ( x ) = w T x + b f(\boldsymbol{x})=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b f(x)=wTx+b

其中w和b学习后,模型就确定了,模型就确定了一条能够拟合数据的直线,如下:
在这里插入图片描述

sigmoid

由于线性回归一般用于数值的预测,且对数值敏感,不适合做分类问题,于是我们引入了激活函数sigmoid,将线性转为非线性

其公式如下

f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1

图形如下
在这里插入图片描述

一般大于0.5时,我们预测输出为1,否则为0,我们将线性回归时的输出wx+b代到上式的x,输出就被限制在0和1之间,当然我们还可以灵活应用,比如在sigmoid前乘个数a(a>0),可以使输出在(0,a)另外式子中w决定函数图像的陡峭程度,b可让图像左右平移,此处我们不继续深究。

def sigmoid(inX):
    # return 1.0 / (1 + exp(-inX))
    # 防止指数过大溢出
    if inX >= 0:
        return 1.0 / (1 + exp(-inX))
    else:
        return exp(inX) / (exp(inX) + 1)

梯度上升算法

我们的目标是要得到一个能解决问题的模型,而模型有w,b是未知的,那我们要怎么得到这些参数的值呢?下面我们介绍极大似然估计法,估计模型参数。(以下我们将w,b和为 θ \theta θ)

设:

P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y=1 \mid x ; \theta)=h_{\theta}(x) P(y=1x;θ)=hθ(x)
P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y=0 \mid x ; \theta)=1-h_{\theta}(x) P(y=0x;θ)=1hθ(x)

可统一写成

p ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y p(y \mid x ; \theta)=\left(h_{\theta}(x)\right)^{y}\left(1-h_{\theta}(x)\right)^{1-y} p(yx;θ)=(hθ(x))y(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值