逻辑回归模型调参

article/2025/8/24 8:39:34

文章目录

  • 一、逻辑回归(Logistic Regression)
  • 二、样本不均衡问题处理
    • 1 、过采样方法
      • (一)、随机过采样法
      • (二)、SMOTE算法
    • 2 、欠采样方法
      • (一)、随机欠采样
  • 三、网格搜索快速调优
        • 损失函数(对数似然损失)
  • 四、模型评价
        • ROC曲线

一、逻辑回归(Logistic Regression)

逻辑回归是一种分类算法,逻辑回归就是解决二分类问题的利器。

算法原理:将线性回归的输出作为逻辑回归的输入,然后经过sigmoid函数变换将整体的值映射到[0,1],再设定阈值进行分类。


常用参数:
random_state:随机种子。
class_weight:各类别样本的权重。样本需要加权时,使用该参数。
max_iter:最大迭代次数。
tol:停止标准。如果求解不理想,可尝试设置更小的值。

正则化相关参数:
penalty:惩罚项,默认用L2
C:正则化力度
solver:求解器。

solver:{‘newton-cg’,’lbfgs’,’liblinear’,’sag’,’saga’}

1、‘newton-cg’,‘lbfgs’和’sag’只处理L2惩罚,而’liblinear’和’saga’处理L1惩罚。
2、对于小型数据集,使用’liblinear’即可。
3、对于多类问题,只有’newton-cg’, ‘sag’, 'saga’和’lbfgs’可以处理多项损失;“liblinear”仅限于“one-versus-rest”分类。

二、样本不均衡问题处理

增加一些少数类样本使得正、反例数目接近,然后再进行学习。

关于类别不平衡的问题,主要有两种处理方式:

1 、过采样方法

增加数量较少那一类样本的数量,使得正负样本比例均衡。

(一)、随机过采样法

原理:通过复制所选择的样本生成样本集

缺点:易产生模型过拟合问题

from imblearn.over_sampling import RandomOverSampler
ros = RandomOverSampler(random_state=0)

(二)、SMOTE算法

原理:对于少数类样本,从它的最近邻中随机选择一个样本,然后在两个样本之间的连线上随机选择一点作为新合成的少数类样本。(用合理的方式产生新样本,防止随机过采样中容易过拟合的问题)

# SMOTE过采样
from imblearn.over_sampling import SMOTE
X_resampled, y_resampled = SMOTE().fit_resample(X, y)

2 、欠采样方法

减少数量较多那一类样本的数量,使得正负样本比例均衡。

(一)、随机欠采样

from imblearn.under_sampling import RandomUnderSampler
rus = RandomUnderSampler(random_state=0)

原理:通过改变多数类样本比例以达到修改样本分布的目的,从而使样本分布较为均衡

缺点:由于采样的样本集合要少于原来的样本集合,因此会造成一些信息缺失,即将多数类样本删除有可能会导致分类器丢失有关多数类的重要信息。

三、网格搜索快速调优

from sklearn.linear_model import LogisticRegression as LR         # 逻辑回归
from sklearn.metrics import precision_score, recall_score, f1_score,accuracy_score
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import GridSearchCV  # 网格搜索
# 把整体数据集进行切分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state = 40)
#在l2范式下,判断C和solver的最优值
p = {'C':list(np.linspace(0.05,1,19)),'solver':['liblinear','sag','newton-cg','lbfgs']}model = LR(penalty='l2',max_iter=10000)
GS = GridSearchCV(model,p,cv=5)
GS.fit(X_train,y_train)
#输出最优参数
GS.best_params_

损失函数(对数似然损失)

在这里插入图片描述

四、模型评价

1、精确率(Accuracy)
精确率是最常用的分类性能指标。可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。一般情况下,模型的精度越高,说明模型的效果越好。

Accuracy=(TP+TN)/(TP+FN+FP+TN)

2、 准确率(Precision)
表示在模型识别为正类的样本中,真正为正类的样本所占的比例。一般情况下,查准率越高,说明模型的效果越好。

Precision=TP/(TP+FP)

3、 召回率(Recall)
召回率表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。一般情况下,Recall越高,说明有更多的正类样本被模型预测正确,模型的效果越好。

Recall=TP/(TP+FN)

4、 F1 值
F1值是精确度和召回率的调和平均值。

F1=(2*Precision*Recall)/(Precision+Recall)

精确度和召回率都高时,F1值也会高。F1值在1时达到最佳值(完美的精确度和召回率),最差为0。在二分类模型中,F1值是测试准确度的量度。

