sklearn.linear_model.LogisticRegression()函数解析(最清晰的解释)
欢迎关注WX公众号【程序员管小亮】sklearn.linear_model.LogisticRegression()函数全称是Logistic回归aka logitMaxEnt分类器。classsklearn.linear_model.LogisticRegression(penaltyl2,dualFalse,tol0.0001,C1.0,fit_interceptTrue,intercept_scaling1,class_weightNone,random_stateNone,solverlbfgs,max_iter100,multi_classauto,verbose0,warm_startFalse,n_jobsNone,l1_ratioNone)参数penalty惩罚项str类型可选参数为l1和l2默认为l2。用于指定惩罚项中使用的规范。newton-cg、sag和lbfgs求解算法只支持L2规范。L1G规范假设的是模型的参数满足拉普拉斯分布L2假设的模型参数满足高斯分布所谓的范式就是加上对参数的约束使得模型更不会过拟合(overfit)但是如果要说是不是加了约束就会好这个没有人能回答只能说加约束的情况下理论上应该可以获得泛化能力更强的结果。dual对偶或原始方法bool类型默认为False。对偶方法只用在求解线性多核(liblinear)的L2惩罚项上。当样本数量样本特征的时候dual通常设置为False。tol停止求解的标准float类型默认为1e-4。就是求解到多少的时候停止认为已经求出最优解。c正则化系数λ的倒数float类型默认为1.0。必须是正浮点型数。像SVM一样越小的数值表示越强的正则化。fit_intercept是否存在截距或偏差bool类型默认为True。intercept_scaling仅在正则化项为”liblinear”且fit_intercept设置为True时有用。float类型默认为1。class_weight用于标示分类模型中各种类型的权重可以是一个字典或者balanced字符串默认为不输入也就是不考虑权重即为None。如果选择输入的话可以选择balanced让类库自己计算类型权重或者自己输入各个类型的权重。举个例子比如对于0,1的二元模型我们可以定义class_weight{0:0.9,1:0.1}这样类型0的权重为90%而类型1的权重为10%。如果class_weight选择balanced那么类库会根据训练样本量来计算权重。某种类型样本量越多则权重越低样本量越少则权重越高。当class_weight为balanced时类权重计算方法如下n_samples / (n_classes * np.bincount(y))。n_samples为样本数n_classes为类别数量np.bincount(y)会输出每个类的样本数例如y[1,0,0,1,1],则np.bincount(y)[2,3]。那么class_weight有什么作用呢 在分类模型中我们经常会遇到两类问题第一种是误分类的代价很高。比如对合法用户和非法用户进行分类将非法用户分类为合法用户的代价很高我们宁愿将合法用户分类为非法用户这时可以人工再甄别但是却不愿将非法用户分类为合法用户。这时我们可以适当提高非法用户的权重。第二种是样本是高度失衡的比如我们有合法用户和非法用户的二元样本数据10000条里面合法用户有9995条非法用户只有5条如果我们不考虑权重则我们可以将所有的测试集都预测为合法用户这样预测准确率理论上有99.95%但是却没有任何意义。这时我们可以选择balanced让类库自动提高非法用户样本的权重。提高了某种分类的权重相比不考虑权重会有更多的样本分类划分到高权重的类别从而可以解决上面两类问题。random_state随机数种子int类型可选参数默认为无仅在正则化优化算法为sag,liblinear时有用。solver优化算法选择参数只有五个可选参数即newton-cg,lbfgs,liblinear,sag,saga。默认为liblinear。solver参数决定了我们对逻辑回归损失函数的优化方法有四种算法可以选择分别是liblinear使用了开源的liblinear库实现内部使用了坐标轴下降法来迭代优化损失函数。lbfgs拟牛顿法的一种利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。newton-cg也是牛顿法家族的一种利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。sag即随机平均梯度下降是梯度下降法的变种和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度适合于样本数据多的时候。saga线性收敛的随机优化算法的的变重。总结liblinear适用于小数据集而sag和saga适用于大数据集因为速度更快。对于多分类问题只有newton-cg,sag,saga和lbfgs能够处理多项损失而liblinear受限于一对剩余(OvR)。啥意思就是用liblinear的时候如果是多分类问题得先把一种类别作为一个类别剩余的所有类别作为另外一个类别。一次类推遍历所有类别进行分类。newton-cg,sag和lbfgs这三种优化算法时都需要损失函数的一阶或者二阶连续导数因此不能用于没有连续导数的L1正则化只能用于L2正则化。而liblinear和saga通吃L1正则化和L2正则化。同时sag每次仅仅使用了部分样本进行梯度迭代所以当样本量少的时候不要选择它而如果样本量非常大比如大于10万sag是第一选择。但是sag不能用于L1正则化所以当你有大量的样本又需要L1正则化的话就要自己做取舍了。要么通过对样本采样来降低样本量要么回到L2正则化。从上面的描述大家可能觉得既然newton-cg, lbfgs和sag这么多限制如果不是大样本我们选择liblinear不就行了嘛错因为liblinear也有自己的弱点我们知道逻辑回归有二元逻辑回归和多元逻辑回归。对于多元逻辑回归常见的有one-vs-rest(OvR)和many-vs-many(MvM)两种。而MvM一般比OvR分类相对准确一些。郁闷的是liblinear只支持OvR不支持MvM这样如果我们需要相对精确的多元逻辑回归时就不能选择liblinear了。也意味着如果我们需要相对精确的多元逻辑回归不能使用L1正则化了。max_iter算法收敛最大迭代次数int类型默认为10。仅在正则化优化算法为newton-cg, sag和lbfgs才有用算法收敛的最大迭代次数。multi_class分类方式选择参数str类型可选参数为ovr和multinomial默认为ovr。ovr即前面提到的one-vs-rest(OvR)而multinomial即前面提到的many-vs-many(MvM)。如果是二元逻辑回归ovr和multinomial并没有任何区别区别主要在多元逻辑回归上。OvR和MvM有什么不同OvR的思想很简单无论你是多少元逻辑回归都可以看做二元逻辑回归。具体做法是对于第K类的分类决策我们把所有第K类的样本作为正例除了第K类样本以外的所有样本都作为负例然后在上面做二元逻辑回归得到第K类的分类模型。其他类的分类模型获得以此类推。而MvM则相对复杂这里举MvM的特例one-vs-one(OvO)作讲解。如果模型有T类我们每次在所有的T类样本里面选择两类样本出来不妨记为T1类和T2类把所有的输出为T1和T2的样本放在一起把T1作为正例T2作为负例进行二元逻辑回归得到模型参数。我们一共需要T(T-1)/2次分类。可以看出OvR相对简单但分类效果相对略差这里指大多数样本分布情况某些样本分布下OvR可能更好。而MvM分类相对精确但是分类速度没有OvR快。如果选择了ovr则4种损失函数的优化方法liblinearnewton-cg,lbfgs和sag都可以选择。但是如果选择了multinomial,则只能选择newton-cg, lbfgs和sag了。verbose日志冗长度int类型。默认为0。就是不输出训练过程1的时候偶尔输出结果大于1对于每个子模型都输出。warm_start热启动参数bool类型。默认为False。如果为True则下一次训练是以追加树的形式进行重新使用上一次的调用作为初始化。n_jobs并行数。int类型默认为1。1的时候用CPU的一个内核运行程序2的时候用CPU的2个内核运行程序。为-1的时候用所有CPU的内核运行程序。还有其他参数例子fromsklearn.datasetsimportload_irisfromsklearn.linear_modelimportLogisticRegressionX,yload_iris(return_X_yTrue)clfLogisticRegression(random_state0).fit(X,y)clf.predict(X[:2,:])array([0,0])clf.predict_proba(X[:2,:])array([[9.8...e-01,1.8...e-02,1.4...e-08],[9.7...e-01,2.8...e-02,...e-08]])clf.score(X,y)0.97...Logistic 回归算法实现理论和代码在博客《机器学习实战》学习笔记五Logistic 回归

