机器学习线性回归

文章目录

  • 1.基本概念
  • 2.最小二乘法
  • 3.用代码来表示线性回归

1.基本概念

线性回归是一种统计方法,用于分析两个或多个变量之间的关系。其主要目的是通过建立一个线性模型来预测一个因变量(或称为目标变量)与一个或多个自变量(或称为特征变量)之间的关系。线性回归模型假设这种关系可以用直线来表示。

  1. 模型形式: 线性回归的基本形式为:

    Y=β0+β1X1+β2X2+…+βnXn+ϵY=β0​+β1​X1​+β2​X2​+…+βn​Xn​+ϵ

    其中 YY 是因变量,XiXi​ 是自变量,βiβi​ 是回归系数,ϵϵ 是误差项。

  2. 简单线性回归与多元线性回归

    • 简单线性回归:只有一个自变量。
    • 多元线性回归:有多个自变量。
  3. 目标: 通过最小化残差平方和(即实际值与预测值之间的差异的平方和)来估计回归系数,从而找到最佳拟合线。

  4. 假设

    • 线性关系:自变量与因变量之间存在线性关系。
    • 同方差性:误差项的方差在所有自变量的值上是常数。
    • 正态性:误差项服从正态分布(在样本量较大时可忽略)。
    • 独立性:观察值是相互独立的。
  5. 应用: 线性回归广泛应用于经济学、金融、社会科学、医疗等领域,用于预测、趋势分析以及因果关系探索。

2.最小二乘法

最小二乘法是一种数学优化技术,用于估计线性回归模型中未知参数的值。其核心思想是通过最小化预测值与实际观测值之间的差异的平方和,来找到最优的回归系数。

  1. 目标: 最小二乘法的目标是找到回归方程中的参数,使得残差平方和(即预测值与实际值之差的平方和)最小化。残差是指每个观测值与模型预测值之间的差。

  2. 数学表达: 对于给定的数据集 (x1,y1),(x2,y2),…,(xn,yn)(x1​,y1​),(x2​,y2​),…,(xn​,yn​),最小二乘法的目标是最小化以下目标函数:

    S=∑i=1n(yi−yi)2S=i=1∑n​(yi​−y​i​)2

    其中,yiy​i​ 是模型的预测值。

  3. 求解步骤

    • 构建模型:根据线性回归模型设定形式。
    • 计算残差:计算每个观测值的残差。
    • 最小化目标函数:通过对目标函数求导并设置为零,求解出最优的回归系数。
  4. 优点

    • 简单易用:适用于线性关系的数据。
    • 有效:在数据量较大且符合线性假设时,估计结果较为准确。
  5. 局限性

    • 对异常值敏感:因为平方项的存在,极端值会对结果产生较大影响。
    • 假设线性关系:如果数据不符合线性假设,可能导致不准确的预测。

3.用代码来表示线性回归

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression# 生成一些示例数据
# 自变量 X
X = np.array([[1], [2], [3], [4], [5]])
# 因变量 Y
Y = np.array([1.5, 1.8, 3.2, 3.8, 5.1])# 创建线性回归模型
model = LinearRegression()# 拟合模型
model.fit(X, Y)# 预测
Y_pred = model.predict(X)# 输出模型参数
print(f'回归系数: {model.coef_[0]}')
print(f'截距: {model.intercept_}')# 绘制结果
plt.scatter(X, Y, color='blue', label='实际数据')
plt.plot(X, Y_pred, color='red', label='拟合线')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('线性回归示例')
plt.legend()
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Openwrt系统架构,实现应用与驱动的实例。

一、在openwrt系统架构,编写helloworld的应用程序。 第一步先创建目录,项目代码要放在 openwrt根目下的 package 目录中,这里源码写在了 hellworld 的 src 目录下,因为外层还有需要编写的文件。 mkdir -p ~/openwrt/package/hel…

C++ STL 学习指南:带你快速掌握标准模板库

🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 大家好呀!🤗 今天我们来聊一聊 C 程序员的必备神器——STL(Standard Template Library&#xf…

牛客练习赛131 (待补

A 小H学语文 (贪心) 题意:给定n个木板,1~n长度为h[i],选则m块木板,使m*m*h(min) 最大 思路:贪心的(将木板降序排列后)从n到1(越多越好)枚举木板…

挑战Java面试题复习第5天,无人扶我青云志

挑战第 5 天 java反射List Set Map 区别Object 常用方法 java反射 定义: 运行时动态获取类信息和调用方法的特性。 应用场景: JDBC数据库连接。框架如Hibernate和Struts等。 实现方式: 通过四种方法获取Class对象: Class.fo…

Oracle视频基础1.3.5练习

Oracle视频基础1.3.4练习 1.3.5 检查数据库启动状态 ps -ef | grep oracle ipcs clear演示alter向前向后改database阶段 sqlplus /nolog conn / as sysdba startup mount alter database nomount # 报错 alter database open启动restricted mode,创建一个connect&…

Unity3D包管理bug某些版本Fbx Exporter插件无法搜索到的问题

这个问题是在使用unity的时候发现的 有些版本里没有Fbx Exporter插件也是没法搜到 经过测试,在package manager中开启Enable Preview Packages也没有用 这个插件在2020已经是正式版了,不需要再开启 后来发现可能是版本bug 需要手动开启 在工程的Pac…

深度学习-学习率调整策略

在深度学习中,学习率调整策略(Learning Rate Scheduling)用于在训练过程中动态调整学习率,以实现更快的收敛和更好的模型性能。选择合适的学习率策略可以避免模型陷入局部最优、震荡不稳定等问题。下面介绍一些常见的学习率调整策…

【MogDB】MogDB5.2.0重磅发布第五篇-支持部分ORACLE的HINT

一、背景 ORACLE的SQL优化器非常强大,但是仍然会在某些情况下,ORACLE自动生成的执行计划并不是很好,此时可以通过在SQL中增加HINT来人工控制执行计划应该怎么走。在ORACLE迁移到国产库的过程中,由于部分国产库并不支持ORACLE的HI…

U盘引导丢失问题的处理办法

项目背景:在使用自制的u盘系统的时候经常遇到引导丢失的问题,那么咱们怎么解决这个问题呢,首先第一步通过手动引导u盘 进入系统,同时再进行引导区的修复这样u盘系统就可以正常工作了。 1 进入grub 的提示符下面,首先…

Caffeine 手动策略缓存 put() 方法源码解析

BoundedLocalManualCache put() 方法源码解析 先看一下BoundedLocalManualCache的类图 com.github.benmanes.caffeine.cache.BoundedLocalCache中定义的BoundedLocalManualCache静态内部类。 static class BoundedLocalManualCache<K, V> implements LocalManualCache&…

树莓派开发相关知识四 传感器-测距C语言版本

1、封装调用函数 #include <stdio.h> #include <time.h> #include "wiringPi.h"void initmode(int trig,int echo) {wiringPiSetupGpio();pinMode(trig,OUTPUT);digitalWrite(trig,LOW);pinMode(echo,INPUT); }double get_distance(int trig,int echo) …

《Qwen2-VL》论文精读【上】:发表于2024年10月 Qwen2-VL 迅速崛起 | 性能与GPT-4o和Claude3.5相当

1、论文地址Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution 2、Qwen2-VL的Github仓库地址 该论文发表于2024年4月&#xff0c;是Qwen2-VL的续作&#xff0c;截止2024年11月&#xff0c;引用数24 文章目录 1 论文摘要2 引言3 实验3.…

StandardThreadExecutor源码解读与使用(tomcat的线程池实现类)

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java源码解读-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 目录 1.前言 2.线程池基础知识回顾 2.1.线程池的组成 2.2.工作流程 2…

Spring学习笔记_21——循环依赖

循环依赖 1. 介绍 在Spring中的循环依赖就是指一个或者多个Bean之间存在着互相依赖的关系&#xff0c;并且形成了循环调用。 例如&#xff1a;在Spring中&#xff0c;Bean-A依赖Bean-B&#xff0c;Bean-B又依赖Bean-A&#xff0c;Bean-A和Bean-B之间就形成了相互依赖的关系。…

前端埋点与监控最佳实践:从基础到全流程实现.

前端埋点与监控最佳实践&#xff1a;从基础到全流程实现 大纲 我们会从以下三个方向来讲解埋点与监控的知识&#xff1a; 什么是埋点&#xff1f;什么是监控&#xff1f; JS 中实现监控的核心方案 写一个“相对”完整的监控实例 一、什么是埋点&#xff1f;什么是监控&am…

asp.net老项目运维,出现的问题4

此次问题出现在sqlserver的select in(单号1,单号2........) 语句&#xff0c;项目中使用这个语句批量查询单号&#xff0c;最多的情况也就几十个&#xff0c;返回结果速度上用户还能接受。 但是最近有了新业务&#xff0c;select数据量大大提升&#xff0c;有的情况in()中的单…

【缓存与加速技术实践】NoSQL之Redis部署安装与基础命令

文章目录 关系型数据库与非关系型数据库关系型数据库SQL定义SQL语句主流产品 非关系型数据库NoSQL定义主流产品 区别数据存储方式不同扩展方式不同对事务性的支持不同应用场景结构对比 补充 RedisRedis 的特点与优势Redis 的使用场景哪些数据适合放入缓存中&#xff1f;Redis 为…

MATLAB-数学建模-无约束规划求解方法(非线性规划)

MATLAB-数学建模-无约束规划求解方法&#xff08;非线性规划&#xff09; fminbnd函数 其功能是求取固定区间内单变量函数的最小值&#xff0c;也就是一元函数的最小值问题。其数学模型为 minf(x),x1<x<x1 式中&#xff0c;x,x1,x2 均为标量&#xff1a;f(x)为目标函…

rom定制系列------红米k30_4G版澎湃os安卓13批量线刷固件

&#x1f49d;&#x1f49d;&#x1f49d;红米k30 4G版&#xff0c;机型代码;phoenix.此机型官方固件最后一版为稳定版13.0.6安卓12的固件。客户的软件需运行在至少安卓13的系统至少。测试原生适配有bug。最终测试在第三方澎湃os安卓13的固件可以完美运行。 &#x1f49d;&am…

Nginx 报错400 Request Header Or Cookie Too Large

错误的原因&#xff1a; 1、可能是你的网络DNS配置错误。 2、由request header过大所引起&#xff0c;request过大&#xff0c;通常是由于cookie中写入了较大的值所引起的。 3、访问太频繁&#xff0c;浏览器的缓存量太大&#xff0c;产生错误。 解决办法&#xff1a; 1、清…