用2500条数据,其二分类比例为2.5:1的数据训练出来的随机森林模型用于预测数据总量40000条且二分类比例为38000:2000的数据,在训练模型时,怎样进行参数调整,代码示例
时间: 2024-02-09 09:10:41 浏览: 107
在训练模型时,我们可以使用网格搜索(Grid Search)或随机搜索(Random Search)等方法进行参数调整。以下是一个使用随机搜索调整随机森林模型参数的示例代码:
```python
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import RandomizedSearchCV
import numpy as np
# 定义随机森林模型
rf = RandomForestClassifier(random_state=42)
# 设置要调整的参数及其取值范围
param_dist = {
'n_estimators': [100, 200, 300, 400],
'max_features': ['sqrt', 'log2'],
'max_depth': [None, 10, 20, 30],
'min_samples_split': [2, 5, 10],
'min_samples_leaf': [1, 2, 4],
}
# 定义随机搜索对象
n_iter_search = 10 # 设置随机搜索次数
random_search = RandomizedSearchCV(
rf, param_distributions=param_dist, n_iter=n_iter_search, cv=5, scoring='roc_auc', random_state=42)
# 进行随机搜索
random_search.fit(X_train, y_train)
# 输出最佳参数
print("Best parameters: {}".format(random_search.best_params_))
# 在测试集上评估模型性能
rf_best = random_search.best_estimator_
y_pred = rf_best.predict(X_test)
print("Accuracy on test set: {:.3f}".format(rf_best.score(X_test, y_test)))
```
其中,n_iter_search参数表示随机搜索的次数。在每次随机搜索中,算法会随机选取一组参数,建立一个随机森林模型,并在交叉验证中评估模型性能。最终输出最佳参数和在测试集上的表现。
阅读全文