当前位置:   article > 正文

全网最清楚的---逻辑回归(Logistic Regression)

逻辑回归

目录

一、什么是逻辑回归?

1.个人理解

2.逻辑回归所处理的数据

2.1.引入sigomd函数

2.2.sigmoid函数公式

2.3.sigmoid函数图像

3.引入梯度下降法

3.1.目的

3.2梯度下降法的数学推导

二、代码实现

1.目标

2.代码文件获取

3.详细代码

3.运行结果图

三、逻辑回归的优缺点

1.优点

2.缺点


一、什么是逻辑回归?

1.个人理解

       逻辑回归也称作logistic回归分析,是一种广义的线性回归分析模型,属于机器学习中的监督学习。其推导过程与计算方式类似于回归的过程,但实际上主要是用来解决二分类问题(也可以解决多分类问题)。通过给定的n组数据(训练集)来训练模型,并在训练结束后对给定的一组或多组数据(测试集)进行分类。其中每一组数据都是由p 个指标构成。

2.逻辑回归所处理的数据

       逻辑回归是用来进行分类的,下面我将给出一个简单的例子来解释。      

  • 我们给出一个人的 [身高,体重] 这两个指标,然后判断这个人是属于”胖“还是”瘦“这一类。对于这个问题,我们可以先测量n个人的身高、体重以及对应的指标”胖“,"瘦”,把胖和瘦分别用0和1来表示,把这n组数据输入模型进行训练。训练之后再把待分类的一个人的身高、体重输入模型中,看这个人是属于“胖”还是“瘦”
  • 如果数据是有两个指标,可以用平面的点来表示数据,其中一个指标为x轴,另一个为y轴;如果数据有三个指标,可以用空间中的点表示数据;如果是p维的话(p>3),就是p维空间中的点

2.1.引入sigomd函数

sigomd函数的作用:(Sigmoid 函数,也称为 Logistic 函数,是一个常用的激活函数,用于将输入映射到一个取值范围在0和1之间的输出。)

  1. 映射到概率值:逻辑回归的目标是预测样本属于某个类别的概率。通过 Sigmoid 函数,将线性回归模型的输出映射到0和1之间的概率值,方便进行分类判断。
  2. 可解释性:Sigmoid 函数的输出在0和1之间,可以被解释为样本属于某个类别的概率。例如,输出为0.8表示属于某个类别的概率为80%,输出为0.3表示属于该类别的概率为30%。

  3. 阈值确定:根据 Sigmoid 函数的输出概率,我们可以设定一个阈值(通常是0.5),将概率大于等于阈值的样本划分为一个类别,概率小于阈值的样本划分为另一个类别。

  4. 平滑性:Sigmoid 函数的输出具有平滑性质,梯度变化较为连续,有利于使用梯度下降等优化算法对模型参数进行更新和优化。

2.2.sigmoid函数公式

g(z)=11+ez

2.3.sigmoid函数图像

本质:将线性回归的结果映射到[0,1]区间上,实质上就是完成了二分类任务。

特点:

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

3.引入梯度下降法

3.1.目的

梯度下降法在逻辑回归中起到了优化模型参数、寻找最优解、调节学习率和处理大规模数据的作用。它是逻辑回归模型中常用的优化算法之一,能够有效地提升模型的性能.

3.2梯度下降法的数学推导

详细内容点击可见(梯度下降法

二、代码实现


1.目标

使用逻辑回归算法对鸢尾花数据集进行分类,并用散点图可视化了分类结果

2.代码文件获取

点击可下载使用:

鸢尾花训练数据.xlsx     鸢尾花测试数据.xlsx

3.详细代码

  1. import pandas as pd
  2. # 读取鸢尾花训练数据
  3. train_data = pd.read_excel('鸢尾花训练数据.xlsx')
  4. # 读取鸢尾花测试数据
  5. test_data = pd.read_excel('鸢尾花测试数据.xlsx')
  6. # 提取训练数据的特征列
  7. train_X = train_data[['萼片长(cm)','萼片宽(cm)','花瓣长(cm)','花瓣宽(cm)']]
  8. # 提取训练数据的目标列
  9. train_Y = train_data[['类型_num']]
  10. from sklearn.linear_model import LogisticRegression
  11. # 创建逻辑回归模型
  12. model = LogisticRegression()
  13. # 使用训练数据拟合模型,即进行训练
  14. model.fit(train_X, train_Y)
  15. # 对训练数据进行预测
  16. train_predictions = model.predict(train_X)
  17. # 打印训练数据的预测结果
  18. print(train_predictions)
  19. import matplotlib.pyplot as plt
  20. # 创建散点图,横坐标为训练数据的"萼片长(cm)",纵坐标为训练数据的"萼片宽(cm)",颜色由预测结果决定
  21. plt.scatter(train_X['萼片长(cm)'], train_X['萼片宽(cm)'], c=train_predictions)
  22. # 添加横坐标标签
  23. plt.xlabel('萼片长(cm)')
  24. # 添加纵坐标标签
  25. plt.ylabel('萼片宽(cm)')
  26. # 添加图表标题
  27. plt.title('鸢尾花分类结果')
  28. # 显示图表
  29. plt.show()

3.运行结果图

三、逻辑回归的优缺点

1.优点

  • 简单高效:逻辑回归模型相对简单,计算速度快,适用于处理大规模数据集。
  • 可解释性强:逻辑回归可以提供概率预测结果,可以解释特征对预测结果的影响程度。
  • 对稀疏数据友好:逻辑回归对于具有大量稀疏特征的数据集,表现较好。
  • 适用性广泛:逻辑回归可以用于二分类问题,也可以通过扩展到多类别问题。
  • 适用于线性可分问题:当样本数据近似线性可分时,逻辑回归模型能够取得较好的分类效果。

2.缺点

  • 假设线性关系:逻辑回归是一种线性模型,假设特征和目标之间存在线性关系。当数据具有复杂的非线性关系时,逻辑回归可能表现较差。
  • 对异常值敏感:逻辑回归对异常值较为敏感,特别是在特征空间较小的情况下,异常值可能对模型的性能产生较大影响。
  • 高度依赖特征选择:逻辑回归的性能和特征选择密切相关。选择不好的特征可能导致模型欠拟合或过拟合。
  • 无法处理非线性关系:逻辑回归本身是一种线性分类器,对于非线性关系的数据,逻辑回归模型无法很好地拟合。
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/475812
推荐阅读
相关标签
  

闽ICP备14008679号