news 2026/5/26 15:55:13

逻辑回归简介

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
逻辑回归简介

文章目录

    • 一、逻辑回归简介
    • 二、逻辑回归的原理
      • 1. Sigmoid函数
      • 2. 决策边界
      • 3. 损失函数
    • 三、逻辑回归的优势与局限
    • 四、示例:银行数据训练
      • 1. 数据准备与探索
      • 2. 特征选择与数据划分
      • 3. 模型训练与评估

一、逻辑回归简介

逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计学习方法,尤其擅长处理二分类问题。尽管名字中带有"回归",但它实际上是一种分类算法。逻辑回归通过Sigmoid函数将线性回归的输出映射到(0,1)区间,从而得到样本属于某一类别的概率。

二、逻辑回归的原理

1. Sigmoid函数

逻辑回归的核心是Sigmoid函数(也称为逻辑函数):
P ( y = 1 ∣ x ) = 1 1 + e − z P(y=1|x) = \frac{1}{1 + e^{-z}}P(y=1∣x)=1+ez1
其中z是输入特征的线性组合:z = w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n z = w₀ + w₁x₁ + w₂x₂ + ... + wₙxₙz=w0+w1x1+w2x2+...+wnxn

2. 决策边界

P ( y = 1 ∣ x ) ≥ 0.5 P(y=1|x) ≥ 0.5P(y=1∣x)0.5时,模型预测为正类;当P ( y = 1 ∣ x ) < 0.5 P(y=1|x) < 0.5P(y=1∣x)<0.5时,预测为负类。0.5这个阈值形成了决策边界。

3. 损失函数

逻辑回归使用交叉熵损失函数(对数损失函数),通过最大似然估计或梯度下降等优化方法寻找最优参数。

三、逻辑回归的优势与局限

优势:

  • 计算效率高,训练和预测速度快
  • 输出具有概率意义,可解释性强
  • 对线性可分或近似线性可分的数据表现良好
  • 不容易过拟合,尤其适合高维数据

局限:

  • 对非线性决策边界的数据效果有限
  • 对多重共线性敏感
  • 需要较大的样本量来保证参数估计的稳定性

四、示例:银行数据训练

1. 数据准备与探索

fromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScalerimportpandasaspdimportmatplotlib.pyplotaspltfrompylabimportmplfromsklearn.linear_modelimportLogisticRegressionfromsklearnimportmetrics# 读取数据并进行预处理data=pd.read_csv(r"creditcard.csv")scaler=StandardScaler()data["Amount"]=scaler.fit_transform(data[["Amount"]])data=data.drop(["Time"],axis=1)# 设置中文字体支持mpl.rcParams["font.sans-serif"]=["Microsoft YaHei"]mpl.rcParams["axes.unicode_minus"]=False# 查看正负例样本分布labels_count=pd.value_counts(data["Class"])print(labels_count)# 可视化样本分布plt.title("正负例样本数")plt.xlabel("类别")plt.ylabel("频数")labels_count.plot(kind='bar')plt.show()

2. 特征选择与数据划分

# 选择特征列column_names=['V1','V2','V3','V4','V5','V6','V7','V8','V9','V10','V11','V12','V13','V14','V15','V16','V17','V18','V19','V20','V21','V22','V23','V24','V25','V26','V27','V28','Amount']x_whole=data[column_names]y_whole=data[["Class"]]# 划分训练集和测试集(这里使用30%作为训练集)x_train_w,x_test_w,y_train_w,y_test_w=train_test_split(x_whole,y_whole,train_size=0.3,random_state=1000)

3. 模型训练与评估

# 创建并训练逻辑回归模型# C参数是正则化强度的倒数,较小的C值表示更强的正则化lr=LogisticRegression(C=0.01)lr.fit(x_train_w,y_train_w)# 在测试集上进行预测test_predicted=lr.predict(x_test_w)result=lr.score(x_test_w,y_test_w)# 输出详细的分类报告print(metrics.classification_report(y_test_w,test_predicted))

图中包含以下关键指标:

  • 精确率(Precision):预测为正例的样本中实际为正例的比例
  • 召回率(Recall):实际为正例的样本中被正确预测的比例
  • F1-score:精确率和召回率的调和平均数
  • 准确率(Accuracy):所有样本中被正确分类的比例
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 9:01:42

FlashAI Vision终极指南:企业级私有化多模态AI完整方案

FlashAI Vision终极指南&#xff1a;企业级私有化多模态AI完整方案 【免费下载链接】flashai_vision 项目地址: https://ai.gitcode.com/FlashAI/vision 在数据安全日益重要的今天&#xff0c;企业面临着一个关键挑战&#xff1a;如何在保证数据隐私的同时&#xff0c;…

作者头像 李华
网站建设 2026/5/26 7:54:33

软件测试面试题及答案

部署运行你感兴趣的模型镜像一键部署 导读 精选400道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、APP测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据…

作者头像 李华
网站建设 2026/5/26 9:02:29

软件测试面试题及答案【史上最全】

以下是软件测试相关的面试题及答案&#xff0c;欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&…

作者头像 李华
网站建设 2026/5/25 22:40:33

(17)注入自定义Date

我们前面说过&#xff0c;java.util.Date在Spring中被当做简单类型&#xff0c;简单类型在注入的时候可以直接使用value属性或value标签来完成。但我们之前已经测试过了&#xff0c;对于Date类型来说&#xff0c;采用value属性或value标签赋值的时候&#xff0c;对日期字符串的…

作者头像 李华
网站建设 2026/5/26 7:54:49

(18)Bean的生命周期

什么是Bean的生命周期 Spring其实就是一个管理Bean对象的工厂。它负责对象的创建&#xff0c;对象的销毁等。 所谓的生命周期就是&#xff1a;对象从创建开始到最终销毁的整个过程。 什么时候创建Bean对象&#xff1f; 创建Bean对象的前后会调用什么方法&#xff1f; Bean对象什…

作者头像 李华