Я пытаюсь гипернастроить классификатор машины опорных векторов, чтобы точно предсказать классы, которые имеют более высокую степень перекрытия. Цель состоит в том, чтобы получить точное значение C, которое будет примерно 7,568787, которое разделит классы
Часть кода, связанная с этим, выглядит следующим образом:
from sklearn.svm import SVC
from scipy.stats import loguniform
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.calibration import CalibratedClassifierCV
parameters = {"C": loguniform(1e-6, 1e+6)}
grid = GridSearchCV(estimator=CalibratedClassifierCV(SVC(kernel = 'rbf', gamma = 'scale', decision_function_shape='ovr', class_weight=None),method='sigmoid', cv=5), param_grid=parameters, refit = True, verbose = 3)
grid.fit(X_train, Y_train)
Однако, когда я пытаюсь запустить код, я получаю следующую ошибку:
ValueError: Parameter grid for parameter (C) needs to be a list or numpy array, but got (<class 'scipy.stats._distn_infrastructure.rv_frozen'>). Single values need to be wrapped in a list with one element.
параметры = {"C": loguniform(1e-6, 1e+6).rvs(1000000)} возвращает это: ValueError: Неверный параметр C для оценщика CalibratedClassifierCV(base_estimator=SVC(), cv=5). Проверьте список доступных параметров с помощью `estimator.get_params().
Вы просто передаете ему параметр, который вы называете C (он не знает, что это такое). Как правило, вам также нужно добавить имя перед ним. Проверить мои изменения