GridsearchCV: scoring='precision' возвращает ошибку
Я тренируюсь, чтобы принимать дерево решений на основе данных радужной оболочки.
Я хочу использовать GridsearchCV, чтобы дать мне наилучшие возможные параметры дерева. По умолчанию оценка является точной. И это хорошо работает (96%). Но когда я пытаюсь использовать scoring='precision' или scoring='recall', я получаю следующее сообщение об ошибке:
# libs :
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import GridSearchCV
# database 'load_iris'
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
# params to be searched :
param_grid = {'criterion': ['gini', 'entropy'],
'min_samples_split': [2, 10],
'max_depth': [None, 2, 5, 10, 15],
'min_samples_leaf': [1, 5, 10],
'max_leaf_nodes': [None, 5, 10, 15],
}
# classifier set up :
dtc = DecisionTreeClassifier()
grid = GridSearchCV(dtc, param_grid, n_jobs=-1, scoring='precision', cv=None)
grid.fit(X, y)
выход:
ValueError: Цель является мультиклассовой, но средняя = "двоичная". Пожалуйста, выберите другую среднюю настройку.
Я знаю, что радужная оболочка содержит 3 класса, поэтому эта ошибка возникает? Как решить эту проблему, пожалуйста? Большое спасибо.