python 使用skearn自带数据集load_wine完成:随机森林模型训练及测试并使用网格索搜确定参数n_estimators、criterion、max_depth、min_samples_leaf的最优组合并输出
时间: 2024-03-02 20:49:15 浏览: 128
好的,下面是使用Python的sklearn库中的load_wine数据集,完成随机森林模型训练及测试,并使用网格搜索确定参数n_estimators、criterion、max_depth、min_samples_leaf的最优组合的代码实现:
```python
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.ensemble import RandomForestClassifier
# 加载数据集
wine_data = load_wine()
# 获取特征数据和标签数据
X = wine_data.data
y = wine_data.target
# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 定义随机森林模型
rfc = RandomForestClassifier()
# 定义参数组合
param_grid = {'n_estimators': [10, 50, 100, 150, 200],
'criterion': ['gini', 'entropy'],
'max_depth': [None, 10, 20, 30, 40],
'min_samples_leaf': [1, 2, 4]}
# 网格搜索
grid_search = GridSearchCV(rfc, param_grid=param_grid, cv=5)
grid_search.fit(X_train, y_train)
# 输出最优参数组合
print('最优参数组合:', grid_search.best_params_)
# 测试模型
accuracy = grid_search.score(X_test, y_test)
print('模型准确率:{:.2f}'.format(accuracy))
```
以上代码使用load_wine数据集加载了红酒数据集,并将其分割为训练集和测试集,使用随机森林模型进行训练和测试,并使用网格搜索确定参数n_estimators、criterion、max_depth、min_samples_leaf的最优组合,并输出最优参数组合和模型的准确率。
阅读全文