随机森林建模及调参代码
时间: 2024-03-28 08:32:38 浏览: 68
随机森林是一种集成学习方法,它由多个决策树组成。每个决策树都是独立训练的,最后通过投票或平均的方式来进行预测。随机森林具有很好的泛化能力和抗过拟合能力,适用于分类和回归问题。
下面是一个使用Python中的scikit-learn库进行随机森林建模和调参的示例代码:
```python
# 导入所需的库
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# 创建一个随机森林分类器
rf = RandomForestClassifier()
# 创建一个参数网格
param_grid = {
'n_estimators': [100, 200, 300], # 决策树的数量
'max_depth': [None, 5, 10], # 决策树的最大深度
'min_samples_split': [2, 5, 10], # 节点分裂所需的最小样本数
'min_samples_leaf': [1, 2, 4] # 叶子节点所需的最小样本数
}
# 创建一个网格搜索对象
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5)
# 创建一些示例数据
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 在训练集上进行网格搜索
grid_search.fit(X_train, y_train)
# 输出最佳参数组合
print("Best parameters found: ", grid_search.best_params_)
# 使用最佳参数组合的模型进行预测
y_pred = grid_search.predict(X_test)
```
在上述代码中,我们首先导入了所需的库,然后创建了一个随机森林分类器对象。接下来,我们定义了一个参数网格,其中包含了我们希望调整的参数及其可能的取值。然后,我们创建了一个网格搜索对象,将随机森林分类器和参数网格作为参数传入。接着,我们使用`make_classification`函数创建了一些示例数据,并将数据集拆分为训练集和测试集。最后,我们使用训练集上的数据进行网格搜索,并输出找到的最佳参数组合。最后,我们使用最佳参数组合的模型进行预测。
阅读全文