使用随机搜索(Random Search)寻找以上的超参数,并输出结果。 from sklearn.model_selection import RandomizedSearchCV
时间: 2024-02-17 09:04:33 浏览: 158
好的,这里是使用随机搜索来调整超参数的简单示例代码:
```python
# 导入必要的库和模块
from scipy.stats import randint
from sklearn.datasets import load_digits
from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
# 加载数据集
digits = load_digits()
# 定义超参数空间
param_dist = {
"n_estimators": randint(10, 100),
"max_depth": randint(5, 15),
"min_samples_split": randint(2, 10),
"min_samples_leaf": randint(1, 5),
"max_features": ["sqrt", "log2", None]
}
# 定义模型
rf = RandomForestClassifier()
# 定义随机搜索对象
random_search = RandomizedSearchCV(
estimator=rf,
param_distributions=param_dist,
n_iter=10,
cv=5
)
# 执行随机搜索
random_search.fit(digits.data, digits.target)
# 输出结果
print("Best score: %0.3f" % random_search.best_score_)
print("Best parameters set:")
best_parameters = random_search.best_estimator_.get_params()
for param_name in sorted(param_dist.keys()):
print("\t%s: %r" % (param_name, best_parameters[param_name]))
```
这个示例代码中,我们使用随机搜索来调整随机森林分类器(RandomForestClassifier)的超参数。我们定义了一个超参数空间(param_dist),包含了n_estimators、max_depth、min_samples_split、min_samples_leaf和max_features等5个超参数。我们定义随机搜索对象(RandomizedSearchCV)时,指定了模型、超参数空间、迭代次数(n_iter)和交叉验证(cv)等参数。我们执行随机搜索(random_search.fit)后,输出了最佳得分(best_score_)和最佳超参数组合(best_parameters)。
需要注意的是,这个示例代码中的超参数空间和模型都是随机森林分类器特定的,如果需要调整其他模型的超参数,需要根据模型的特点定义不同的超参数空间和模型,并调整相应的参数。
阅读全文