Python 多元线性回归,留一法测试回归效果

多元线性回归——boston房价预测 python 多元线性回归boston房价预测 jupyter python3环境下利用处理后的boston房价数据集建立多元线性回归模型 数据集各特征描述: 导入使用到的相关包 将使用statsmodels库的ols函数建模,variance_inflation_factor函数用于检验自变量间的相关性。 数据集存放在csv文本中,先读取数据集为数据框 数据集形状为506条观测,14个特征... 阅读详情

任务描述

现在想预测一个项目的 profit,影响 profit 的变量主要有以下三个:

  1. R & D profit
  2. Administration
  3. Marketing Spend

数据信息

这些数据保存在excel表格里格式如下(部分数据):

 数据链接🔗:Multiple-Linear-Regression dataset 

借助散点图来看一下每种因素与 profit 的相关趋势

 从散点图中可以看出,R&D spend 以及 marketing spend 与 profit 的相关程度要大一些

线性回归预测,留一法验证

首先利用单变量线性回归,分别对三种因素的预测能力进行评估,结果如下图第一行所示。从单变量的预测结果中可以看出,Administration这个变量的 R2 < 0,表明其预测效果比均值预测还要差,因此在后续的多变量预测中不建议将其作为输入;第二行的左图是用三个变量的预测结果,右图是用除 Administration 这个变量之外的预测结果,可以看出的确是不添加 Administration 的结果要好一些。【下图中的x轴表示预测结果,y轴表示实际结果】

Python 代码如下

import numpy as np
import xlrd
from sklearn import preprocessing
from sklearn.model_selection import LeaveOneOut
from sklearn.linear_model import LinearRegression
from sklearn import metrics
import matplotlib.pyplot as plt


def excel_to_matrix(path, data_norm=True):
    table = xlrd.open_workbook(path).sheets()[0]
    row = table.nrows
    col = table.ncols
    datamatrix = np.zeros((row - 1, col))
    for x in range(col):
        cols = np.array(table.col_values(x))
        datamatrix[:, x] = cols[1:]  # 不读标题行
    if data_norm:
        min_max_scaler = preprocessing.MinMaxScaler()
        datamatrix = min_max_scaler.fit_transform(datamatrix)
    return datamatrix


def linear_regression_loo(X, Y, Xlabel, Ylabel):
    Y_pred = []
    Y_true = []
    loo = LeaveOneOut()
    loo.get_n_splits(X)
    for train_index, test_index in loo.split(X):
        X_train, X_test = X[train_index], X[test_index]
        Y_train, Y_test = Y[train_index], Y[test_index]
        fitor = LinearRegression()
        model = fitor.fit(X_train, Y_train)
        Y_pred.append(model.predict(X_test))
        Y_true.append(Y_test)
    print('R2 = ', metrics.r2_score(Y_true, Y_pred))
    print('MSE = ', metrics.mean_squared_error(Y_true, Y_pred))
    plt.figure()
    plt.scatter(Y_pred, Y_true)
    plt.plot([0, 1], [0, 1])
    plt.xlabel(Xlabel)
    plt.ylabel(Ylabel)


if __name__ == '__main__':
    path = r'.\example_data.xlsx'
    data = excel_to_matrix(path)
    Y = data[:, 3]
    # 单变量线性回归
    X1 = data[:, 0].reshape(-1, 1)
    linear_regression_loo(X1, Y, 'R&D Spend', 'Profit')

    X2 = data[:, 1].reshape(-1, 1)
    linear_regression_loo(X2, Y, 'Administration', 'Profit')

    X3 = data[:, 2].reshape(-1, 1)
    linear_regression_loo(X3, Y, 'Marketing Spend', 'Profit')

    # 多变量线性回归
    X = data[:, [0, 2]]
    linear_regression_loo(X, Y, 'R&D + Marketing Spend', 'Profit')

    X = data[:, 0:3]
    linear_regression_loo(X, Y, 'All', 'Profit')

    plt.show()

人工智能与机器学习:Python从零实现性回归模型 带你从零实现一个线性回归模型,不依赖任何机器学习库。从数据预处理、归一化,到实现 Sigmoid 函数、计算损失函数,再到用梯度下降找到最优权重,每一步都详细讲解。最后,咱们还用加州房价数据集测试了模型,准确率达到了80%,和 sklearn 的模型不相上下。 阅读详情

