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

线性回归逻辑回归-笔记

一、线性回归(Linear Regression)

1. 定义

线性回归是一种用于回归问题的算法,旨在找到输入特征与输出值之间的线性关系。它试图通过拟合一条直线来最小化预测值与真实值之间的误差。

2. 模型表示

线性回归模型假设目标变量(输出)和输入变量(特征)之间的关系是线性的,模型可以表示为:

其中:

  • y是目标变量(预测值)。
  • x1​,x2​,…,xn​ 是输入特征。
  • β0​ 是偏置项(截距)。
  • β1,β2,…,βn​ 是特征的系数(权重)。
  • ϵ是误差项。

3. 损失函数

线性回归的目标是最小化均方误差(Mean Squared Error, MSE),其损失函数定义为:

其中,yi 是真实值,y^i是模型预测值。

4. 解决方法

通过**最小二乘法(Ordinary Least Squares, OLS)**或梯度下降等方法,求解模型中的参数(权重和偏置项)。

二、逻辑回归(Logistic Regression)

1. 定义

逻辑回归是一种用于分类问题的算法,尽管名字中有“回归”一词,它本质上是一种分类算法,特别适用于二分类问题(如0/1、是/否、真/假等)。它通过估计事件发生的概率来进行分类。

2. 模型表示

逻辑回归的模型形式与线性回归类似,但它的输出是一个概率值,通过将线性回归结果输入到Sigmoid函数中,得到的值在0到1之间:

 其中,P(y=1∣x)P(y=1 | x)P(y=1∣x) 是类别为1的概率。

  • Sigmoid函数定义为:

 Sigmoid函数将线性回归的结果(可能为任意实数)映射到0和1之间,便于表示概率。

3. 损失函数

逻辑回归使用交叉熵损失(Cross-Entropy Loss),其损失函数为:

 其中:

  • yi是真实的标签(0或1)。
  • y^i是模型的预测概率。

4. 解决方法

逻辑回归的参数可以通过梯度下降等优化算法来求解。

三、线性回归与逻辑回归的区别 

特征线性回归(Linear Regression)逻辑回归(Logistic Regression)
类型回归算法(用于预测连续值)分类算法(用于预测类别)
目标变量连续型变量(如价格、温度等)二分类变量(0/1, 是/否等)
模型输出实数(可能在正无穷到负无穷之间)概率(0到1之间)
使用的函数线性函数Sigmoid函数
损失函数均方误差(MSE)交叉熵损失(Cross-Entropy)
应用场景回归问题,如房价预测、销量预测等分类问题,如信用违约预测、疾病诊断
解决方法最小二乘法或梯度下降梯度下降等优化方法
输出解释直接预测一个值预测某个事件发生的概率
特征之间的关系假设特征与目标值之间存在线性关系假设特征与分类概率之间有线性关系

主要区别总结

  1. 问题类型:线性回归用于解决回归问题,预测连续变量,而逻辑回归用于解决分类问题,通常是二分类问题。
  2. 输出值:线性回归的输出是一个实数,可能范围从负无穷到正无穷;逻辑回归的输出是一个0到1之间的概率值。
  3. 模型函数:线性回归直接使用线性函数进行预测,而逻辑回归将线性回归的结果通过Sigmoid函数转化为概率。
  4. 损失函数:线性回归使用均方误差(MSE)作为损失函数,而逻辑回归使用交叉熵损失(Cross-Entropy)。

 四、具体实践:Python代码示例

线性回归

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston
from sklearn.metrics import mean_squared_error# 加载数据
boston = load_boston()
X = boston.data
y = boston.target# 分割数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)# 预测
y_pred = model.predict(X_test)# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse:.2f}')

 逻辑回归

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import accuracy_score# 加载数据
cancer = load_breast_cancer()
X = cancer.data
y = cancer.target# 分割数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 训练模型
model = LogisticRegression(max_iter=10000)
model.fit(X_train, y_train)# 预测
y_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')

http://www.lryc.cn/news/459409.html

相关文章:

  • 如何将数据从 AWS S3 导入到 Elastic Cloud - 第 1 部分:Elastic Serverless Forwarder
  • Linux基础-正则表达式
  • 【HTML格式PPT离线到本地浏览】
  • 如何在Vue项目中封装axios
  • linux 配置ssh免密登录
  • 【AI绘画】Midjourney进阶:三分线构图详解
  • 享元模式(C++)
  • 开发一个UniApp需要多长时间
  • 服务器源IP暴露后的安全风险及防御措施
  • YoloV8改进策略:BackBone改进|CAFormer在YoloV8中的创新应用,显著提升目标检测性能
  • 网络编程(19)——C++使用asio协程实现并发服务器
  • 【SQL】深入了解 SQL 索引:数据库性能优化的利器
  • 河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练;
  • [棋牌源码] 2023情怀棋牌全套源代码含多套大厅UI及600+子游源码下载
  • 深度学习:预训练模型(基础模型)详解
  • 欧科云链研究院深掘链上数据:洞察未来Web3的隐秘价值
  • 国外电商系统开发-运维系统登录阈值
  • 设备台账管理是什么
  • 操作教程|基于DataEase用RFM分析法分析零售交易数据
  • 使用Go语言的gorm框架查询数据库并分页导出到Excel实例
  • Run the FPGA VI 选项的作用
  • 新手入门怎么炒股,新手炒股入门需要做哪些准备?
  • Fetch 与 Axios:JavaScript HTTP 请求库的详细比较
  • 记录一个Ajax发送JSON数据的坑,后端RequestBody接收参数小细节?JSON对象和JSON字符串的区别?
  • 【智能算法应用】长鼻浣熊优化算法求解二维路径规划问题
  • 微服务中的负载均衡算法与策略深度解析
  • 初知C++:AVL树
  • [LeetCode] 67. 二进制求和
  • 工业物联网关-ModbusTCP
  • 子组件向父组件传值$emit