Я использую scikit-learn 0.22 . После поиска net я нашел ответ . Я добавил полиномиальный случай в функцию kernel и не коснулся solution_function & Foret
def kernel(params, sv, X):
if params['kernel'] == 'linear':
return [np.dot(vi, X) for vi in sv]
elif params['kernel'] == 'poly':
return [(params['gamma'] * np.dot(vi, X)) ** params['degree'] for vi in sv]
elif params['kernel'] == 'rbf':
return [math.exp(-params['gamma'] * np.dot(vi - X, vi - X)) for vi in sv]
Несмотря на то, что def decision_function(params, sv, nv, a, b, X)
в этом Ответ предназначен для работы с ovo (не ovr), этот код может правильно предсказать метки (predict(params, sv, nv, a, b, cs, X)
& clf.predict(X)
возвращает идентичные массивы) !!!!!!!!
clf = SVC(kernel='poly', degree=3, decision_function_shape='ovr').fit(X,y)
Здесь, У меня вопрос, как изменить def decision_function(params, sv, nv, a, b, X)
таким образом, чтобы он работал для ovr ситуации.
Все объяснения Я мог бы найти о ситуации ovo не овр. Я должен что-то упустить.
Кроме того, я хотел бы выделить:
Если solution_function_shape = 'ovr', функция принятия решения является монотонной c трансформацией функции решения ovo ( источник )