相关新闻

PHP:数组函数(1)

PHP:数组函数(1)

数组函数: 1.需求: 1)获取数组中的value. function getval($arr){foreach($arr as $key>$val){$row[]$val;}return $row; }** <?php $arrarray(item1>linux,item2>php,item3>java,item4>mysql,item5>jquery );// 数组遍历foreach($arr as $key>$val){…

2026/10/14 1:43:30 阅读更多 →
NBM7100A与PIC18F56K42实现超低功耗物联网设备设计

NBM7100A与PIC18F56K42实现超低功耗物联网设备设计

1. 项目背景与核心挑战在物联网设备和便携式电子产品的设计中&#xff0c;如何最大化初级电池&#xff08;不可充电电池&#xff09;的使用寿命一直是个关键难题。我最近在一个野外环境监测项目中使用NBM7100A电源管理芯片搭配PIC18F56K42微控制器&#xff0c;成功将CR2032纽扣…

2026/10/14 6:32:20 阅读更多 →
关于MySQL多表关联时过滤条件的位置

关于MySQL多表关联时过滤条件的位置

简单的一个Demo说明下问题表A和表B关联查询&#xff0c;以project_id4为过滤条件&#xff0c;查询结果返回表A中的ID&#xff0c;name&#xff0c;表B中的project_id,如果表B中没有和表A匹配的记录则a.project_id返回null&#xff0c;于是第一次我就写出了这样的SQLSELECTt.id,…

