C14.2
随机森林回归器(RandomForest回归器)
教材页 第14章
数据 来自互联网的石油消费数据集。petrol_consumption.csv
数据集存储到D:\目录下,否则需要修改程序中的文件路径。
回归任务:根据汽油税(美分),人均收入(美元),高速公路(以英里为单位)和人口所占比例来预测美国48个州的汽油消耗量(百万加仑)。
输入属性:Petrol_tax Average_income Paved_Highways Population_Driver_licence(%)
输出属性:Petrol_Consumption
说明:数据集来自互联网,用于教学演示。
任务 建立随机森林回归模型。
Python

import pandas as pd;
import numpy as np;

# 导入数据,路径中要么用\\或/或者在路径前加r
dataset = pd.read_csv('D:\\petrol_consumption.csv');

# 输出数据预览
print(dataset.head());

# 准备训练数据
# 自变量:汽油税、人均收入、高速公路、人口所占比例
# 因变量:汽油消耗量
X = dataset.iloc[:, 0:4].values;
y = dataset.iloc[:, 4].values;

# 将数据分为训练集和测试集
from sklearn.model_selection import train_test_split;

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0);

# 根据需要,可以进行属性量纲缩放。
from sklearn.preprocessing import StandardScaler;

sc = StandardScaler();
X_train = sc.fit_transform(X_train);
X_test = sc.transform(X_test);

# 随机森林建立回归模型
from sklearn.ensemble import RandomForestRegressor;

regressor = RandomForestRegressor(n_estimators=200, random_state=0);
regressor.fit(X_train, y_train);
y_pred = regressor.predict(X_test);

# 模型评价
from sklearn import metrics;

print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_pred));
print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred));
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(y_test, y_pred)));

输出

Python输出:
Petrol_tax Average_income ... Population_Driver_licence(%) Petrol_Consumption
0 9.0 3571 ... 0.525 541
1 9.0 4092 ... 0.572 524
2 9.0 3865 ... 0.580 561
3 7.5 4870 ... 0.529 414
4 8.0 4399 ... 0.544 410

[5 rows x 5 columns]
Mean Absolute Error: 48.33899999999999
Mean Squared Error: 3494.2330150000003
Root Mean Squared Error: 59.112037818028234

书籍 姜维.《数据分析与数据挖掘》、《数据分析与数据挖掘建模与工具》,电子工业出版社, 2023,2024。
软件 Python,C++(附加orsci包)。