sklearn中的Logistic Regression

机器学习sklearn----逻辑回归(LogisticRegression)使用详解 文章目录为什么需要逻辑回归重要参数penalty参数示例L1,L2的效果对比处理多多分类问题总结 为什么需要逻辑回归 逻辑回归是由线性回归演变而来的一个分类算法,所以说逻辑回归对数据的要求比较高。对于分类器来说,我们前面已经学习了几个强大的分类器(决策树, 随机森林等),这些分类器对数据的要求没有那么高,那我们为什么还需要逻辑回归呢?主要在于逻辑回归有以下几个优势: 对线性关系的拟合效果好到丧心病狂:特征与标签之间的线性关系极强的数据,比如金融领域中的信用卡欺诈,评分卡制作,电商中的营销预测等等相关的数据 阅读详情

Logistic regression,这名字听上去像一种回归算法,但实际上它是一种分类算法。Logistic回归函数也被称为对数几率函数,常与最大熵模型作比较,二者都是对数线性模型。
在 sklearn 中,逻辑斯特回归函数来自于Logistic Regression这个类,适用于拟合0-1类,多分类(OvR),多项逻辑斯特回归(即y的值是多项的,可以是(0,1,2, )),可用L1和L2正则项来优化模型。
在优化问题上,使用L2正则项的话,逻辑斯特回归的损失函数为
在这里插入图片描述
类似的,如果使用L1正则项的话,逻辑斯特回归的损失函数为
在这里插入图片描述
注意,在上式中,假设 y i y_{i} yi​的取值为-1或1.
在Logistic Regression这个类中最优化方法有“liblinear”,“newton-cg”,“lbfgs”,"sag"和“saga”.
“liblinear”是一个C++库的名字,实际上它采用的是坐标下降法(coordinate descent, 简称CD)。在这个库里的CD算法,并不能真正的学习一个多分类模型(或多项逻辑斯特回归),它才用的是OvR拆分策略。该最优化算法支持L1正则项,可以得到稀疏的系数C。

在西瓜书上,如果不失一般性,考虑N个类别。OvR是每次将一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器。在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。

像"lbfgs",“sag"和"newton-cg”,库里给出的这三个优化算法则只支持L2正则项,并且他们在一些高维数据中可以收敛的更快。将属性“multi_class”设置为"multinomial"的话,他们可以学习到一个真正的多分类模型,这意味着他们在多分类问题上表现的更好,准确率更高。
“sag”指的是随机平均梯度下降,如果数据量很大的情况下的话(样本和特征的数量都很大),速度是最快的。
“saga”是“sag”的一种变形,它也支持不平滑正则项(non-smooth penalty),L1正则项。所以,如果想获得稀疏的多分类逻辑斯特回归,可以选择“saga”。
“lbfgs”近似于“Broyden–Fletcher–Goldfarb–Shanno algorithm”,是拟牛顿法的一种,适用于小数据集的情况,如果是大数据集的话,就会很灾难。
总结一下,就是
在这里插入图片描述
因为"lbfgs"算法的鲁棒性,所以它是默认的选择。如果是大数据的话,请选择“saga”,你也可以考虑用SGDClassifier配套上“log”损失函数,这一个方案更快,但是需要微调一下。

上述内容来自:https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
接下来将讲述对类中的各个参数的作用

class sklearn.linear_model.LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=’warn’, max_iter=100, multi_class=’warn’, verbose=0, warm_start=False, n_jobs=None)