相关推荐

Python 各种回归(含sklearn)

https://www.jb51.net/article/164603.htm

CLW1218的博客 3892

Leave-one-out——留一法

看论文遇到的没见过的机器学习领域的方法:Leave-one-out 简介 在机器学习领域,N折交叉验证被称为留一法(N:数据集中样本的数量)。 优点: 1.每次迭代都使用最大数目的样本去训练; 2.具有确定性 确定性含义: 首先我们需要对10折交叉验证(10-fold Cross Validation)有一个大致了解,在这种验证方法中我们将数据集分为10份,使用其中的9份进行训练而将另1份作为测试集。该过程可以重复10此,每次使用的测试数据都不同。这使得每次的测试和验证都可能会有不同结果,因为数据是随机分发

weix1235的博客 1万+

Python多元线性回归,科学技术协会面试

print(“预测”);# len() 方法返回对象(字符、列表、元组等)长度或项目个数。🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

m0_61549674的博客 992

留一法(交叉验证法,Leave-One-Out Cross Validation)

交叉验证法 这种方法比较简单易懂,就是把一个大的数据集分为k个小数据集,其中k-1个作为训练集,剩下的一个作为测试集,然后选择下一个作为测试集,剩下的k-1个作为训练集,以此类推。这其中,k的取值就比较重要,在书中提到一般取10作为k的值(具体原因 不太清楚)。这种方法也被叫做‘k折交叉验证法(k-fold cross validation)’。最终的结果是这10次验证的均值。此外,还有一种交叉验...

谷子的五福一安 7万+

人工智能与机器学习:Python从零实现多元线性回归模型

在AI浪潮中,我们常常被各种现成的机器学习库(如sklearn、TensorFlow)所吸引。但正如叶芝所说:"学习不是装满一桶水,而是点燃一把火真正理解算法本质:避免成为"调包侠"掌握数学原理:矩阵运算、求导优化不再神秘调试能力提升:遇到问题时能快速定位定制化开发:根据需求灵活修改模型结构今天我们就从多元线性回归这个基础模型开始,手把手教你用Python从零搭建完整模型!文末还准备了与sklearn的对比实验,验证我们的实现效果。

Conan_0728的博客 1030

交叉验证相关性:留一法交叉验证线性回归-matlab开发

