use*_*156 10 python machine-learning scikit-learn grid-search
我尝试在 DecisionTreeClassifier 上使用 GridSearchCV,但出现以下错误:TypeError: unbound method get_params() must be called with DecisionTreeClassifier instance as first argument ( got nothing instead)
这是我的代码:
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.model_selection import GridSearchCV
from sklearn.cross_validation import cross_val_score
X, Y = createDataSet(filename)
tree_para = {'criterion':['gini','entropy'],'max_depth':[4,5,6,7,8,9,10,11,12,15,20,30,40,50,70,90,120,150]}
clf = GridSearchCV(DecisionTreeClassifier, tree_para, cv=5)
clf.fit(X, Y)
Run Code Online (Sandbox Code Playgroud)
小智 11
在您对GridSearchCV方法的调用中,第一个参数应该是 的实例化对象,DecisionTreeClassifier而不是类的名称。它应该是
clf = GridSearchCV(DecisionTreeClassifier(), tree_para, cv=5)
Run Code Online (Sandbox Code Playgroud)
查看此处的示例以获取更多详细信息。
希望有帮助!
小智 8
关于参数的另一个方面是网格搜索可以使用不同的参数组合来运行。下面提到的参数将检查与的不同criterion组合max_depth
tree_param = {'criterion':['gini','entropy'],'max_depth':[4,5,6,7,8,9,10,11,12,15,20,30,40,50,70,90,120,150]}
Run Code Online (Sandbox Code Playgroud)
如果需要,网格搜索可以在多组候选参数上运行:
例如:
tree_param = [{'criterion': ['entropy', 'gini'], 'max_depth': max_depth_range},
{'min_samples_leaf': min_samples_leaf_range}]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,网格搜索将在两组参数上运行,首先是criterion和的每个组合max_depth,其次是仅针对所有提供的值min_samples_leaf
| 归档时间: |
|
| 查看次数: |
21154 次 |
| 最近记录: |