问题现象:在利用随机森林预测共享单车投放量时,因其特征为日期、季节、年、月、小时、是否是假期、星期几、是否为工作日、天气、温度、体感温度、湿度、风速,我想添加日期进行预测,并通过修改三个超参数改变R2并绘制R2的图像,来讨论最优参数,应该如何修改我的代码?
bike_day.csv数据类型如下:

import sklearn.metrics as sm # 性能评价模块
import sklearn.utils as su # 通用功能模块(随机数模块)
import sklearn.ensemble as se # 导入随机森林模型
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 加载基于天的数据
day_data = pd.read_csv('bike_day.csv')
# 将日期转换为日期时间格式
# day_data['dteday'] = day_data['dteday'].replace('/','.')
# print(day_data['dteday'])
# 提取特征和标签
features = day_data.columns[2:13]
target_name = day_data.columns[-3]
data = day_data[features].values
target = day_data[target_name].values
x,y = su.shuffle(data, target,random_state=7)
# 训练集:训练模型
# 测试集:评估模型好坏
train_size = int(len(x) * 0.8) # 训练集样本数量
train_x = x[:train_size] # 训练集输入部分
test_x = x[train_size:] # 测试集输入部分
train_y = y[:train_size] # 训练集输出部分
test_y = y[train_size:] # 测试集输出部分
# 定义模型
model = se.RandomForestRegressor(
max_depth=10, # 最大深度,防止过拟合
n_estimators=1000, # 决策树数量
min_samples_split=2) # 样本最小数量,最小样本分割节点,小于这个值就不再划分,防止过拟合
model.fit(train_x,train_y) # 训练
pred_y = model.predict(test_x)
# 计算并打印r2的值,准确率
print('r2:',sm.r2_score(test_y,pred_y))
# 特征重要性
fi = model.feature_importances_ # 仅决策树有
print('特征重要性fi',fi)
x1 = np.arange(fi.size) # 有多少特征值就产生多少个值
sorted_idx = fi.argsort()[::-1] # 特征重要性依据下标排序
fi = fi[sorted_idx] # 特征重要性按照sorted_idx来排列
# 特征重要性可视化
plt.figure()
plt.title('Day-feature_importances')
plt.ylabel('feature_importances')
plt.bar(x1,fi,0.4,color='b',label="feature_importances")
plt.xticks(x1,[features[i] for i in sorted_idx],rotation=90)
plt.legend()
plt.tight_layout()
plt.show()