Не знаю, уместно ли здесь задавать вопрос, но все же спрошу. Если это не разрешено, пожалуйста, дайте мне знать.
Я использовал GridSearchCV
для настройки параметров, чтобы добиться максимальной точности. Вот что я сделал:
from sklearn.grid_search import GridSearchCV
parameters = {'min_samples_split':np.arange(2, 80), 'max_depth': np.arange(2,10), 'criterion':['gini', 'entropy']}
clfr = DecisionTreeClassifier()
grid = GridSearchCV(clfr, parameters,scoring='accuracy', cv=8)
grid.fit(X_train,y_train)
print('The parameters combination that would give best accuracy is : ')
print(grid.best_params_)
print('The best accuracy achieved after parameter tuning via grid search is : ', grid.best_score_)
Это дает мне следующий результат:
The parameters combination that would give best accuracy is :
{'max_depth': 5, 'criterion': 'entropy', 'min_samples_split': 2}
The best accuracy achieved after parameter tuning via grid search is : 0.8147086914995224
Теперь я хочу использовать эти параметры при вызове функции, визуализирующей дерево решений.
Функция выглядит примерно так
def visualize_decision_tree(decision_tree, feature, target):
dot_data = export_graphviz(decision_tree, out_file=None,
feature_names=feature,
class_names=target,
filled=True, rounded=True,
special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)
return Image(graph.create_png())
Прямо сейчас я пытаюсь использовать лучшие параметры, предоставленные GridSearchCV, для вызова функции следующим образом.
dtBestScore = DecisionTreeClassifier(parameters = grid.best_params_)
dtBestScore = dtBestScore.fit(X=dfWithTrainFeatures, y= dfWithTestFeature)
visualize_decision_tree(dtBestScore, list(dfCopy.columns.delete(0).values), 'survived')
Я получаю ошибку в первой строке кода, которая говорит
TypeError: __init__() got an unexpected keyword argument 'parameters'
Можно ли каким-то образом использовать лучшие параметры, предоставляемые поиском по сетке, и использовать их автоматически? Вместо того, чтобы смотреть результат и вручную устанавливать значение каждого параметра?
DecisionTreeClassifier(**grid.best_params)
? См. pythontips.com/2013/08/04/. args-and-kwargs-in-python-explained, чтобы узнать больше о kwargs. - person Oliver Dain   schedule 05.01.2017