机器学习:逻辑回归原理、参数介绍和优缺点

devtools/2024/9/24 20:26:20/

1、概念

        逻辑回归是一种统计方法,用于分析一个或多个自变量(解释变量)与一个二元因变量(响应变量)之间的关系。虽然称为“回归”,但逻辑回归实际上是一种分类算法,因为它的输出是类别标签,而不是连续值。

2、sigmoid函数

        

        特点:自变量为负无穷到正无穷,值域为[0,1]

        线性回归结果

        

        带入sigmoid函数

        

        二分类任务

        

        整合

        

3、求解

        1、似然函数

        

        2、对数函数

        

        3、转换梯度下降

        

        4、目标函数

        

        5、求偏导

        

        

        6、参数更新

        

4、逻辑回归参数

        1、概念

        逻辑回归是一种广泛使用的线性模型,用于二分类问题。在Python的sklearn.linear_model模块中的LogisticRegression类提供了实现逻辑回归的接口。

        2、完整参数

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

        3、参数介绍

                1、penalty

                        正则化方式有l1和l2两种:l1正则化使用绝对值作为惩罚项,即λ∑∣βi​∣,其中 𝜆λ 是正则化强度,𝛽𝑖βi​ 是模型参数。L1正则化倾向于产生稀疏的权重矩阵,即许多参数被压缩到零,规范假设的是模型的参数满足拉普拉斯分布。l2正则化使用平方值作为惩罚项,即 λ∑βi**2​。L2正则化倾向于使参数值接近零但不完全为零,从而减少模型复杂度,L2假设的模型参数满足高斯分布。

                2、dual

                        按默认即可。对偶方法只用在求解线性多核的L2惩罚项上。当样本数量>样本特征的时候,dual通常设置为False。

                3、tol

                        收敛容忍度。当改变小于tol时,算法会停止迭代。默认值:1e-4,容许停止标准,

                4、C

                        正则化项的强度(正则化项与误差项的权衡)。对于L1正则化,这个参数是正则化项的系数;对于L2正则化,这个参数的倒数是正则化项的系数。较小的C值意味着更大的正则化强度。

                5、fit_intercept

                        是否将截距项加入函数。如果设置为False,则模型不会加入截距项。默认加入。

                6、intercept_scaling

                        截距项的缩放因子。仅在正则化项为”liblinear”,且fit_intercept设置为True时有用。float类型,默认为1。

                7、class_weight

                        用于处理不平衡数据集,即某些类别的样本数远多于其他类别。通过调整类别权重,可以提高模型对少数类别的识别能力,从而提高模型的整体性能。关键点:自动权重计算、自定义权重字典、防止过拟合、提高模型公平性、与正则化结合使用、应用广泛。

                8、random_state

                        随机数生成器的种子。用于确保结果的可重复性。仅在正则化优化算法为sag,liblinear时有用。

                9、solver

                        用于优化的算法,默认为liblinear。不同的solver支持不同的正则化类型和多类分类策略。常用的solver包括'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'等。

                     1、newton-cg使用牛顿-拉夫森(Newton-Raphson)方法的共轭梯度变体来解决优化问题。适用于小型数据集,只支持L2正则化。

        2、lbfgs:使用L-BFGS算法,这是一种拟牛顿法,用于大规模数据集。支持L1和L2正则化。

        3、liblinear:一个高效的线性分类器库,用于解决具有L1正则化的问题。它使用坐标下降法,适合于稀疏数据。

        4、sag:用于大规模数据集的算法,支持L1和L2正则化。SAG是一种变体的随机梯度下降(SGD),它使用每个样本的随机子集来更新权重。

        5、saga:线性收敛的随机优化算法

                10、max_iter

                        最大迭代次数,int类型,默认为100在正则化优化算法为newton-cg, sag和lbfgs才有用,算法在达到这个迭代次数之前会尝试收敛。

                11、multi_class

                        多类分类策略。可以是'ovr'(one-vs-rest)或'multinomial''ovr'是默认值,适用于二分类和多分类问题;'multinomial'仅适用于多类问题,并且需要设置solver为支持多类逻辑回归算法

                12、verbose

                        日志冗长度,int类型。默认为0。就是不输出训练过程,1的时候偶尔输出结果,大于1,对于每个子模型都输出。

                13、warm_start

                        是否在之前的训练结果基础上继续训练。如果设置为True,则需要提供之前训练的coef_intercept_

                14、n_jobs

                        并行任务数,int类型,默认为1。可以设置为-1来使用所有可用的CPU核心。

                        

