引言

求解多个自变量和一个因变量之间的线性关系

y=a1x1+a2x2+a3x3+b (y为因变量,x为自变量,a为权重,b为截距。)

数据类型:

1.读数据

'''
y=a1x1+a2x2+a3x3+b (y为因变量,x为自变量,a为权重,b为截距。)'''
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split   #切分训练集和验证集
import pandas as pd
import os
import seaborn as sns#1.获得正确的数据
path = os.getcwd().replace('\\','/') + str('/1.回归问题/data/Advertising.csv')
data = pd.read_csv(path)

2.制作数据集

X = data[['TV','radio','newspaper']]
Y = data[['sales']]  #功能是一样的,将一维改成二维数组。
# 数据可视化
"""
1.分别绘制TV、radio、newspaper和sales二个元素之间的关系
"""
# sns.pairplot(data,x_vars = ['TV','radio','newspaper'],y_vars = 'sales',height = 4,aspect = 0.8,kind='reg')

3.sklearn模型

linear_regressor = LinearRegression()
x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=0.3,random_state=0)   #则表示7:3进行划分数据集
linear_regressor.fit(x_train,y_train)  #拟合函数# 3.使用测试集进行验证
Y_pred = linear_regressor.predict(x_test)   #预测y   使用训练集train拟合得到拟合函数后,再使用测试集test得到预测值
print('a权重:',linear_regressor.coef_)
print('b截距:',linear_regressor.intercept_)# 4.模型评估--这些任意可以选择,根据模型的还会却确定取舍
from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score
mes_test = mean_squared_error(y_test,Y_pred)print("平均方误差(MSE):",mean_squared_error(y_test,Y_pred))
print("根均方误差(RMSE):",mean_absolute_error(y_test,Y_pred))
print("平均绝对值误差(MAE):",r2_score(y_test,Y_pred))RR = linear_regressor.score(x_test,y_test)  # # 线性回归:R_square; 分类问题: acc
print("决定系数:",RR)  #模型越接近1,表示该模型越好# 补充---验证该模型是否过拟合(通过训练集train进行验证)
Y_train_pred = linear_regressor.predict(x_train)   #预测y
mse_train = mean_squared_error(y_train,Y_train_pred)
# 当mes_train和mse_test误差很小,则证明该模型未发生过拟合现象。

4.完整代码

'''
y=a1x1+a2x2+a3x3+b (y为因变量,x为自变量,a为权重,b为截距。)'''
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split   #切分训练集和验证集
import pandas as pd
import os
import seaborn as sns#1.获得正确的数据
path = os.getcwd().replace('\\','/') + str('/1.回归问题/data/Advertising.csv')
data = pd.read_csv(path)X = data[['TV','radio','newspaper']]
Y = data[['sales']]  #功能是一样的,将一维改成二维数组。
# 数据可视化
"""
1.分别绘制TV、radio、newspaper和sales二个元素之间的关系
"""
# sns.pairplot(data,x_vars = ['TV','radio','newspaper'],y_vars = 'sales',height = 4,aspect = 0.8,kind='reg')
#2.生成linalg regression模型---拟合函数
linear_regressor = LinearRegression()
x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=0.3,random_state=0)   #则表示7:3进行划分数据集
linear_regressor.fit(x_train,y_train)  #拟合函数# 3.使用测试集进行验证
Y_pred = linear_regressor.predict(x_test)   #预测y   使用训练集train拟合得到拟合函数后,再使用测试集test得到预测值
print('a权重:',linear_regressor.coef_)
print('b截距:',linear_regressor.intercept_)# 4.模型评估--这些任意可以选择,根据模型的还会却确定取舍
from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score
mes_test = mean_squared_error(y_test,Y_pred)print("平均方误差(MSE):",mean_squared_error(y_test,Y_pred))
print("根均方误差(RMSE):",mean_absolute_error(y_test,Y_pred))
print("平均绝对值误差(MAE):",r2_score(y_test,Y_pred))RR = linear_regressor.score(x_test,y_test)  # # 线性回归:R_square; 分类问题: acc
print("决定系数:",RR)  #模型越接近1,表示该模型越好# 补充---验证该模型是否过拟合(通过训练集train进行验证)
Y_train_pred = linear_regressor.predict(x_train)   #预测y
mse_train = mean_squared_error(y_train,Y_train_pred)
# 当mes_train和mse_test误差很小,则证明该模型未发生过拟合现象。

