博__主:米码收割机 技__能: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()
源码关注【测试开发自动化】公众号,回复 “ 汽车效能 ” 获取。
好文链接
发表评论