逻辑回归是线性还是非线性

目录

一、逻辑回归模型简介

二、逻辑回归模型是线性模型还是非线性模型

三、如何实现一个逻辑回归模型


声明:本文部分内容来自《老饼讲解-机器学习》

一、逻辑回归模型简介

逻辑回归模型是一种分类模型,属于广义的线性回归模型。它也是一种判别模型,由条件概率P(Y|X)表示。二项逻辑回归中,随机变量X取实数,Y的取值为1或者0。逻辑回归模型简单高效,在实际应用中非常广泛,例如预测一个用户是否点击广告,判断用户性别等。

逻辑回归模型如下:

P(x) = \textbf{Sigmoid}(XW) = \dfrac{1}{1+e^{-(w_1x_1+w_2x_2+....w_kx_k+b)}}

 在逻辑回归模型中,引入了sigmoid函数,它可以将取值在(-R,R)的变量映射到(0,1)之间。

二、逻辑回归模型是线性模型还是非线性模型

逻辑回归的输出与输入之间是非线性关系,但一般来说,逻辑回归被归为线性模型。

为什么呢?这主要是因为逻辑回归一般拆为两部分

Y=WX

P=sigmoid(Y)

逻辑回归就是这样的原理,wx+b 作为综合值的评估,再套用 sigmoid 函数将综合评估值转为概率。所以,逻辑回归本骨子里还是线性模型

引用自《老饼讲解-机器学习》

对于第一部分的线性部分Y=WX是模型分类的主要核心部分,是它把样本点分为了两类

而第二部分P=sigmoid(Y)只是把线性部分Y=WX的值转为了概率,

所以,核心部分在于Y=WX,它对模型起到了关键的分类作用,又由于核心部分是线性部分,所以对模型来说,不管建模,还是调优,还是分析,都是以它为主,

这也就是为什么把它看作线性模型了,因为对于逻辑回归,一切都是用线性模型的分析手段,包括变量的分析等等,模型效果的分析等等。

总的来说,逻辑回归是线性模型。虽然逻辑回归引入了sigmoid函数映射,使其具有非线性性质,但除去sigmoid映射函数关系,其他的步骤和算法都是线性回归的。因此,可以说逻辑回归是以线性回归为理论支持的。

三、如何实现一个逻辑回归模型

在逻辑回归模型中,归一化是必要的。归一化主要目的是使得不同尺度的特征能放在同一尺度进行比较。

在逻辑回归中,如果特征的尺度差异很大,那么在梯度下降法进行参数优化时,可能会使得损失函数值的等高线呈现椭球形,这时就需要花费更多的迭代步数才能到达最优解。此外,参数的大小也会影响损失函数值,这时就很有必要先对特征进行归一化处理。

总的来说,在使用逻辑回归时,一般需要先对数据进行归一化,这样训练的结果会更加好一些。

下面展示如何在sklearn中实现逻辑回归,

使用的breast_cancer数据如下:

具体代码如下:

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
import numpy as np

#----数据加载------
data = load_breast_cancer()
X    = data.data[:,4:8]  #这里我们只选择4个变量进行建模
y    = data.target
#----数据归一化------
xmin=X.min(axis=0)
xmax=X.max(axis=0)
X_norm=(X-xmin)/(xmax-xmin)

#-----训练模型--------------------
clf = LogisticRegression(random_state=0)            
clf.fit(X_norm,y)

#------模型预测-------------------------------
pred_y      = clf.predict(X_norm)              # 预测类别
pred_prob_y    = clf.predict_proba(X_norm)[:,1]   # 预测属于1类的概率

print( "模型系数(对应归一化数据):",clf.coef_[0])
print( "模型阈值(对应归一化数据):",clf.intercept_)
print( "模型准确率:",(pred_y== y).sum()/len(y))

运行结果:

模型系数(对应归一化数据): [ 0.18783816 -1.11495824 -3.6342363 -7.06872446]

模型阈值(对应归一化数据): [3.27959399]

模型准确率: 0.8980667838312829

如果不想调用sklearn训练,而想自己实现训练逻辑回归,可以参考文章:

《【实例】逻辑回归实例讲解》老饼讲解|【实例】逻辑回归实例讲解


写文不易,点赞收藏吧~!

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值