机器学习4-多元线性回归

多元线性回归(Multiple Linear Regression)是线性回归的一种扩展形式,用于建立因变量与多个自变量之间的关系。在简单线性回归中,我们考虑一个因变量和一个自变量之间的线性关系,而多元线性回归允许我们考虑多个自变量对因变量的影响。

一般的多元线性回归模型的数学表达式如下:

Y=\beta_{0}+\beta_{1}X_{1}+\beta_{2}X_{2}+...++\beta_{n}X_{n}+\varepsilon

其中:

  • Y 是因变量(要预测的目标)。
  • X1​,X2​,…,Xn​ 是自变量(特征)。
  • β0​ 是截距(模型在X1​,X2​,…,Xn​ 都为0时的预测值)。
  • β1​,β2​,…,βn​ 是各自变量的回归系数,表示自变量对因变量的影响。
  • ε 是误差项,表示模型无法捕捉到的影响因素和随机误差。

多元线性回归的目标是找到合适的回归系数 β0​,β1​,…,βn​ 来最小化实际观测值 Y 与模型预测值之间的误差,通常使用最小二乘法进行优化。

模型训练后,可以使用这个模型进行预测。当有新的自变量值 X1​,X2​,…,Xn​ 时,通过带入这些值,就可以预测相应的因变量值 Y

多元线性回归在实际应用中非常常见,例如在经济学中预测商品销售额,医学中预测疾病发生率,工程学中预测产品性能等。

需求:

根据现有数据预测公司的利润

数据示例:

R&D SpendAdministrationMarketing SpendStateProfit
165349.2136897.8471784.1New York192261.83
162597.7151377.59443898.53California191792.06

程序:

