SpectralClustering против spectral_clustering в scikit-learn - PullRequest
0 голосов
/ 14 апреля 2019

Я заметил, что в библиотеке 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)

Несмотря на эти очевидные различия, мне интересно, отличаются ли эти два метода в фундаментальных аспектах. Иначе, почему есть два метода, которые выполняют в основном одно и то же?

1 Ответ

0 голосов
/ 17 апреля 2019

Вы проверяли исходный код?

Я ожидаю, что SpectralClustering - это объектно-ориентированная оболочка для императивного метода spectral_clustering.

...