简单线性回归

简单线性回归

本文主要是构建简单线性回归,是一个自变量与因变量之间的关系,构建发动机排量与二氧化碳排放量简单线性模型。并解释如何进行模型评估。以下数据来源任选其一
数据集来源
数据集来源

一.数据描述

MODELYEAR:年份例如 2014
MAKE:制造 例如讴歌
MODEL:型号 例如 ILX
VEHICLECLASS:车辆类别,例如 SUV
ENGINESIZE:发动机排量例如 4.7
CYLINDERS:气缸,例如 6
TRANSMISSION:传输例如 A6
FUELTYPE:燃料类型,例如 z
FUELCONSUMPTION_CITY:城市油耗(升/100 公里)例如 9.9
FUELCONSUMPTION_HWY:高速公路燃油消耗量(升/100 公里)例如 8.9
FUELCONSUMPTION_COMB:油耗组合 (L/100 km)例如 9.2
FUELCONSUMPTION_COMB_MPG:油耗组合 (每加仑)
CO2EMISSIONS:CO2 排放量(克/公里)例如 182 --> 低 --> 0

二.读取数据

data = pd.read_csv("FuelConsumption.csv")
data.head()
print(data.shape)
data.info()
print("重复值个数", data.duplicated().sum())
print(data.describe())
df = data[['ENGINESIZE', 'CYLINDERS', 'FUELCONSUMPTION_COMB', 'CO2EMISSIONS']]

三.绘制直方图散点图

‘ENGINESIZE’, ‘CYLINDERS’, ‘FUELCONSUMPTION_COMB’,三者分别排放量作直方图再绘制三者各自与排放量的散点图

df.hist()
plt.show()
# 气缸数与二氧化碳排放
plt.scatter(df.CYLINDERS, df.CO2EMISSIONS, color='red')
plt.xlabel('气缸数')
plt.ylabel('二氧化碳排放')
plt.show()
# 综合燃油消耗量与二氧化碳排放
plt.scatter(df.FUELCONSUMPTION_COMB, df.CO2EMISSIONS, color='blue')
plt.xlabel("综合燃油消耗量")
plt.ylabel('二氧化碳排放')
plt.show()
# 发动机排量与而二氧化碳排放
plt.scatter(df.ENGINESIZE, df.CO2EMISSIONS, color='blue')
plt.xlabel("发动机排量")
plt.ylabel('二氧化碳排放')
plt.show()

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

四.划分训练集测试集

train_size = 0.8
train_data_size = int(train_size * len(df))
# 随机选择80%数据作为训练集
train_data = df[:train_data_size]

五.构建模型

# 构造一元线性回归模型,并用训练集拟合模型
regressor = LinearRegression()
x_train = train_data['ENGINESIZE'].values.reshape(-1, 1)
y_train = train_data['CO2EMISSIONS'].values.reshape(-1, 1)
regressor.fit(x_train, y_train)
print('系数:',regressor.coef_)
print('截距为',regressor.intercept_)

六.模型评估

在这里插入图片描述
**MAE(Mean Absolute Error)**是指平均绝对误差,是回归模型中用来评估模型预测结果的误差大小的指标之一。
MAE的计算方法是将测试数据的预测值与真实值之差取绝对值后累加,然后再除以测试数据总数,得到预测误差的平均值。MAE越小,则说明模型预测结果的精度越高。

**MSE(Mean Squared Error)**是指平均平方误差,是回归模型中用来评估模型预测结果的误差大小的指标之一。
MSE的计算方法是将测试数据的预测值与真实值之差平方后累加,然后再除以测试数据总数,得到预测误差的平均平方值。MSE越小,则说明模型预测结果的精度越高。

**RMSE(Root Mean Square Error)**是指均方根误差,是回归模型中用来评估模型预测结果的误差大小的指标之一。
RMSE的意义与MSE类似,都是用来评估模型的预测精度,其值越小说明模型的预测精度越高。RMSE相对于MSE有更好的可解释性,因为它的单位是与原始数据一致的,例如对于CO2排放量这样的物理量,RMSE的值是以g/km为单位的,更容易帮助我们理解模型预测结果的误差大小。

**RAE(Relative Absolute Error)**是指相对绝对误差,也是回归模型中用来评估模型预测结果的误差大小的指标之一。
RAE主要是用来比较同一自变量模型在不同数据集上的预测结果,或比较不同自变量模型在同一数据集上的预测结果。RAE是用预测误差的平均绝对值除以真实值的平均绝对值得到的,它的值一般是小于1的,越小说明模型的预测精度越高。

**RSE(Relative Squared Error)**是指相对平方误差,也是回归模型中用来评估模型预测结果的误差大小的指标之一。
RSE主要是用来比较同一自变量模型在不同数据集上的预测结果,或比较不同自变量模型在同一数据集上的预测结果。RSE是用预测误差的平方除以真实值的平均平方值得到的,它的值一般是小于1的,越小说明模型的预测精度越高。

在模型的训练中

# 测试模型,用测试集计算R平方值
test_data = df[train_data_size:]
x_test = test_data['ENGINESIZE'].values.reshape(-1, 1)
y_test = test_data['CO2EMISSIONS'].values.reshape(-1, 1)
r_squared = regressor.score(x_test, y_test)
print('R平方值:', r_squared)

在模型训练完之后

test_x = np.asanyarray(test_data[['ENGINESIZE']])
test_y = np.asanyarray(test_data[['CO2EMISSIONS']])
test_y_ = regressor.predict(test_x)
print("Mean absolute error: %.2f" % np.mean(np.absolute(test_y_ - test_y)))
print("Residual sum of squares (MSE): %.2f" % np.mean((test_y_ - test_y) ** 2))
print("R2-score: %.2f" % r2_score(test_y , test_y_) )

七.模型构建完成

plt.scatter(x_test, y_test, color='red')
plt.plot(x_test, regressor.predict(x_test), color='blue')
plt.title('Engine Size vs CO2 Emissions')
plt.xlabel('Engine Size')
plt.ylabel('CO2 Emissions')
plt.show()

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值