栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

线性回归的多种实现方式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

线性回归的多种实现方式

1 回归的概念

        在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

        今天分享的是最基本的一元线性回归,也相当于记录自己暑期访学项目的笔记~

2 回归方程

        其中y是因变量,即被预测变量。x是自变量,即预测变量。a,b是回归模型的系数。简单来讲,一元线性回归就是在各个数据点之间,找到一条能够大致符合其走势的直线。

3 评价标准

        均方根误差(RMSE):

        其中m为样本数,yi为真实值,yi'为预测值

4 实现方式 4.1 sklearn
import pandas as pd
from sklearn import linear_model
import numpy as np
from sklearn.model_selection import train_test_split

df = pd.read_csv(r'C:Users64884Desktop南洋理工大学暑期项目回归DBS_SingDollar.csv')
X = np.array(df.iloc[:,3])
Y = np.array(df.iloc[:,2])
#划分数据集
X_train, X_test, y_train, y_test = train_test_split(X,Y,test_size=0.2)
#转化为二维数组,否则会报错
X_train=X_train.reshape(-1,1)
X_test=X_test.reshape(-1,1)
y_train=y_train.reshape(-1,1)
y_test=y_test.reshape(-1,1)

model = linear_model.LinearRegression()
model.fit(X_train,y_train)

pred = model.predict(X_test)
#模型评价
from sklearn.metrics import mean_squared_error

RMSE = mean_squared_error(y_test, pred)**0.5
#绘图
import matplotlib.pyplot as plt
#绘制散点图
plt.scatter(X_test, y_test)
#plt.scatter(X_test, pred,c='r')
plt.plot(X_test,pred, 'r')
plt.show()

回归情况如下:

 

注:

(1)回归中的变量必须为二维数组,这里是一元回归,所以要利用array.reshape(-1,1)进行转化

reshape前

reshape后

(2)sklearn 自带的mean_squared_error是MSE,RMSE还需要进行开根号

4.2 excel

        首先,在excel中选择“文件-选项-加载项”选中右侧的“分析工具库”,再点击下方的“转到”

 

         添加好了后,在excel中点击“数据”最右侧点击“数据分析”,进入如下画面,再选择“回归”

                 选择自变量和因变量:

        得出报表,可以根据回归方程中的两个系数计算出预测值。

         注:同样的数据和回归模型,利用不同的软体做出的结果是应该相同的,但这里sklearn和excel结果不同是因为在sklearn中划分了训练集与测试集,预测和模型评价均针对测试集。而sklearn中的划分是随机的,在excel中很难找到对应的测试集,因此在excel中针对整个数据集进行预测和评价。但在实际模型训练中,需要对数据进行划分。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号