forest_reg = RandomForestRegressor(max_depth=(15),min_samples_leaf=2,min_samples_split=3#,n_estimators=100) param_grid = {'n_estimators': [ 20]} grid_search = GridSearchCV(forest_reg, param_grid, cv=5, scoring='r2') grid_search.fit(X_train_scaled, y_train) best_forest_reg = grid_search.best_estimator_ y_forest_pred_train = best_forest_reg.predict(X_train_scaled) y_forest_pred_test = best_forest_reg.predict(X_test_scaled) print("随机森林模型 R2 (训练集):", r2_score(y_train, y_forest_pred_train)) print("随机森林模型 R2 (测试集):", r2_score(y_test, y_forest_pred_test))。
时间: 2023-11-24 07:07:05 浏览: 86
这段代码使用了sklearn库中的随机森林回归模型(RandomForestRegressor)和网格搜索(GridSearchCV)方法,进行模型的训练和参数调优。具体实现如下:
- forest_reg = RandomForestRegressor(max_depth=(15),min_samples_leaf=2,min_samples_split=3#,n_estimators=100):创建一个随机森林回归模型对象forest_reg,指定了模型的最大深度(max_depth)、叶子节点最小样本数(min_samples_leaf)、内部节点最小样本数(min_samples_split)等参数。
- param_grid = {'n_estimators': [ 20]}:设置用于网格搜索的参数范围,此处设置n_estimators参数的值为[20]。
- grid_search = GridSearchCV(forest_reg, param_grid, cv=5, scoring='r2'):创建一个网格搜索对象grid_search,指定了要搜索的模型对象forest_reg、参数范围param_grid、交叉验证折数cv、评估指标scoring等参数。
- grid_search.fit(X_train_scaled, y_train):对网格搜索对象grid_search进行拟合,使用训练集特征矩阵X_train_scaled和目标变量y_train进行训练。
- best_forest_reg = grid_search.best_estimator_:从网格搜索结果中选取最佳的模型对象best_forest_reg,即拟合效果最好的随机森林回归模型。
- y_forest_pred_train = best_forest_reg.predict(X_train_scaled):使用训练集特征矩阵X_train_scaled对训练集目标变量y_train进行预测,得到预测结果y_forest_pred_train。
- y_forest_pred_test = best_forest_reg.predict(X_test_scaled):使用测试集特征矩阵X_test_scaled对测试集目标变量y_test进行预测,得到预测结果y_forest_pred_test。
- print("随机森林模型 R2 (训练集):", r2_score(y_train, y_forest_pred_train)):输出随机森林回归模型在训练集上的R2评分。
- print("随机森林模型 R2 (测试集):", r2_score(y_test, y_forest_pred_test)):输出随机森林回归模型在测试集上的R2评分。
最终的输出结果为随机森林模型在训练集和测试集上的R2评分,用于评估模型的拟合效果和泛化能力。
阅读全文