[PearsonR, PearsonP, SpearmanR, SpearmanP, yhat, R2 ] = BenStuff_CrossValCorr( x,y, [MathMagic], [OmNullModel] ) 留一法交叉验证的简单线性回归输入变量: x, y:数据向量(x(n) 和 y(n) 对应一对观测值) MathMagic:可选参数; 默认为 1 - 避免使用 MathMagic 的强大功能循环遍历 n 模型( http://stats.stackexchange.com/questions/164223/proof-of-loocv-formula ) OmNullModel:可选参数; 默认为 1 - R2 的空模型应该是“全知的”吗? 如果设置为 1(默认),R2 将比较解释方差与围绕 *all* 数据点均值的方差; 如果设置为 0 将与迭代特定的平均值进行比

python实现留一法_数据分割:留出法train_test_split、留一法LeaveOneOut、GridSearchCV(交叉验证法+网格搜索)、自助法...

1.10 交叉验证,网格搜索学习目标目标知道交叉验证、网格搜索的概念会使用交叉验证、网格搜索优化训练模型1 什么是交叉验证(cross validation)交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成4份,其中一份作为验证集。然后经过4次(组)的测试,每次都更换不同的验证集。即得到4组模型的结果,取平均值作为最终结果。又称4折交叉验证。1.1 分析我们之前知道数据分为训练...

weixin_39769767的博客 3406

详解python实现交叉验证法与留出法

主要介绍了详解python实现交叉验证法与留出法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

《机器学习》学习记录(2) - 模型评估与选择

本章节概念公式较多,许多地方还未理解,个人认为可以大概知道概念,具体过程公式无需太过纠结,本章具体思路图在本篇文章末尾。 2.1 经验误差与过拟合 错误率(error rate):分类错误的样本数占样本总数的比率,反之称为精度(accuracy)。精度=1-错误率。 误差(error):把学习器的实际预测输出与样本的真实输出之间的差异。 训练误差(training error)或经验误差(em...

qq453660983的博客 1979

leave-one-out ,留一法,k-folder,auto-mpg数据集

一个matlab编写了留一法和k-folder的数据分类训练和测试程序,做了详细的注释,附上了uci的原始数据集auto-mpg

SwinIR实战:从环境搭建到模型训练的全流程解析

本文提供了SwinIR超分辨率模型从零开始的全流程实战指南。详细解析了基于PyTorch和Anaconda的环境搭建、数据准备与配置文件修改、训练启动与常见错误排查(如张量尺寸不匹配),以及模型评估方法,帮助读者高效部署并训练SwinIR模型。

weixin_28224217的博客 319

利用Python中的statsmodels简单建立多元线性回归模型(一)

利用Python中的statsmodels简单建立多元线性回归模型(一) 概念简单介绍 多元线性回归其实是在一元线性回归的基础上增加了若干个自变量个数,数学表达式如下: 其中,yyy是因变量(响应变量),β0β_{0}β0​是截距项,β1β_{1}β1​,β2β_{2}β2​,.........,βiβ_{i}βi​是回归系数,x1x_{1}x1​,x2x_{2}x2​,.........,xi...

weixin_44835596的博客 1万+

《UDS协议从入门到精通》系列——图解0x23:通过地址读取内存

如何读取ECU中指定内存地址的数据?图解UDS 0x23服务带你快速上手!!

车载系统攻城狮 2623

python 实现多元线性回归

一:一元线性回归 1.获取数据:数据库 postgre get_data # -*- coding:utf-8 -*- import psycopg2 import sys # reload(sys) # sys.setdefaultencoding('utf8') # 获取数据 def get_data(): conn = psycopg2.connect(host="xx", us...

qq_41799291的博客 8793

五、MT8168 音频驱动之SPEAKER

本章主要讲解MT8168平台的内部SPEAKER驱动配置。分为HP接法和LINE OUT接法。2.1.3 audio_custom_exp.h设置。2.1.4 mixer_paths.xml设置。2.2.3 mixer_paths.xml设置。2.1.2 ProjectConfig 设置。2.2.2 ProjectConfig 设置。2.2.1 deconfig设置。2.1.1 DTS设置。......

Joon2020的博客 1664

银行一表通监管报送系统详解

国家金融监管总局对于“一表通”的总体描述为:通过建立一套明细级、标准化的数据体系和汇总计算规则,将银行机构传送至监管可信区的业务明细数据汇总生成财务指标、监管指标和监管报表,大幅提升监管数据时效性,统一数据标准,实现数据间的穿透和整合,同时改变机构多头报送数据模式,减轻机构报送负担。

银行信息系统应用架构详解 2519

python实现多元线性回归

近期论文用到多元线性回归方程,想到用python来做,通过在网上搜索以后做出以下总结: 只有 代码+注释 具体 多元线性回归 相关的数学知识请自行搜索 引入相关模块 import pandas as pd import seaborn as sns from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt from sklearn.model_selection import train_t.

李 克 鹏 的 博客 2601

C#实现低通和高通滤波算法

低通滤波器允许通过低于某个截止频率的信号成分,并且抑制高于该频率的成分。而高通滤波器则允许通过高于某个截止频率的信号成分,并抑制低于该频率的成分。巴特沃斯滤波器是一种对称的滤波器,具有平坦的幅度响应和最小的群延迟。低通和高通滤波是数字信号处理中常用的滤波技术,用于滤除或增强信号中的特定频率成分。在本篇文章中,我们将使用C#编程语言来实现低通和高通滤波算法。以上就是使用C#实现低通和高通滤波算法的示例代码。你可以根据自己的需求调整截止频率和采样率,将这些代码应用于你的项目中。是滤波器的截止频率,

XisVisual_Basic的博客 1275

简单线性回归与多元线性回归实例--预测汽车的燃油效率

文章目录一、具体实现步骤1.导入数据2.探究数据关系3.提取数据4.拆分数据5.训练模型二、可视化结果展示1.训练集2. 测试集3.计算模型得分三、多元线性回归1.训练模型2.计算得分3.可视化预测结果 ------【机器学习第1天:线性回归(代码篇)】------ ------【机器学习第2天:线性回归(理论篇)】------ 写再前面: 这篇文章将通过线性回归模型预测汽车的燃油效率,文本所用到的数据以及代码可根据文末的联系方式向我索取 一、具体实现步骤 1.导入数据 import pandas as

“365天深度学习训练营”报名进行中~ 5438

用 DCL 编写 DEFINE ROLE:把 ABAP CDS 的访问控制做对、做实、做漂亮

摘要: 本文详细讲解如何在ABAP CDS中使用DCL(数据控制语言)实现行级授权,确保业务数据安全。核心要点包括: DCL原理:通过DEFINE ROLE将访问条件绑定到CDS实体,自动附加到查询条件(类似隐式WHERE),保障授权一致性。 关键语法: 必需注解@MappingRole: true声明映射角色。 ASPECT pfcg_auth关联PFCG权限对象,动态控制访问。 注解@AccessControl.authorizationCheck定义授权检查策略(如#CHECK启用强制控制)。 优先级

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 166

电路布局中近场耦合问题

开关电源EMC设计中,传导骚扰超标往往源于空间耦合而非参数问题。某案例中,DC-DC模块的非屏蔽电感磁场泄漏耦合到邻近X电容,导致0.5MHz频点超标。通过将X电容移至PCB底层、优化布局保持15mm间距后,问题完全解决。实践证明:EMC设计需注重空间隔离,优先采用屏蔽电感,滤波元件应远离高频磁场区,布局优化比参数调整更有效。这提示工程师需将电磁兼容视为空间问题而不仅是电气问题。

硬核科技 375

python linregress多元线性回归

使用 Python 的 linregress 实现多元线性回归 在数据科学中,多元线性回归是一种非常常见的统计方法,用于研究一个因变量与多个自变量之间的关系。虽然 scipy.stats 模块中的 linregress 函数仅能处理一元线性回归,但我们可以使用其他工具(如 statsmodels 或 scikit-lear...

weixin_41413571的博客 589

【BIM入门实战】Revit创建地形的几种方法及优缺点

Revit在体量和场地选项卡的【地形表面】工具可以创建三维地形,有三种方法:放置点、指定点文件和导入实例文件、倾斜摄影点云技术和InfraWorks地形生成。 文章目录1. 放置点2. 指定点文件3. 导入实例文件4. 倾斜摄影点云技术5. InfraWorks地形生成 1. 放置点 放置点功能位于体量和场地选项卡下地形表面,点开找到放置点,并通过自定义设置点的高程值来创建地形的高程数据。 优点:通过用户自定义高程点来绘制模型,使地形更为精确。 缺点:只适用于面积小的项目,面积太大,人工效率低下。 .

智慧空间实验室 4760

python做多元回归分析_利用Python进行数据分析之多元线性回归案例

线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(自变量)来预测某个连续的数值变量(因变量)。例如,餐厅根据每天的营业数据(包括菜谱价格、就餐人数、预定人数、特价菜折扣等)预测就餐规模或营业额;网站根据访问的历史数据(包括新用户的注册量、老用户分活跃度、网页内容的更新频率等)预测用户的支付转化率。在开始多元线性模型前介绍下一元线性模型。数学公式可以表示为:一个因变量,一个自变量。...

weixin_39752828的博客 2473

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python 一组数据 正态分布散点图_利用Python进行数据分析之多元线性回归案例

线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(自变量)来预测某个连续的数值变量(因变量)。例如,餐厅根据每天的营业数据(包括菜谱价格、就餐人数、预定人数、特价菜折扣等)预测就餐规模或营业额;网站根据访问的历史数据(包括新用户的注册量、老用户分活跃度、网页内容的更新频率等)预测用户的支付转化率。在开始多元线性模型前介绍下一元线性模型。数学公式可以表示为:一个因变量,一个自变量。...

weixin_39663378的博客 1595

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

多元线性回归的python实现

1、什么是多元线性回归模型? 当y值的影响因素不唯一时,采用多元线性回归模型。   y =y=β0+β1x1+β2x2+...+βnxn  例如商品的销售额可能不电视广告投入,收音机广告投入,报纸广告投入有关系,可以有 sales =β0+β1*TV+β2* radio+β3*newspaper. 2、使用pandas来读取数据

木东的博客 2万+
上一篇: python 读取 excel 为矩阵,跳过标题行,按列归一化
下一篇: 将dicom文件转换为nrrd格式并保存,python
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值