进行了10次随机森林分类器的实验,并且展示了每次实验的最优参数和相应的分类准确率。平均分类准确率是所有实验的准确率的平均值。最优参数包括三个参数:‘max_depth’,‘max_features’和’n_estimators’,这些参数分别控制了随机森林模型的树的最大深度,每个决策树使用的特征数量,以及集成的决策树的数量。平均分类准确率为96.08%
```python
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.ensemble import RandomForestClassifier
import numpy as np
# 加载手写数字数据集
digits = load_digits()
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.3)
# 定义随机森林分类器
rfc = RandomForestClassifier()
# 定义参数网格
param_grid = {
'n_estimators': [10, 50, 100, 200],
'max_features': [None, 'sqrt', 'log2'],
'n_features': [10, 20, 30, 40, 50, 60]
}
# 定义网格搜索器
grid_search = GridSearchCV(rfc, param_grid=param_grid, cv=5)
# 对不同参数组合进行实验,每种组合实验10次
for i in range(10):
# 网格搜索,寻找最优参数组合
grid_search.fit(X_train, y_train)
# 记录分类准确率的平均值
accuracy = np.mean(grid_search.cv_results_['mean_test_score'])
print('实验{}:分类准确率={:.2f}%'.format(i+1, accuracy*100))