penalty:字符型,正则项,默认为L2正则项,可更改为’l1’
dual:bool型,默认是False。对偶或原始方法。Dual只适用于liblinear l2正则项情况下。如果是n_sample>n_features情况下,dual=False更为合适。
tol:float型,默认是1e-4。迭代终止判断的误差范围。
C:float型,默认是1.0。正则项系数的倒数,一定要是一个正数。与SVM一样,越小的数值越大的惩罚。
fit_intercept:bool型,默认是True.明确是否需要加一个偏差(或截距)进决策函数。
intercept_scaling:float型,默认为1。只有在优化器为"liblinear"并且self.fit_intercept设为True时才有用。在这种情况下,x变成了[x,self.intercept_scaling]。例如,一个有连续值的合成特征等于intercept_scaling加在了实例向量的后面。截距变成了intercept_scaling*合成特征的权重。注意,合成特征的向量同样受l1/l2正则项所限制。为了减小正则化对截距的影响,intercept_scaling要增加。
class_weight:dict型或’balanced’,默认为’balanced’。类的权重,以{class_label:weight}给出。如果没有给出的话,所有类的默认权重是1。如果是“balanced”模式的话,自动调节权重为n_samples/(n_classes * np.bincount(y))
random_state:当solver=='sag’或‘liblinear’时使用。int型,RandomState实例或None,可选,默认为None. 指定伪随机数生成器的种子,用来打乱数据。如果是int型的话,random_state就是随机数生成器使用的种子;如果给的是RandomState的实例的话,那么random_state就是随机数生成器;如果None的话,随机数生成器就是np.random。
solver:字符型,{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’},默认为“lbfgs”。用于优化问题的算法。

  • 对于小数据集,'liblinear’是一个很好的选择,对于大数据集,'sag’和‘saga’更快。
  • 对于多分类问题,只有’newton-cg’,‘sag’,'saga’和‘lbfgs’处理多项损失(multinomial loss),‘liblinear’对于多分类问题采取的是OvR拆分法
  • ‘newton-cg’,'lbfgs’和‘sag’只能才用L2正则项,而‘liblinear’和‘saga’则可才用L1正则项
    注意:‘sag’和‘saga’的快速收敛需要特征归一化。可以通过sklearn.preprocessing来实现特征归一化。

max_iter:int型,默认为100。只有solvers为{newton-cg,sag,lbfgs}有用。最大的迭代次数。
multi_class:字符型,{‘ovr’,‘multinomial’,‘auto’},默认为‘auto’。如果选择’ovr’,则代表这是一个0-1分类问题。如果选择’multinomial’的话,损失最小化就是整个概率分布的多项损失,包括数据是二分类的情况,如果solver=‘liblinear’,不存在这个选项。‘auto’的话,如果是二分类自动选择’ovr‘,如果solver=‘liblinear’或者其他情况,自动选择’multinomial’.
verbose:int型,默认为0。日志冗长度。对于solvers='liblinear’或‘lbfgs’,将verbose设置为任意整数用于显示信息。0:不输出训练过程,1:偶尔输出,>1:对每个子模型都输出。
warm_start:bool型,默认为False.当设置为True时,重新利用之前的结果来初始化,否则的话,清除之前的结果。如果是solver='liblinear’的话,该参数无效。
n_jobs:int型或None,可选(默认为None)。当multi_class='ovr’时CPU并行使用的数量。如果solver='liblinear’的话,该参数被无视。-1表示利用所有的处理器。

属性
classes_:array,shape(n_classes,),类的标签的列表
coef_: array, shape (1, n_features) or (n_classes, n_features),在决策函数中各特征的系数。如果是二分类问题的话,shape(1,n_features)。特别是,当multi_class='multinomial’时,coef_ 代表结果为1(True)的情况,-coef代表结果为0(False)的情况。
intercept:array,shape(1,)or(n_classes,)。在决策方程中的截距。如果fit_intercept为0的话,截距就为0。
n_iter:array,shape(n_classes,) or (1,)。所有类别的实际迭代次数。如果是二分类或是多项分类的话,返回一个元素。如果是solver=liblinear,只返回所有累呗的最大迭代次数。

方法
decision_function(X): 返回样本距离超平面的距离。
desify():将参数转换为np.ndarray形式输出
fit(X,y,sample_weight=None):训练
get_params(deep=True):获得参数
predict(X):预测
predict_log_proba(X):返回样本对于每一类的对数概率
predict_proba(X):返回样本对于每一类的概率
score(X, y[, sample_weight]):返回给出的测试数据和标签的平均准确率
set_params(**params):改变参数
sparsify():将参数转换为稀疏的格式

Sklearn库中Logistic Regression函数各个参数总结   Logistics Regression参数名称 含义   函数调用形式 LogisticRegression(penalty='l2',dual=False,tol=1e-4,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,rando... 阅读详情

相关推荐

逻辑回归模型(二)——sklearn实现逻辑回归(logistic regression)

【Modeling class probabilities via logistic regression】 类概率的逻辑回归建模 , 事件发生的几率(odds)定义为 事件发生概率与事件未发生概率的比值。logit函数代表事件的几率,其中p代表我们所预测事件发生的概率。 sigmoid 函数(S形函数) , 如下图sigmoid函数输入为全体实数,将输入转化为(0,1)...

Amy_mm的博客 6342

sklearn 逻辑回归(Logistic Regression)详解

sklearn 逻辑回归(Logistic Regression)详解

qq_44511163的博客 4590

9.sklearn——logistic regression 参数解释 及 案例

sklearn logistic regression; 参数; 案例; 混淆矩阵。

菜鸟打怪升级副本 1万+

logistics回归之sklearn中的LogisticRegressionCV

一、Logistic回归的认知与应用场景 Logistic回归为概率型非线性回归模型,是研究二分类观察结果与一些影响因素之间关系的 一种多变量分析方法。通常的问题是,研究某些因素条件下某个结果是否发生,比如医学中根据病人的一些症状 来判断它是否患有某种病。 二、LR分类器 LR分类器,即Logistic Regression Classifier。 在分类情形下,经过学习后的LR分类器...

lyy的博客 1万+

Cursor聊天记录迁移工具:实现跨设备AI对话同步与备份

在软件开发中,数据持久化与迁移是常见需求,尤其当工具依赖本地存储时。SQLite作为轻量级关系型数据库,因其嵌入式、零配置特性,常被用于存储应用状态与用户数据。其WAL(预写式日志)模式提升了并发性能,但也增加了数据操作复杂性。通过命令行工具与JSON序列化技术,可以实现结构化数据的提取、转换与安全迁移,这对于保障开发资产的连续性与可移植性具有重要价值。例如,在AI辅助编程场景下,开发者与AI的对话记录包含关键的问题分析、解决方案与决策逻辑,是重要的上下文资产。cursor-chat-transfer工具正

weixin_42551967的博客 534

NE555构成多谐振荡器及三角波、正弦波的生成(附工程文件)

NE555构成多谐振荡器及三角波、正弦波的生成 续上一篇:NE555基本原理及相关公式的推导

qq_49979053的博客 5万+

sklearn 学习: Logistic Regression 中的 coef_ 和 intercept_ 的解释

文章目录前言一、sklearn 中的Logistic Regression?二、示例代码说明1.引入库函数2.样本数据3.数据集划分4.模拟LR的计算5.应用和比较致谢 前言 Logistic Regression是机器学习领域中一种比较简单的学习器,该学习器的目标是根据训练样本的特征和标记拟合出如下的映射函数f(X)的系数 w0,w1,w2,wn: f(X)=11+e−(w0+w1x1+w2x2+...+wnxn) f(X)=\frac1{1+e^{-(w_0+w_1x_1+w_2x_2+...+w_n

weixin_42527994的博客 1万+

Zabbix Trigger actions访问出现500

本篇博客详细介绍了Zabbix访问'Trigger actions'出现的错误状况,访问界面出现500,并提供了解决方案。

格子的博客 564

sklearn logistic regression学习

1. linear regression linear_model.LinearRegression() print(__doc__) # Code source: Jaques Grobler # License: BSD 3 clause import matplotlib.pyplot as plt import numpy as np from sklearn import d...

闲敲棋子落灯花 1178

【软考高级架构】论文范文16——论分布式缓存架构设计及其应用

随着互联网业务的快速发展,高并发访问和海量数据处理对系统响应时间提出了极高要求,传统基于磁盘的数据库存储已难以满足毫秒级的性能需求。分布式缓存作为一种高性能、可扩展的数据存储中间件,能够有效减轻后端数据库压力、加速热点数据访问、提升系统吞吐量,已成为高并发系统架构中的核心组件。本文以笔者主导的某大型电商平台秒杀系统建设项目为案例,围绕分布式缓存架构设计展开论述。笔者担任系统架构师,主导了缓存选型、数据分片策略、缓存一致性方案、高可用架构及缓存穿透/雪崩/击穿防护机制的设计与落地。

qq837993702的博客 164

从开发到生产:Power APP 的应用和编程实践

一旦您在开发环境中完成了应用程序的开发、调试和测试,就可以将其部署到生产环境中供用户使用。在 Power APP Studio 中,您可以选择将应用程序发布到 Power APP 网关或将其嵌入到其他应用程序中。使用 Power APP Studio 内置的调试工具,您可以逐步执行应用程序并查看变量的值,以确保逻辑的正确性。在上述代码中,我们通过将两个文本输入框(TextInput1 和 TextInput2)中的文本转换为数字,并将它们相加,将结果存储在 Result 变量中。

2301_79326510的博客 1504

用Sklearn和Statsmodels来做linear_regression和Logistic_regression注意事项

用Sklearn和Statsmodels来做linear_regression和Logistic_regression注意事项,区别。主要在于 intercept 项,和 regularization。

2401_83026894的博客 1014

数学之美:欣赏超越数e

文章目录一、e为何物?二、利息与e的关系1、利息问题2、计算利息3、欣赏螺旋线(1)螺旋线概述(2)绘制螺旋线三、e和π 一、e为何物? e是一个无限不循环小数,其值约等于2.718281828…,它是一个超越数,有时也称为欧拉数(Euler’s Number)。 以e为底的对数称为自然对数(Natural Logarithm),数学中使用自然这个词的还有自然数(Natural Number)。 这里的“自然”并不是现代人所习惯的“大自然”,而是有点儿“天然存在,非人为”的意思。 二、利息与e的关系

howard2005的专栏 1718

利用OpenCV与Sklearn实现的Logistic Regression

学习机器学习已经有一周了。和许多机器学习的初学者一样,首先接触的就是Linear Regression和 Logistic Regression. 二者都是在确定了方法集(Model)之后,利用Gradient Descent 求的相关损失函数的最小值,从而确定权重W以及偏置Bias的过程。但是,二者在Model , Loss Functions 以及如何找最佳解答方向上有所区别,具体区别如下...

magicboom的博客 836

【WRF数据准备】生成 LCZ 对应的FRC_URB2D

WRF 静态地理数据准备

WW、forever的博客 412

vue3+vite:引入tailwindcss不生效的原因,详细解决Tailwind配置没问题但就是不生效的情况,配置正确无报错但样式没有生效(包括tailwindcss在Vue2使用不生效解决方案)

vue3 tailwind使用教程以及tailwind不生效的问题,vue3+vite引入tailwindcss不生效的原因,tailwindcss配之后不生效怎么办,如何解决tailwinscss不生效的原因,Vue3项目使用tailwindcss在Vue2使用,不生效解决,如何解决使用 Tailwind CSS 后出现的样式不生效的问题?tailwindcss配之后不生效 tailwindcss不生效,为什么我的 Tailwind css 类没生效,解决使用 Tailwind 时样式不生效的问题,配置没

✅ 精选推荐文章 4128

Sklearn.logistic_regression

在scikit-learn中,与逻辑回归有关的主要有3个类,LogisticRegression, LogisticRegressionCV 和logistic_regression_path。 LogisticRegression和LogisticRegressionCV的主要区别是LogisticRegressionCV使用交叉验证来选择正则化系数C,而LogisticRegression需...

kakak_的博客 536

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

sklearn - Logistic Regression

原文链接:https://scikitlearn.org/stable/modules/linear_model.html#logistic-regression 1.1.11 Logistic regression 逻辑回归,尽管它名字叫回归,但它是一个线性分类模型,而不是回归模型。逻辑回归在一些文献中也被称为logit回归,最大熵分类(MaxEnt)或者对数线性分类器。这个模型中,对单个输入样...

Dear_D的博客 1138

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

sklearn---Logistic Regression

一、什么是逻辑回归? 一种名为“回归”的线性分类器,其本质是由线性回归变化而来的,一种广泛使用于分类问题中的广义回归算法 面试高危问题:Sigmoid函数的公式和性质   Sigmoid函数是一个S型的函数,当自变量z趋近正无穷时,因变量g(z)趋近于1,而当z趋近负无穷时,g(z)趋近 于0,它能够将任何实数映射到(0,1)区间,使其可用于将任意值函数转换为更适合二...

dili8870的博客 643

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【阿里云天池】task01 基于sklearn的Logistic Regression分类实现

文章目录一. 逻辑回归算法原理及应用介绍1.1. 逻辑回归的介绍1.2. 逻辑回归的算法原理1.3. 逻辑回归的应用二. 入门Demo2.1. 模型参数查看2.2. 模型可视化2.3. 模型预测 一. 逻辑回归算法原理及应用介绍 1.1. 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)是一个分类模型,并且广泛应用于各个领域之中。 其最为突出的两点就是其模型简单(部署快!)和模型的可解释性强(用于学术研究的因子分析 & 企业内数分的归因)。 优劣势: 优点: 1.实现简单

weixin_45775259的博客 453

sklearn实现逻辑回归(Logistic Regression)

在这篇文章中,我们将深入探索逻辑回归——一种在统计学和机器学习领域广泛应用的分类算法,特别是在处理二分类问题时。逻辑回归不仅以其简洁性和强大的解释性著称,还因其在多个领域的广泛应用而备受青睐。

优快云 精品推荐 4305

【sklearn学习】linear regression & logistic regression

linear regression from sklearn.linear_model import LinearRegression # 导入线性回归模型 model = LinearRegression() # 定义模型 model.fit(X_train, y_train) # 训练模型 print("输出参数w:",model.coef_) # 输出模型参数w print("输出参数b:",model.intercept_) # 输出参数b polynomial regression np.ran

ro_ran的博客 1144

【机器学习】sklearn-LR调参-Logistic Regression

sklearn中LogisticRegression的API如下,官方文档:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression class sklearn.linear_model.Logi...

小白兔的窝 7251

Python sklearn逻辑回归(Logistic Regression,LR)参数

https://blog.youkuaiyun.com/sun_shengyun/article/details/53811483 Sklearn库中Logistic Regression函数各个参数 文章目录前言参数 前言   在scikit-learn中,与逻辑回归有关的主要是这3个类。LogisticRegression, LogisticRegressionCV 和logistic_regression_path。其中LogisticRegression和LogisticRegressionCV的主要区别

weixin_50304531的博客 1万+

sklearn提供的Logistic Regression库中各个参数的含义详解

转载地址:https://blog.youkuaiyun.com/CherDW/article/details/54891073 逻辑回归:可以做概率预测,也可用于分类,仅能用于线性问题。通过计算真实值与预测值的概率,然后变换成损失函数,求损失函数最小值来计算模型参...

谁谓荼苦,其甘如荠 2万+
上一篇: 机器学习中L1,L2范数的理解
下一篇: sklearn.model_selection
Hiappsus
博客等级 码龄10年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值