У меня возникли проблемы с пониманием конкретного варианта использования класса sklearn.cluster.SpectralClustering
, как указано в официальной документации here. Скажем, я хочу использовать свою собственную матрицу сродства для выполнения кластеризации. Я первый экземпляр объекта класса SpectralClustering
следующим образом: Использование класса sklearn.cluster.SpectralClustering с параметром affinity = 'precomputed'
from sklearn.clustering import SpectralClustering
cl = SpectralClustering(n_clusters=5,affinity='precomputed')
Документация для параметра affinity
выше выглядит следующим образом:
сродство: строка, массив типа или вызываемый, по умолчанию «RBF»
Если строка, это может быть одна из «ближайших_небольших», «предварительно вычисленных», «rbf» или одно из ядер, поддерживаемых sklearn.metrics.pairwise_kernels. Следует использовать только ядра, которые создают оценки сходства (неотрицательные значения, которые увеличиваются с подобием). Это свойство не проверяется алгоритмом кластеризации.
Теперь объект cl
имеет метод fit
, для которого в документации о его единственном параметре X
выглядит следующим образом:
X: массив, как или редкие матрицы, формы (n_samples, n_features)
ИЛИ, если аффинность ==
precomputed
, А предварительно вычисленное аффинность матрица формы (n_samples, n_samples)
Вот где это запутывает. Я использую свою собственную матрицу сродства, где мера 0 означает, что две точки идентичны, причем большее число означает, что две точки более разнородны. Тем не менее, другие варианты для параметра affinity
действительно имеют набор данных и производить сходства матрицу, для которой выше значения указывают на большее сходство, и нижние значения указывают на несходство (например, радиального базиса ядра).
Так при использовании метода fit
на моем экземпляре SpectralClustering
, мне на самом деле нужно, чтобы превратить мое сродство матрицы в матрицу подобия перед передачей его вызов fit
метода в качестве параметра X
? На той же странице документации делается заметка о преобразовании расстояния к хорошо подобранным сходствам, но в явной форме не указывается, где должен выполняться этот шаг, и через какой метод вызывать.
Спасибо - я заметил этот сниппет, но был догоняем формулировку, т. Е.сходство означает сходство, в отличие от расстояния. –
Интересно, что означает «дельта»? как установить этот параметр? – eastdog