【发布时间】:2019-06-29 12:01:57
【问题描述】:
如何使用 GridSearch 结果确定要删除哪些特征/列/属性?
换句话说,如果 GridSearch 返回 max_features 应该为 3,我们能否确定应该使用哪一个 EXACT 3 特征?
让我们以具有 4 个特征的经典鸢尾花数据集为例。
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import GridSearchCV
from sklearn import datasets
iris = datasets.load_iris()
all_inputs = iris.data
all_labels = iris.target
decision_tree_classifier = DecisionTreeClassifier()
parameter_grid = {'max_depth': [1, 2, 3, 4, 5],
'max_features': [1, 2, 3, 4]}
cross_validation = StratifiedKFold(n_splits=10)
grid_search = GridSearchCV(decision_tree_classifier,
param_grid=parameter_grid,
cv=cross_validation)
grid_search.fit(all_inputs, all_labels)
print('Best score: {}'.format(grid_search.best_score_))
print('Best parameters: {}'.format(grid_search.best_params_))
假设我们得到 max_features 为 3。我如何找出哪 3 个特征在这里最合适?
设置 max_features = 3 将有助于拟合,但我想知道哪些属性是正确的。
我是否必须自己生成所有功能组合的可能列表以提供给 GridSearch 或者有更简单的方法吗?
【问题讨论】:
标签: python machine-learning scikit-learn feature-selection