from sklearn.metrics import classification_report   
# 返回每个类别精确率与召回率
ret = classification_report(y_test, y_predict,target_names=("流失", "不流失"))
#target_names:目标类别名称

ROC曲线

TPR = TP / (TP + FN) 

所有真实类别为真的样本中,预测类别为真的比例

FPR = FP / (FP + TN)

所有真实类别为假的样本中,预测类别为真的比例

AUC指标

1、AUC的概率意义是随机取一对正负样本,正样本得分大于负样本得分的概率
2、AUC的范围在[0, 1]之间,并且越接近1越好,越接近0.5属于乱猜
3、AUC=1,完美分类器,绝大多数预测的场合,不存在完美分类器。
4、0.5<AUC<1,优于随机猜测。妥善设定阈值的话,能有预测价值。


http://chatgpt.dhexx.cn/article/poyky3HI.shtml

相关文章

逻辑回归(模型的建立与求解)

跟我一起机器学习系列文章将首发于公众号&#xff1a;月来客栈&#xff0c;欢迎文末扫码关注&#xff01; 0 前言 在上一讲中&#xff0c;笔者通过五篇文章来详细的介绍了线性回归模型&#xff0c;那么本讲开始继续介绍下一个经典的机器学习算法逻辑回归&#xff08;Logistic…

逻辑回归模型

本文代码及数据集来自《Python大数据分析与机器学习商业案例实战》 逻辑回归模型本质就是将线性回归模型通过Sigmoid函数进行了一个非线性转换&#xff0c;得到一个介于0&#xff5e;1之间的概率值。因此&#xff0c;逻辑回归模型的本质是预测概率&#xff0c;而不是直接预测具…

解读Logistic回归模型

一、logistic回归的由来 logistic回归在百度百科是这样定义的&#xff1a; logistic回归又称logistic回归分析&#xff0c;是一种广义的线性回归分析模型&#xff0c;常用于数据挖掘&#xff0c;疾病自动诊断&#xff0c;经济预测等领域。 由此可见 logistic回归是从线性回归模…

logistic回归模型

logistic回归模型 前言logistic回归模型logit变换几率logistic模型二项逻辑回归模型损失函数 logistic回归模型的应用logistic回归模型的评价 前言 从这一期开始&#xff0c;我们准备介绍一系列机器学习算法模型&#xff0c;主要包括logistic回归&#xff0c;决策树&#xff0…

逻辑回归模型logistic原理详解

Hello! 小A又来咯&#xff01; 之前我们详细的介绍了使用线性回归模型来进行回归学习&#xff0c;那如果要做分类任务该怎么办呢&#xff1f; 考虑二分类任务&#xff0c;其输出值y属于集合[0,1]。而线性回归模型zw^T*xb是实值。为了进行分类任务&#xff0c;我们需要将实值z转…

Python实现逻辑回归模型教程

理解多个预测变量与连续响应变量之间关系通常适用线性回归&#xff0c;但当响应变量为类别变量时需要适用逻辑回归。 逻辑回归是尝试从数据集中把W观测记录分为不同类别的分类算法。 常见的分类回归场景有&#xff1a; 通过信用分和账户余额预测客户贷款是否违约通过篮球比赛中…

【机器学习笔记4】逻辑回归模型

目录 什么是逻辑回归&#xff1f; Sigmoid函数 决策边界 逻辑回归的损失函数 为什么平方误差模型不可行&#xff1f; 对数损失函数 单个样例损失&#xff1a; 整体损失函数 梯度下降算法 补充&#xff1a;F1-score评价指标 F1-Score简介 相关概念 F-Score 示例及…

逻辑回归模型详解(Logistic Regression)

目录 广义线性模型 极大似然法 逻辑回归的假设函数 逻辑回归的损失函数 交叉熵损失函数 为什么LR模型损失函数使用交叉熵不用均方差 交叉熵损失函数的数学原理 交叉熵损失函数的直观理解 交叉熵简介 对数损失函数和交叉熵损失函数 逻辑回归优缺点 其他 逻辑回归与…

机器学习算法(一):逻辑回归模型(Logistic Regression, LR)

目录 1 LR 1.1 直观表述 1.2 决策边界&#xff08;Decision Boundary&#xff09; 2. 权值求解 2.1 代价函数&#xff08;似然函数&#xff09; 2.1.1 为什么损失函数不用最小二乘&#xff1f;即逻辑斯蒂回归损失函数为什么使用交叉熵而不是MSE&#xff1f; 2.1.2 代价函…

详解逻辑回归

