线性回归的多种实现方式

1 回归的概念

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

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

2 回归方程

y= a+bx

        其中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:\Users\64884\Desktop\南洋理工大学暑期项目\回归\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中针对整个数据集进行预测和评价。但在实际模型训练中,需要对数据进行划分。

4.3 Orange

4.3.1 组件连接

 4.3.2 结果

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#温室里的土豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值