博__主:米码收割机 技__能:C++/Python语言 公众号:测试开发自动化【获取源码+商业合作】 荣__誉:阿里云博客专家博主、51CTO技术博主 专__注:专注主流机器人、人工智能等相关领域的开发、测试技术。

python汽车效能数据集—回归建模(源码+数据集)【独一无二】

目录

python汽车效能数据集—回归建模(源码+数据集)【独一无二】一、要求二、代码实现

一、要求

回归任务建模分析:data目录下的data1.csv中提供了一个汽车效能数据集,该数据集包含了各种汽车的特征(如气缸数、排量、马力等)以及每加仑汽油行驶英里数(MPG)。你的任务是:

对数据进行预处理,处理缺失值、异常值和进行特征缩放。(5分)分析特征与目标变量(MPG)之间的相关性,并进行特征选择。(5分)使用至少两种回归算法来预测汽车的MPG。(10分)评估模型的性能,使用适当的评估指标来比较不同算法的优劣。(5分)根据你的分析,给出提升模型性能的建议,并讨论哪些特征对预测MPG最为重要。(5分)

数据集如下:

源码关注【测试开发自动化】公众号,回复 “ 汽车效能 ” 获取。

二、代码实现

数据导入和预处理:

使用 Pandas 库读取 CSV 文件,并将数据存储在 DataFrame 中。 使用 SimpleImputer 进行数据预处理,将缺失值用均值填充。 使用 StandardScaler 进行特征缩放,将特征值进行标准化处理。 data = pd.read_csv("data1.csv")

imputer = SimpleImputer(strategy='mean')

df['horsepower'] = imputer.fit_transform(df[['horsepower']])

数据拆分:

使用 train_test_split 函数将数据集拆分为训练集和测试集。 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

模型训练和预测:

使用 LinearRegression 和 RandomForestRegressor 分别初始化模型,并在训练集上拟合数据。 使用训练好的模型在测试集上进行预测。 linear_reg = LinearRegression()

linear_reg.fit(X_train, y_train)

y_pred_linear = linear_reg.predict(X_test)

源码关注【测试开发自动化】公众号,回复 “ 汽车效能 ” 获取。

模型评估:

使用 mean_squared_error 和 r2_score 计算模型在测试集上的均方误差(MSE)和决定系数(R2)。 输出评估指标。 print("Linear Regression - MSE:", mse_linear, "R2:", r2_linear)

print("Random Forest Regression - MSE:", mse_rf, "R2:", r2_rf)

指标结果如下:

源码关注【测试开发自动化】公众号,回复 “ 汽车效能 ” 获取。

绘制折线图:

使用 Matplotlib 库绘制实际值与预测值的折线图。 plt.plot(y_test.values, label='Actual')

plt.plot(y_pred_linear, label='Linear Regression Predicted')

plt.plot(y_pred_rf, label='Random Forest Predicted')

plt.xlabel('Samples')

plt.ylabel('MPG')

plt.legend()

plt.show()

源码关注【测试开发自动化】公众号,回复 “ 汽车效能 ” 获取。

绘制柱状图:

使用 Matplotlib 库绘制两种模型评估指标(MSE 和 R2)的柱状图。 fig, ax1 = plt.subplots()

bar1 = ax1.bar(x - width/2, mse_values, width, label='MSE', color='b')

ax1.set_xlabel('Models')

ax1.set_ylabel('MSE', color='b')

ax1.tick_params(axis='y', labelcolor='b')

ax2 = ax1.twinx()

bar2 = ax2.bar(x + width/2, r2_values, width, label='R2', color='r')

ax2.set_ylabel('R2', color='r')

ax2.tick_params(axis='y', labelcolor='r')

ax1.set_xticks(x)

ax1.set_xticklabels(models)

ax1.legend(loc='upper left')

ax2.legend(loc='upper right')

plt.show()

源码关注【测试开发自动化】公众号,回复 “ 汽车效能 ” 获取。

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: