2.2.2 · 建议 20 分钟 · 满分 21
智慧交通中燃油效率随机森林模型开发与测试
背景
在现代交通中,燃油效率(MPG)是衡量汽车性能和交通系统优化的重要指标之一。高效的燃油利用不仅能够降低车辆运营成本,还能减少碳排放,促进环保。开发一个用于预测汽车燃油效率的模型可以帮助智慧交通系统优化路线规划和车辆调度,从而提升整体交通效率和减少能源消耗。 现要求根据提供的汽车燃油效率数据集,补全 2.2.2.ipynb 代码。选择合适的特征,开发一个燃油效率预测模型。利用测试工具对模型进行测试,并对测试结果进行分析,完成测试报告,并运用工具对错误原因进行纠正。 数据集说明: - mpg:燃油效率,每加仑油可以行驶的英里数。 - cylinders:发动机气缸的数量。 - displacement:发动机所有气缸的总容积。 - horsepower:发动机的马力。 - weight:车辆的重量。 - acceleration:加速。 - model year:车辆的生产年份。 - origin:车辆的制造地或品牌所属国家。 - car name:每辆车的具体名称或型号。
工作任务
- 正确加载数据集,显示前五行的数据。
- 使用线性回归模型进行模型训练,要求设定自变量和因变量,并根据自变量特征进行模型训练,最终将训练好的模型以“2.2.2_model.pkl”命名保存到考生文件夹,结果文件以“2.2.2_results.txt”命名保存。
- 使用测试工具对模型进行测试,并记录测试结果,以“2.2.2_report.txt”命名保存。
- 运用工具分析算法中错误案例产生的原因并进行纠正,重新进行模型训练,并以“2.2.2_results_rf.txt”命名保存。
- 对测试结果进行详细分析,并编写测试报告,包括模型性能评估、错误分析及改进建议,写到 2.2.2.docx 答题卷文件。
素材预览
auto-mpg.csv
mpg,cylinders,displacement,horsepower,weight,acceleration,model year,origin,car name 18,8,307,130,3504,12,70,1,chevrolet chevelle malibu 15,8,350,165,3693,11.5,70,1,buick skylark 320
代码填空
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
import pickle
from sklearn.ensemble import RandomForestRegressor
# 加载数据集
df =
# 显示前五行数据
print()
# 处理缺失值
# 将 'horsepower' 列中的所有值转换为数值类型
df['horsepower'] = (, errors='coerce')
# 删除包含缺失值的行
df =
# 选择相关特征进行建模(定义自变量(返回一个DataFrame)和因变量)
X =
y =
# 将数据集划分为训练集和测试集(测试集占比20%)
X_train, X_test, y_train, y_test = (, random_state=42)
# 创建包含标准化和线性回归的管道
pipeline = ([('scaler', ),('linreg', )])
# 训练模型
# 保存训练好的模型
with open('2.2.2_model.pkl', 'wb') as model_file:
pickle.
# 预测并保存结果
y_pred =
results_df = pd.DataFrame(y_pred, columns=['预测结果'])
('2.2.2_results.txt', index=False)
# 测试模型
with open('2.2.2_report.txt', 'w') as results_file:
results_file.write(f'训练集得分: {pipeline.score(X_train, y_train)}\n')
results_file.write(f'测试集得分: {pipeline.score(X_test, y_test)}\n')
# 创建随机森林回归模型实例(创建的决策树的数量为100)
rf_model = (, random_state=42)
# 训练随机森林回归模型
# 使用随机森林模型进行预测
y_pred_rf =
# 保存新的结果
results_rf_df = pd.DataFrame(y_pred_rf, columns=['预测结果'])
('2.2.2_results_rf.txt', index=False)
# 测试模型并保存得分
with open('2.2.2_report_rf.txt', 'w') as results_rf_file:
results_rf_file.write(f'训练集得分: {rf_model.score(X_train, y_train)}\n')
results_rf_file.write(f'测试集得分: {rf_model.score(X_test, y_test)}\n')