Изменения

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

Ядро

290 байт добавлено, 19:15, 23 марта 2020
Нет описания правки
== Использование ядер в коде ==
В библиотеке языка Python {{---}} sklearn.clustering<ref>https://scikit-learn.org/stable/modules/classes.html#module-sklearn.cluster - sklearn.cluster</ref>, есть функции и классы которые используют ядра для кластеризации, например SVM(Support vector machines).
* Подключаем библиотеки:
'''import''' numpy '''as''' np '''from''' sklearn.datasets '''import''' make_blobssvm model '''from''' sklearn.cluster '''import''' mean_shiftUsvm
* Генерируем данные:Создаём классификатор svm {{---}} Classifier. В данном случае используется линейное ядро. Так же можно использовать 'polynomial' и 'rbf' [[Ядро#Некоторые часто используемые ядра|(см. используемые ядра)]].
centers clf = [['''1''', '''1'''], ['''-1''', '''-1'''], ['''1''', '''-1''']] X, _ = make_blobssvm.SVC(n_sampleskernel='''10000''', centers=centers, cluster_std='''0.6''linear')
* Посчтитаем кластеризацию с помощью MeanShift<ref>httpsТренируем модель используя заданные сеты и смотрим на предсказанные ответы://scikit-learn.org/stable/modules/generated/sklearn.cluster.MeanShift.html#sklearn.cluster.MeanShift - Meanshift documentaion</ref>, находим разделяющуу полосу, добавляя в качестве первого парамента значение для пропускной способности ядра:   bandwidth = estimate_bandwidth(X, quantile='''0clf.2''', n_samples=fit'''500''') ms = MeanShift(bandwidth=bandwidthX_train, bin_seeding='''True'''y_train) ms.'''fit'''(X) labels y_pred = ms.labels_ cluster_centers = ms.cluster_centers_ labels_unique = npclf.'''uniquepredict'''(labels) n_clusters_ = '''len'''(labels_unique) print("number of estimated clusters : %d" % n_clusters_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]
[[Категория: Машинное обучение]]
[[Категория: Классификация]]
[[Категория: Регрессия]]
20
правок

Навигация