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

全网最全的AItium Designer 16下载资源与安装步骤

Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。...

WQ的博客 1万+

利用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万+

深度学习动画实战:用MotorNerve系统5步实现自然角色交互

本文详细介绍了如何利用腾讯游戏的MotorNerve系统,通过深度学习技术5步实现自然角色动画交互。从环境搭建、基础运动控制到交互过渡和行走转向优化,该系统能显著提升游戏动画制作效率,尤其适合中小团队替代昂贵的动捕方案。重点解析了骨骼动画配置、PFNN控制器使用及Blender工作流集成等核心技术。

book8的博客 686

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

无源低通滤波器

无源RC滤波器“滤除”不需要的信号,因为它们分离并允许仅通过其频率的正弦输入信号,最简单的是无源低通滤波器网络。在低频应用(高达100kHz)中,无源滤波器通常使用简单的RC(电阻-电容)网络构建,而高频滤波器(高于100kHz)通常由RLC(电阻-电感-电容)元件制成。无源滤波器由电阻器、电容器和电感器等无源元件组成,没有放大元件(晶体管、运算放大器等),因此没有信号增益,因此它们的输出电平始终小于输入。滤波器是根据它们允许通过它们的信号的频率范围来命名的,同时阻挡或“衰减”其余部分。

weixin_44448586的博客 1万+

避坑指南:中国地面气候日值数据集(V3.0)处理中的常见错误与解决方案

本文详细解析了中国地面气候日值数据集(V3.0)处理中的常见错误与解决方案,包括数据清洗、特征值解码、时间序列处理和质量控制等关键步骤。通过Python实战代码示例,帮助研究者高效处理这一包含全国699个气象站多要素日值数据的数据集,避免常见陷阱,提升气候变化研究和农业气象分析的准确性。

xray4的博客 1026

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

K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

🔴 K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3万+

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

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

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

零基础快速学习 ABAP 读者意见反馈和下一步写作计划表

大家在学习教程过程中,如果有任何关于 SAP ABAP 开发方面想了解的内容,可以直接在教程各篇文章下评论留言,我会将大家的意见统一汇总到下面的表格,作为我更新教程的内容参考来源之一。

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

从0到1用OpenClaw打造酒店收益管理系统:数据整合→AI策略迭代全链路落地实战

本文基于三亚某连锁海景酒店真实项目落地经验编写,系统上线3个月,酒店平均入住率从62%提升至80%,RevPAR(平均可售房收入)提升26%,淡季空置率降低46%,完全覆盖中小酒店全场景收益管理需求。本文配套OpenClaw全量Skill代码、工作流配置文件,可直接复用落地。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 492

python linregress多元线性回归

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

weixin_41413571的博客 589

OpenHarmony开发一个App,安装到BearPi-HM Micro开发板

建议先阅读我们这篇,这里面详细介绍了,以及hap包安装的全过程。本篇是介绍如何开发一个App,然后安装到开发板上,比如hap包,无法安装等问题。

Halifax 1030

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

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

weixin_39752828的博客 2473

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

weixin_39663378的博客 1595

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

多元线性回归的python实现

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

木东的博客 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值