Изменения

Перейти к: навигация, поиск

Ядро

1812 байт добавлено, 19:36, 4 сентября 2022
м
rollbackEdits.php mass rollback
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]]. 
== Преимущества и недостатки ==
Строковые ядра <ref>[https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%BA%D0%BE%D0%B2%D0%BE%D0%B5_%D1%8F%D0%B4%D1%80%D0%BE#%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5 - Строковое ядро]</ref> это различные ядерные функции для вычисления расстояний между двумя строками.
 
 
== Использование ядер в коде ==
 
В библиотеке языка Python {{---}} sklearn.clustering<ref>https://scikit-learn.org/stable/modules/classes.html#module-sklearn.cluster - sklearn.cluster</ref>, есть функции и классы которые используют ядра для кластеризации, например SVM(Support vector machines).
 
* Подключаем библиотеки:
'''import''' svm model
'''from''' sklearn '''import''' svm
 
* Создаём классификатор svm {{---}} Classifier. В данном случае используется линейное ядро. Так же можно использовать 'polynomial' и 'rbf' [[Ядро#Некоторые часто используемые ядра|(см. используемые ядра)]].
 
clf = svm.SVC(kernel='linear')
 
*Тренируем модель используя заданные сеты и смотрим на предсказанные ответы:
clf.'''fit'''(X_train, y_train)
y_pred = clf.'''predict'''(X_test)
 
Кроме того, у этой функции так же присутствует гипперпараметры {{---}} '''регуляризация''' (англ. regularization), который отвечает за размер штрафа и гамма, которая отвечает за приближенность результирующей функций к датасету. Здесь нужно помнить, что при больших значениях гамма возможно [[Переобучение|переобучение]].
== См. также ==
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]
#[https://www.datacamp.com/community/tutorials/svm-classification-scikit-learn-python#kernels datacamp.com — Support Vector Machines with Scikit-learn]
[[Категория: Машинное обучение]]
[[Категория: Классификация]]
[[Категория: Регрессия]]
1632
правки

Навигация