Ручное предсказание ovr SV C с полиномиальным ядром - PullRequest
0 голосов
/ 08 января 2020

Я использую 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 ( источник )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...