目录 1. 逻辑回归模型介绍1.1 Logistic分布1.2 Logistic回归1.3 代价函数1.4 求解1.5 正则化1.5.1 L1正则化1.5.2 L2正则化1.5.3 L1正则化和L2正则化区别 2 与其他模型的对比2.1 与线性回归2.2 与 SVM2.3 与朴素贝叶斯 3. 模型细节3.1 为什么适合离散特征3.2 为什么不用平方误差…

逻辑回归模型(Logistic Regression)

逻辑回归符合伯努利分布。伯努利分布就是我们常见的0-1分布&#xff0c;即它的随机变量只取0或者1&#xff0c;各自的频率分别取1−p和p&#xff0c;当x0或者x1时&#xff0c;我们数学定义为&#xff1a; 所以在常规的逻辑回归模型中&#xff0c;只有两个类别&#xff0c;0或者…

逻辑回归(Logistic Regression)详解

逻辑回归也称作logistic回归分析&#xff0c;是一种广义的线性回归分析模型&#xff0c;属于机器学习中的监督学习。其推导过程与计算方式类似于回归的过程&#xff0c;但实际上主要是用来解决二分类问题&#xff08;也可以解决多分类问题&#xff09;。通过给定的n组数据&…

逻辑回归模型及案例(Python)

1 简介 逻辑回归也被称为广义线性回归模型&#xff0c;它与线性回归模型的形式基本上相同&#xff0c;最大的区别就在于它们的因变量不同&#xff0c;如果是连续的&#xff0c;就是多重线性回归&#xff1b;如果是二项分布&#xff0c;就是Logistic回归。 Logistic回归虽然名…

PyCharm如何修改配置大内存

现在的电脑标配都8G以上内存了&#xff0c;不过很多IDE仍然是以低配电脑为标准&#xff0c;去配置软件占用硬件的程度 因为内存会直接影响到软件的性能&#xff0c;可以通过手动去设置大内存 一、首先启动虚拟机 进入pychram的bin目录&#xff0c;可以看到2个以vmoptions为后…

jvm最大内存限制多少?

(1)堆内存分配 JVM初始分配的内存由-Xms指定&#xff0c;默认是物理内存的1/64&#xff1b;JVM最大分配的内存由-Xmx指定&#xff0c;默认是物理内存的1/4。默认空余堆内存小 于40%时&#xff0c;JVM就会增大堆直到-Xmx的最大限制&#xff1b;空余堆内存大于70%时&#xff0c;…

大内存时代虚拟内存现在还有用吗

但凡用过Windows的人&#xff0c;大多听说过“虚拟内存”这四个字。尤其在当年物理内存还普遍偏低的年代&#xff0c;虚拟内存几乎成了每一个玩电脑的人都曾摆弄过 的东东。不过随着硬件技术不断发展&#xff0c;内存价格逐步白菜化&#xff0c;我们的电脑再也不像当年那样算计…

笔记本电脑查看几个卡槽,支持最大内存,内存条参数详细步骤,开启双通道条件

1&#xff1a;一个命令&#xff0c;轻松查看电脑支持多大内存 使用 Win R组合快捷键&#xff0c;打开 运行 操作框&#xff0c;然后在打开后面 输入命令 cmd &#xff0c;并点击下方的“确定”进入命令操作窗口&#xff0c;如下图所示。 然后在打开的CMD命令窗口输入命令&am…

在Jupyter里按需删除大内存变量并且释放内存

使用情形&#xff1a; 项目需要对多个大内存变量进行处理&#xff0c;但是每个大内存变量处理的时候都需要加载一个另外共同的大内存变量。现在处理完一个变量之后&#xff0c;只能重启kernel然后处理另一个变量&#xff1b;但是理论上我们可以删除一个变量的内存并读入下一个…

xp计算机如何查看内存大小,xp如何查看内存大小

想知道怎么查看电脑内存的大小吗&#xff0c;下面是学习啦小编带来的关于xp如何查看内存大小的内容&#xff0c;欢迎阅读! xp查看内存大小方法一&#xff1a; 一&#xff1a; 右键单击 我的电脑&#xff0c;选择 【属性】 查看 二&#xff1a; 打开控制面板&#xff0c;打开【系…

Android Studio如何设置占用的最大内存?

1.File-Settings,如下图&#xff0c;是应用到所有项目中的。 2.下方的“Daemon Heap Size Setting”是设置当前项目编译时所能使用的最大内存的&#xff0c;所以如果我们需要仅当前项目有效&#xff0c;可以在这里设置,设置好之后点击“确定”&#xff0c;完成更改。