当前位置:   article > 正文

基于Python的Linear Regression实验报告_python linear regression结果

python linear regression结果

Linear Regression 实验报告

一、数据处理

本次数据集为 Boston House Price 数据集,房价影响因素及房价

通过sklearn.datasets获取数据

boston = load_boston()
x,y = boston.data,boston.target
  • 1
  • 2

查看数据大小:

print(x.shape)
print(y.shape)
  • 1
  • 2

在这里插入图片描述

数据共506项,数据集有13种影响因素

查看部分数据:

for i in range(7):
    print(x[i],'   ',y[i])
  • 1
  • 2

在这里插入图片描述

对数据进行拆分,测试集比例test_size=0.2

x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2)

二、算法

共采用三种regression算法

Linear Regression

目标函数:

在这里插入图片描述

Loss Function: 最小二乘法

在这里插入图片描述

采取梯度下降算法,求出使误差最小的参数,则得到最终模型

Ridge Regression

加入L2正则项来调优模型。下面是Ridge Regression的损失函数;

在这里插入图片描述

Lasso Regression

加入L1正则项来调优模型。下面是Lasso Regression的损失函数;

在这里插入图片描述

三、模型:

LinearRegressionPred函数

参数:训练集数据、训练集标签、测试集数据、测试集标签

选择LinearRegression训练模型拟合训练集,再用拟合得到的模型去预测x_test对应的价格

最后计算预测值与实际值的差距,分别计算MSE,MAE,并返回

def LinearRegressionPred(x_train,x_test,y_train,y_test):

    model = linear_model.LinearRegression()      #选择模型
    model.fit(x_train,y_train)      #拟合
    y_pred = model.predict(x_test)  #预测
    
    loss1 = mean_squared_error(y_test, y_pred)       #计算损失函数
    loss2 = mean_absolute_error(y_test, y_pred)
    
    return loss1,loss2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
RidgeRegressionPred, LassoRegressionPred函数

与LinearRegressionPred的唯一区别在于选取的模型不同

def RidgeRegressionPred(x_train,x_test,y_train,y_test):
    model = linear_model.Ridge()    #选择模型
    model.fit(x_train,y_train)      #拟合
    y_pred = model.predict(x_test)  #预测
    
    loss1 = mean_squared_error(y_test, y_pred)       #计算损失函数
    loss2 = mean_absolute_error(y_test, y_pred)
    
    return loss1,loss2

def LassoRegressionPred(x_train,x_test,y_train,y_test):
    model = linear_model.Lasso()    #选择模型
    model.fit(x_train,y_train)      #拟合
    y_pred = model.predict(x_test)  #预测
    
    loss1 = mean_squared_error(y_test, y_pred)       #计算损失函数
    loss2 = mean_absolute_error(y_test, y_pred)
    
    return loss1,loss2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

四、实验结果

在这里插入图片描述

三种算法中,Linear Regression, Ridge Regression得到预测结果最好,MSE为25.37、25.57,MAE为3.50、3.50

Lasso Regression的预测结果最差,MSE为31.52, MAE为3.88

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/551606
推荐阅读
相关标签
  

闽ICP备14008679号