## Step 1: Data Preprocessing### Importing the libraries
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np### Importing the dataset
dataset = pd.read_csv('50_Startups.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 4].values### Encoding Categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformerlabelencoder = LabelEncoder()
X[:, 3] = labelencoder.fit_transform(X[:, 3])# Use ColumnTransformer for one-hot encoding
ct = ColumnTransformer(transformers=[('onehot', OneHotEncoder(), [3])  # Apply one-hot encoding to column 3],remainder='passthrough'  # Keep the rest of the columns unchanged
)X = np.array(ct.fit_transform(X), dtype=np.float64)### Avoiding Dummy Variable Trap
X = X[:, 1:]### Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)## Step 2: Fitting Multiple Linear Regression to the Training set
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, Y_train)## Step 3: Predicting the Test set results
Y_pred = regressor.predict(X_test)print(Y_pred)# Step 4: Visualizing the results
plt.scatter(Y_test, Y_pred, color='blue')
plt.plot([min(Y_test), max(Y_test)], [min(Y_test), max(Y_test)], linestyle='--', color='red', linewidth=2, label='Regression Line')plt.title('Actual vs Predicted Profit')
plt.xlabel('Actual Profit')
plt.ylabel('Predicted Profit')
plt.show()

结果:

结论:

10个结果数据的预测值与真实值相差不多,大体落在线性回归模型的范围内。

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

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

相关文章

轻松录制视频,WPS录屏功能全攻略

“有人知道wps怎么录屏吗?老师要求我们录制一段视频,是关于课堂教学的,可是我不会录制文档,眼看就快到提交的时间了,现在真的很着急,希望大家帮帮我!” 随着信息技术的发展,录制屏幕…

视频号怎么开店铺?保证金多少?

一、视频号怎么开店铺? 首先,你需要确保你已经拥有一个视频号账号。如果还没有账号,你可以在抖音上注册一个,并按照提示完成个人信息的填写和验证。 接下来,在视频号主页的右上角点击“设置”按钮。然后,…

进阶SQL —— 取指定字段的分位数

如果有分区需求,先对数据分区排序;没有分区需求,则直接对数据排序。 如果有分区需求,求每个分区的总数;没有分区需求,则直接求总行数。 如果有分区需求,筛选排序值 分区总数 * 分位数&#x…

数字图像处理(实践篇)三十二 OpenCV-Python比较两张图片的差异

目录 一 方案 二 实践 ​通过计算两张图像像素值的均方误差(MSE)来比较两张图像。差异大的两张图片具有较大的均方差值,相反,相似的图片间则具有较小的均方差值。需要注意的是。待比较的两张图像要具有相同的高度、宽度和通道数。 一 方案 ①导入依赖库 import cv2 import…

ROR之.nil? .empty? .blank?的用法

1、出处 Ruby的方法:.nil?、.empty? Rails的方法:.blank? 2、意义: .nil? 判断对象是否存在; .empty? 对象已经存在,判断是否为空字段 .blank? 相当于同时满足.nil?和.empty? 注:Rails API中…

幻兽帕鲁专用服务器延迟高怎么解决?

幻兽帕鲁专用服务器延迟高的问题,可能是由于网络环境、服务器负载、数据传输等原因导致的。下面将针对这些问题,提供一些解决方案和建议,帮助您解决延迟高的问题,提升游戏体验。 1.检查网络环境。网络环境不稳定或者带宽较低&…

mysql navicat 定时执行sql脚本

1、查看数据库是否开启定时任务。 show variables like event_scheduler;2、没有开起的话,执行以下开启命令。 set global event_scheduler on;3、选择数据库,创建事件。 4、创建定义的执行函数或者存储过程。我自己写的是存储过程,如下。…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包:官网 或者点击下载:postgresql-12.12-1-windows-x64.exe Tip:此时若报错:There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

解决分页插件结合collection标签后分页数量不准确的问题

原因分析: 分页插件是在执行你的sql之前,执行了一次select count,根据count来得出你的total是多少假设你使用了join语句就有可能导致这个count偏多(一对多,拼表后数据量就变大了) 解决方案 方案一. 手动修正,按照mybatis plus分页插件的步骤&#xff…

2024 高级前端面试题之 前端工程相关 「精选篇」

该内容主要整理关于 前端工程相关模块的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 前端工程相关模块精选篇 1. webpack的基本配置2. webpack高级配置3. webpack性能优化-构建速度4. webpack性能优化-产出代码(线上运行&am…

阿里云 DMS 执行sql变更

数据库开发-数据变更-无锁变更 选择数据库:比如要更新生产库,搜索生产库名字。 填入变更sql。

V2X,启动高增长引擎

车载通讯的下一个新周期,毋庸置疑是V2X。从4G、5G再到C-V2X,是车载通讯逐步从信息娱乐、行车数据监控到万物互联的关键。 去年5月,全球车载通讯芯片巨头—高通公司宣布,与以色列车联网(V2X)芯片设计公司Aut…

10个关键字让你的谷歌竞价排名瞬间飙升-华媒舍

在现代社会中,搜索引擎已经成为获取信息的主要途径之一。在这其中,谷歌搜索引擎以其强大的搜索算法和智能化的用户体验而闻名。对于企业主来说,如何提高在谷歌搜索结果中的排名,对于他们的品牌推广和获取潜在客户非常重要。 1. 关…

pointer-events: none;解决页面水印导致子节点鼠标事件失效的问题

背景:实现水印功能之后,由于水印是一个遮罩层,导致z-index元素比较低的子元素,鼠标移入事件、点击事件都失效了。 解决方案:给添加水印样式的元素,添加css样式:pointer-events: none;。子元素添…

DL之RNN之BiLSTM:基于IMDb电影评论数据集利用BiLSTM算法实现对电影评论进行情感分析二分类+模型训练过程可视化+模型推理实战代码之详细攻略

DL之RNN之BiLSTM:基于IMDb电影评论数据集利用BiLSTM算法实现对电影评论进行情感分析二分类+模型训练过程可视化+模型推理实战代码之详细攻略 目录

如何在树莓派安装运行Nginx实现无公网ip环境访问内网静态网站

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Ngi…

linux☞ Centos 基础篇

切换用户 重启系统、退出 su 用户 ### su switch user 重启系统 reboot 退出当前账户 logout 或者 exit 或者 CtrlD 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet:指明网卡类型为以太网 DEVICEens33:指定当前配置的…

LeetCode 每日一题Day 54 - 61

2859. 计算 K 置位下标对应元素的和 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 请你用整数形式返回 nums 中的特定元素之 和 ,这些特定元素满足:其对应下标的二进制表示中恰存在 k 个置位。 整数的二进制表示中的 1 就是这个整数的 置位…

Find My点读笔|苹果Find My技术与点读笔结合,智能防丢,全球定位

点读笔是采用国际最新光学图像识别技术和先进的数码语音技术开发而成的新一代智能阅读和学习工具。它体现了电子产品与教育行业的完美融合,实现了科技以人为本的理念。点读笔能同时实现点读、复读、跟读、录音、娱乐等诸多功能。由于小孩贪玩很容易造成点读笔的丢失…