多元线性回归-python代码相关推荐

  1. 一元线性回归python代码

    目录 1.最小二乘法: 2.梯度下降法: 3.理论加实践: 4.python代码: 4.1梯度下降法: 4.2最小二乘法 学习引入:机器学习中的参数模型(线性回归,逻辑回归)等.在这里我们只进行一元线 ...

  2. 多元线性回归matlab代码_医学统计|多元线性回归分析

    回归分析的定义:回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.运用十分广泛.其表达形式为y = w'x+e,e为误差服从均值为0的正态分布.回归分析中,只包括一个自变量和一个 ...

  3. 多元线性回归matlab代码例题_多元线性回归matlab程序

    %多元线性回归求解 clear clc x=[120731808012512581.190 133.02731808012512581.190 129.63731808012512581.190 15 ...

  4. 吴恩达-机器学习-多元线性回归模型代码

    吴恩达<机器学习>2022版 第一节第二周 多元线性回归 房价预测简单实现         以下以下共两个实验,都是通过调用sklearn函数,分别实现了 一元线性回归和多元线性回归的房价 ...

  5. 多元线性回归matlab代码例题_matlab多元线性回归

    1.matlab多元回归示例如下: 解决问题:油价预测 方法:多元线性回归 实现:matlab regress()函数 技巧:通过增加X1^2,X2^2,或者X1*X2等构造的特征项,可以提高回归模型 ...

  6. 梯度下降及一元线性回归[python代码](二)

    第一章.AI人工智能入门之梯度下降及一元线性回归(2) 目录 第一章.AI人工智能入门之梯度下降及一元线性回归(2) 一.线性回归是什么? 二.线性回归的应用 三.线性回归的一般形式 四.一元线性回归 ...

  7. 一元线性回归-python代码

    1.一元回归分析的步骤 1.绘制散点图,确定回归模型类型 2.估计模型参数,建立回归模型类型 3.模型校核 2. Sklearn包 pip install sklearn 说明:使用sklearn库中 ...

  8. 线性回归python代码实现

    import numpy as np import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签 ...

  9. python 曲线回归_线性回归——Python代码实现

    import numpy as np def computer_error_for_give_point(w, b, points): # 计算出 观测值与计算值 之间的误差, 并累加,最后返回 平均 ...

最新文章

  1. 传承乡邦文化,展示国学之美,联墨香飘远,文明花放红;
  2. php 随机在文章中添加锚文本_seo网站优化技巧之:8种优质锚文本的做法
  3. Mysql8.0.20下载和安装
  4. 漫游Kafka实现篇之分布式
  5. 这段js代码得拯救你多少时间
  6. 【MATLAB技巧】——求解符号方程
  7. 是可改写的随机存储器_PPT下载:磁阻随机存取存储器
  8. flask结合令牌桶算法实现上传和下载速度限制
  9. IGMP协议——IP组播之组管理协议
  10. vue.js--遇到的一些错误
  11. Hadoop简单安装配置
  12. mysql日期序列填充_mysql – 如何使用一系列日期填充表格?
  13. Annotation-specified bean name ‘mapper‘ for bean class [com.thoughtworks.xstream.mapper.Mapper] conf
  14. mdf转mysql sqlyog_利用SQLyogEnt转移Mysql数据库_mysql
  15. linux显示文件开头部分内容,一天一个linux基础命令之查看文件开头部分内容head...
  16. 手把手教你如何架设一个属于自己的Discuz论坛---------详细过程-----简单易懂------速看!!!!
  17. 遭遇Trojan.PSW.ZhengTu,Trojan.PSW.OnlineGames,Trojan.PSW.ZhuXian.b等
  18. wamp php 7.0,wamp如何尝鲜php7
  19. No3 jQuery
  20. 一、TF2 常用命令

热门文章

  1. ubuntu 安装jdk问题 install.sfx not found
  2. 神经网络与卷积神经网络,深度残差卷积神经网络
  3. 残差神经网络Resnet(MNIST数据集tensorflow实现)
  4. mysql数据库repair_MySQL数据库中的REPAIR TABLE语法介绍
  5. 猪猪猫.CN-WINXPSP2电脑城装机03CD标准版
  6. 移动网络安装测试软件,华为移动宽带检测工具(Mobile Doctor)
  7. 分割结果可视化:怎么把标签mask轮廓显示在原图上
  8. 哈夫曼树编码的实现+图解(含全部代码)
  9. 三星折叠手机出现故障显示该项技术尚未足够成熟
  10. Unity3d之角色控制器