当前位置: 首页 > article >正文

《机器学习》从入门到实战——逻辑回归

目录

一、简介

二、逻辑回归的原理

1、线性回归部分

2、逻辑函数(Sigmoid函数)

3、分类决策

 4、转换为概率的形式使用似然函数求解

5、对数似然函数

​编辑

6、转换为梯度下降任务

三、逻辑回归拓展知识

1、数据标准化

(1)、0~1标准化

(2)、Z标准化 

2、 交叉验证

K折交叉验证

3、过拟合、欠拟合

(1)、过拟合

(2)、欠拟合

4、正则化惩罚

5、混淆矩阵

四、总结


一、简介

机器学习中的逻辑回归是一种广泛使用的分类算法,尤其适用于二分类问题(也可以扩展到多分类问题)。它的核心思想是通过线性回归模型预测概率,然后使用逻辑函数(如 Sigmoid 函数)将概率映射到分类标签。

二、逻辑回归的原理

逻辑回归是在线性回归的基础上使得线性函数映射Sigmoid函数上从而达到分类的效果。

1、线性回归部分

 使用线性方程计算输入特征的加权和:

其中:

  • w0,w1,…,wnw0​,w1​,…,wn​ 是模型参数(权重)。

  • x1,x2,…,xnx1​,x2​,…,xn​ 是输入特征。

2、逻辑函数(Sigmoid函数)

将线性回归的结果 zz 映射到 [0, 1] 之间的概率值:

其中:

  • P(y=1∣x)P(y=1∣x) 是样本属于类别 1 的概率。

  • Sigmoid 函数的输出值越接近 1,表示样本属于类别 1 的概率越大。

3、分类决策

根据概率值进行预测:

整合:

 4、转换为概率的形式使用似然函数求解

5、对数似然函数

6、转换为梯度下降任务

求偏导

参数更新

三、逻辑回归拓展知识

1、数据标准化

(1)、0~1标准化

也叫离差标准化,是对原始数据的线性变换,使结果映射到[0,1]区间。

min(x)、max(x)分别代表样本的最小值和最大值。 

(2)、Z标准化 

这种方法基于原始数据的均值(mean)和标准差(stand ard deviation)进行数据的标准化。将A的原始值x使用z- score标准化到x'。

s为样本的标准差 。

2、 交叉验证

K折交叉验证

3、过拟合、欠拟合

(1)、过拟合

  • 定义:模型在训练集上表现很好,但在测试集上表现较差。

  • 原因

    • 模型过于复杂(例如,参数过多)。

    • 训练数据过少或噪声过多。

  • 解决方法

    • 增加训练数据。

    • 降低模型复杂度

    • 减少特征、使用正则化

(2)、欠拟合
  • 定义:模型在训练集和测试集上表现都不好。

  • 原因

    • 模型过于简单(例如,特征不足)。

    • 训练时间不足。

  • 解决方法

    • 增加特征或使用更复杂的模型。

    • 增加训练时间。

4、正则化惩罚

正则化是一种防止过拟合的技术,通过在损失函数中添加惩罚项来限制模型参数的大小。

 损失函数:

 正则化惩罚:

 正则化惩罚种类

5、混淆矩阵

混淆矩阵(Confusion Matrix)是用于评估分类模型性能的一种表格,特别适用于二分类和多分类问题。它展示了模型预测结果与真实标签之间的对比情况,帮助我们直观地分析分类模型的准确性、错误类型等。

对于二分类

  • 真正例 (True Positive, TP):模型正确预测为正类的样本。

  • 假正例 (False Positive, FP):模型错误预测为正类的样本(实际为负类)。

  • 假反例 (False Negative, FN):模型错误预测为负类的样本(实际为正类)。

  • 真反例 (True Negative, TN):模型正确预测为负类的样本。

 计算公式

  • 召回率(Recall)是分类模型评估中的一个重要指标,主要用于衡量模型在识别正类样本(即实际为正类的样本)时的表现。它反映了模型将正类样本正确分类的能力。
  • 特异度(Specificity)是分类模型评估中的一个重要指标,主要用于衡量模型在识别负类样本(即实际为负类的样本)时的表现。它反映了模型将负类样本正确分类的能力。
  • F1 分数(F1 Score)是分类模型评估中的一个重要指标,用于综合衡量模型的精确率(Precision)召回率(Recall)。它是精确率和召回率的调和平均值,旨在平衡两者,特别适用于正负样本分布不均衡的场景。 

四、总结

逻辑回归是一种简单但强大的分类算法,适用于线性可分或近似线性可分的数据。通过标准化、正则化和交叉验证等技术,可以进一步提升其性能。尽管逻辑回归对非线性数据的拟合能力有限,但在许多实际应用中仍然表现出色。 


http://www.kler.cn/a/459684.html

相关文章:

  • 使用qiankun搭建微前端应用及踩坑
  • Spring Boot 的自动配置,以rabbitmq为例,请详细说明
  • Mac M2基于MySQL 8.4.3搭建(伪)主从集群
  • 【Go学习】-01-2-常见类型及关键字
  • GitHub的简单操作
  • 云从科技Java面试题及参考答案
  • Spring Boot日志处理
  • hadoop sql 执行log
  • ARM200~500部署
  • 第11关:博客系统之查询博客评论
  • 揭秘 Fluss 架构组件
  • 手撕算法-严刑拷打
  • 基础数据结构--二叉树
  • 搭建知识中台:大健康零售行业的数字化升级之路
  • Apollo 自动驾驶全景解析
  • keepalived详细笔记
  • PHP语言的软件开发工具
  • 金蝶V10中间件的使用
  • STM32 软件I2C读写
  • 用c++或c 做一个深度遍历的 棋谱树,我用来 做围棋棋谱的教学,要求节省内存、效率高,便于保存(棋谱)和拷贝棋谱
  • Unity 使用UGUI制作卷轴开启关闭效果
  • 【C#】元组
  • 【GO基础学习】gin的使用
  • ArcGIS教程(009):ArcGIS制作校园3D展示图
  • 基于 `android.accessibilityservice` 的 Android 无障碍服务深度解析
  • 20241227通过配置nomodeset参数解决更新grub之后,ubuntu20.04.5无法启动的问题