用sklearn构建决策树模型,并交叉验证选择最优参数
分享
53488
首先,我们需要导入sklearn库中的决策树模型和交叉验证模块:
```python
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import GridSearchCV
```
然后,我们可以定义一个决策树分类器,并使用GridSearchCV函数进行交叉验证和参数选择:
```python
# 定义决策树分类器
dtc = DecisionTreeClassifier()
# 定义参数范围
param_grid = {'max_depth': [3, 4, 5, 6, 7, 8, 9, 10], 'min_samples_split': [2, 3, 4, 5, 6, 7, 8, 9, 10]}
# 使用GridSearchCV进行交叉验证和参数选择
grid_search = GridSearchCV(dtc, param_grid=param_grid, cv=5)
grid_search.fit(X, y)
```
其中,param_grid定义了我们要搜索的参数范围,cv参数指定了交叉验证的折数。在fit函数中,我们传入了数据集X和标签y,让GridSearchCV自动进行交叉验证和参数选择。
最后,我们可以输出最优参数和最优得分:
```python
print("Best parameters: {}".format(grid_search.best_params_))
print("Best cross-validation score: {:.2f}".format(grid_search.best_score_))
```
这样,我们就可以用sklearn构建决策树模型,并交叉验证选择最优参数了。
```python
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import GridSearchCV
```
然后,我们可以定义一个决策树分类器,并使用GridSearchCV函数进行交叉验证和参数选择:
```python
# 定义决策树分类器
dtc = DecisionTreeClassifier()
# 定义参数范围
param_grid = {'max_depth': [3, 4, 5, 6, 7, 8, 9, 10], 'min_samples_split': [2, 3, 4, 5, 6, 7, 8, 9, 10]}
# 使用GridSearchCV进行交叉验证和参数选择
grid_search = GridSearchCV(dtc, param_grid=param_grid, cv=5)
grid_search.fit(X, y)
```
其中,param_grid定义了我们要搜索的参数范围,cv参数指定了交叉验证的折数。在fit函数中,我们传入了数据集X和标签y,让GridSearchCV自动进行交叉验证和参数选择。
最后,我们可以输出最优参数和最优得分:
```python
print("Best parameters: {}".format(grid_search.best_params_))
print("Best cross-validation score: {:.2f}".format(grid_search.best_score_))
```
这样,我们就可以用sklearn构建决策树模型,并交叉验证选择最优参数了。