Я заметил, что в библиотеке sklearn.cluster есть две разные функции для спектральной кластеризации: SpectralClustering и spectral_clustering . Хотя они отличаются в некоторых деталях, оба спектральных кластера, и большинство их параметров перекрываются. Меня смущает, почему в sklearn есть два метода, которые так похожи?
Некоторые различия, которые я заметил:
В SpectralClustering параметр affinity
принимает и строку, и массив; его значение по умолчанию 'rbf'
; в спектральном кластеризации это может быть только матрица
SpectralClustering () работает как конструктор. Он ничего не возвращает, но имеет два атрибута affinity_matrix_
(к которым вы можете получить доступ после вызова .fit ()) и labels_
. spectral_clustering - это метод, который возвращает только метки.
Использование SpectralClustering:
cluster=SpectralClustering().fit(X)
cluster.labels_
Использование spectral_clustering:
labels=spectral_clustering(affinity_matrix)
Несмотря на эти очевидные различия, мне интересно, отличаются ли эти два метода в фундаментальных аспектах. Иначе, почему есть два метода, которые выполняют в основном одно и то же?