Нет оценки метода для оценки MeanShift - scikit-learn
Я пытался использовать GridSearch для итерации по различным значениям полосы пропускания для алгоритма MeanShift, и он показывает эту ошибку; Кто-нибудь из вас знает, как я могу это исправить? Большое спасибо!
# Using GridSearch for Algorithm Tuning
from sklearn.model_selection import GridSearchCV
meanshift=MeanShift()
C = range(48, 69) # For MeanShift bandwidth
param_grid = {"bandwidth": range(48, 69)}
mean_grid = GridSearchCV(estimator=meanshift, param_grid=param_grid, scoring=None)
mean_grid.fit(X)
И это ошибка, которую я получаю:
TypeError: If no scoring is specified, the estimator passed should have a 'score' method. The estimator MeanShift(bandwidth=None, bin_seeding=False, cluster_all=True, min_bin_freq=1,
n_jobs=1, seeds=None) does not.
2 ответа
Вы не можете использовать GridSearch с неконтролируемым методом.
Концепция поиска по сетке состоит в том, чтобы выбирать те параметры, которые имеют лучший результат при прогнозировании на основе данных. Но поскольку большинство алгоритмов кластеризации не могут предсказать невидимые данные, это не работает.
Не так просто выбрать "оптимальные" параметры в обучении без учителя. Вот почему нет такой простой автоматизации, как gridsearch.
Это потому что MeanShift
Алгоритм не содержит score
функция. В этом случае вы должны указать scoring
в GridSearchCV
, Вот полный список.
Из документации GridSearchCV
:
Параметры:
оценщик: оценщик объекта.
Предполагается, что это реализует интерфейс оценщика scikit-learn. Любой оценщик должен предоставить
score
функция илиscoring
должен быть пройден.