5、逻辑回归作为一种广泛使用的分类算法,具有以下优缺点:

优点:

  1. 易于理解和解释逻辑回归模型的参数(系数)可以直观地解释为特征对分类结果的影响。

  2. 数学基础坚实:基于最大似然估计,有着坚实的统计学基础。

  3. 计算效率高:对于二分类问题,逻辑回归的计算过程相对简单,训练和预测的速度都很快。

  4. 实现简单:大多数统计和学习>机器学习库都提供了逻辑回归的实现,易于使用。

  5. 适用于线性可分数据:当数据可以通过线性边界很好地分隔时,逻辑回归表现良好。

  6. 正则化支持:可以通过L1或L2正则化来控制模型复杂度,减少过拟合的风险。

  7. 概率解释:模型的输出可以解释为事件发生的概率,这在很多应用场景中非常有用。

  8. 处理多类问题:虽然基本形式是二分类,但逻辑回归可以通过一些策略(如one-vs-rest或multinomial)扩展到多类问题。

缺点:

  1. 对非线性问题效果有限:当数据特征之间存在复杂的非线性关系时,逻辑回归可能无法很好地拟合数据。

  2. 假设特征和对数几率是线性关系逻辑回归模型假设特征和对数几率(log-odds)之间是线性关系,这在某些情况下可能不成立。

  3. 敏感性问题逻辑回归对异常值敏感,异常值可能会对模型的系数估计产生较大影响。

  4. 需要特征缩放逻辑回归模型对特征的尺度敏感,通常需要对特征进行标准化或归一化。

  5. 多重共线性问题:如果特征之间存在高度相关性,可能会影响模型的稳定性和系数的解释性。

  6. 预测概率的准确性受限逻辑回归预测的是条件概率,其准确性受限于训练数据的分布。

  7. 对不平衡数据集的挑战:在类别不平衡的数据集中,逻辑回归可能会偏向于多数类,需要通过调整类别权重或使用其他技术来解决。

  8. 模型选择问题:选择合适的正则化参数(如C值)和solver可能需要大量的实验和调整。


http://www.ppmy.cn/devtools/96747.html

相关文章

Icecream Video Converter Pro v1.44 激活版下载安装教程 (专业的视频转换软件)

前言 Icecream Video Converter Pro是一款高性能的视频转换软件,支持多种视频格式的转换。其用户界面设计简洁易用,提供高质量的视频转换和编辑功能。借助GPU加速和多核处理技术,该软件大大提升了转换速度和效率,同时确保视频转换…

Python做统计图之美

Python数据分析可视化 案例效果图 import pandas as pd import matplotlib.pyplot as plt import matplotlib# 数据 data {"房型": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"住宅类型": ["普通宅", "普通宅", "普通宅", &q…

【mysql】mysql体系结构

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

Windows平台RTSP|RTMP播放器如何实时调节音量

我们在做Windows平台RTSP、RTMP播放器的时候,有这样的技术需求,特别是多路监控的时候,并不是每一路audio都需要播放出来的,所以,这时候,需要有针对音量调节的设计: /** smart_player_sdk.cs* C…

DevExpress开发WPF应用实现对话框总结:编织界面的艺术之旅

在软件开发的浩瀚星空中,WPF(Windows Presentation Foundation)以其卓越的界面表现力和丰富的控件库,成为了众多开发者心中的璀璨明珠。而DevExpress,作为WPF领域的佼佼者,更是以其强大的组件库和易于集成的…

Redis(day 1)

一、概念 是一个高性能的(Key/Value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库。 五大数据类型: 1.String(字符串类型) 2.Hash(哈希) 3.List&#…

Python 在PDF中添加条形码、二维码

在PDF中添加条码是一个常见需求,特别是在需要自动化处理、跟踪或检索PDF文件时。作为一种机器可读的标识符,PDF中的条码可以包含各种类型的信息,如文档的唯一标识、版本号、日期等。以下是一篇关于如何使用Python在PDF中添加条形码或二维码的…

【网安第一章】——信息收集

文章目录 域名信息1. whois2.域名反查3. ICP备案查询4.天眼查5. 子域名信息1. 暴力枚举 6. 域名DNS信息CNAME记录MX记录TXT记录哪里可以查这些信息 IP信息1. 域名解析流程2. IP归属3. 如何获取CDN后面的真实IPCDN实现流程1. 超级ping2. 历史DNS3. 通过子域名查询IP4. 通过国外的…