2026/10/12 22:13:07 阅读更多 →

最新新闻

2026年10月北京市联通宽带实测办理避坑全攻略

2026年10月北京市联通宽带实测办理避坑全攻略

上个月我翻了一下家里的宽带账单&#xff0c;一年算下来花了快两千块。很多人有个反常识的误区&#xff0c;觉得宽带资费越贵&#xff0c;网速就绝对越快。其实我拿着四家运营商的账单横向对比后发现&#xff0c;花双倍钱办的千兆宽带&#xff0c;实际体验甚至不如邻居办的五百…

2026/10/15 7:40:00 阅读更多 →
AVP-Loc地下车库定位方案:PCA、ICP与ESKF融合实战

AVP-Loc地下车库定位方案:PCA、ICP与ESKF融合实战

1. 从泊车场景说起&#xff1a;AVP-Loc到底在解决什么问题自动代客泊车&#xff08;Automated Valet Parking&#xff0c;AVP&#xff09;这个场景&#xff0c;说白了就是让车自己去找车位、自己停进去&#xff0c;全程不需要人坐在驾驶位上。听起来很美好&#xff0c;但真正做…

2026/10/15 7:40:00 阅读更多 →
Poppy协议:面向AI代理的身份声明与交互范式革新

Poppy协议:面向AI代理的身份声明与交互范式革新

我无法根据当前输入内容生成符合要求的博文。原因如下&#xff1a;输入中仅提供了项目标题“Sierra发布Poppy协议&#xff1a;AI代理终于不用再假装人类了”&#xff0c;但未提供任何实际可用的项目正文、关键词列表或摘要描述。所有后续字段&#xff08;相关热搜词、最新网络热…

2026/10/15 7:40:00 阅读更多 →
FreeRTOS到Zephyr:BLE工程师迁移实战与认知重构

FreeRTOS到Zephyr:BLE工程师迁移实战与认知重构

我前前后后带团队迁移过几个 BLE 项目&#xff0c;从单模 Beacon 到复杂的多连接网关都有。很多工程师第一次接触 Zephyr 时&#xff0c;最大的感受不是“难”&#xff0c;而是“别扭”——明明都是写嵌入式&#xff0c;怎么连个 GPIO 都要过一遍设备树&#xff1f;这种别扭的根…

2026/10/15 7:40:00 阅读更多 →
PowerShell运行OpenClaw中文乱码?从UTF-8编码到终端配置的完整修复方案

PowerShell运行OpenClaw中文乱码?从UTF-8编码到终端配置的完整修复方案

用 PowerShell 跑 OpenClaw 中文乱码&#xff1f;我踩完坑之后的完整解法你大概率是刚刚把 OpenClaw 部署好&#xff0c;兴冲冲地在 PowerShell 里启动它&#xff0c;结果满屏的中文变成了一堆“锟斤拷”或者“????”——先别急着怀疑是项目的问题&#xff0c;更别急着重装…

2026/10/15 7:40:00 阅读更多 →
基于集群划分的分布式光伏配电网电压协调控制与Matlab实现

基于集群划分的分布式光伏配电网电压协调控制与Matlab实现

分布式光伏一多起来&#xff0c;配电网最先暴露问题的往往是电压。光照一强、负荷又轻的时候&#xff0c;馈线末端电压能一路冲到1.06甚至1.07标幺值&#xff0c;逆变器要么降出力、要么直接脱网保护&#xff0c;好好的发电量白白丢了。传统的变电站有载调压和固定电容器组又反…

2026/10/15 7:39:00 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时&#xff0c;网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上&#xff0c;依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里&#xff0c;扩缩容到底难在哪做过大模型推理服务部署的人&#xff0c;大概都经历过这样的场景&#xff1a;一个团队共用一套推理集群&#xff0c;A 业务跑的是 7B 的小模型&#xff0c;B 业务跑的是 72B 的大模型&#xff0c;C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子&#xff1a;一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减&#xff0c;为了把启动时间压进两秒以内&#xff0c;我手贱地把一串自认为“没用”的 systemd 服务给 disable 了&#xff0c;其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →