affinity_propagation#
- sklearn.cluster.affinity_propagation(S, *, предпочтение=None, convergence_iter=15, max_iter=200, damping=0.5, copy=True, verbose=False, return_n_iter=False, random_state=None)[источник]#
Выполнить кластеризацию данных методом распространения близости.
Подробнее в Руководство пользователя.
- Параметры:
- Sarray-like формы (n_samples, n_samples)
Матрица сходства между точками.
- предпочтениеarray-like формы (n_samples,) или float, по умолчанию=None
Предпочтения для каждой точки - точки с большими значениями предпочтений с большей вероятностью будут выбраны в качестве экземпляров. Количество экземпляров, т.е. кластеров, зависит от значения входных предпочтений. Если предпочтения не переданы в качестве аргументов, они будут установлены в медиану входных сходств (что приводит к умеренному количеству кластеров). Для меньшего количества кластеров это можно установить в минимальное значение сходств.
- convergence_iterint, default=15
Количество итераций без изменения числа оцененных кластеров, которое останавливает сходимость.
- max_iterint, default=200
Максимальное количество итераций.
- dampingfloat, по умолчанию=0.5
Коэффициент демпфирования между 0.5 и 1.
- copybool, по умолчанию=True
Если copy=False, матрица сходства изменяется алгоритмом на месте для эффективности памяти.
- verbosebool, по умолчанию=False
Уровень подробности вывода.
- return_n_iterbool, по умолчанию=False
Возвращать или нет количество итераций.
- random_stateint, экземпляр RandomState или None, по умолчанию=None
Псевдослучайный генератор чисел для управления начальным состоянием. Используйте целое число для воспроизводимых результатов между вызовами функций. См. Глоссарий.
Добавлено в версии 0.23: этот параметр ранее был жестко задан как 0.
- Возвращает:
- cluster_centers_indicesndarray формы (n_clusters,)
Индекс центров кластеров.
- меткиndarray формы (n_samples,)
Метки кластеров для каждой точки.
- n_iterint
Количество выполненных итераций. Возвращается только если
return_n_iterустановлено в True.
Примечания
Пример использования см. в Демонстрация алгоритма кластеризации с распространением аффинности. Вы также можете ознакомиться с Визуализация структуры фондового рынка
Когда алгоритм не сходится, он все равно возвращает массив
cluster_center_indicesи метки, если есть какие-либо экземпляры/кластеры, однако они могут быть вырожденными и должны использоваться с осторожностью.Когда все обучающие выборки имеют одинаковые сходства и одинаковые предпочтения, назначение центров кластеров и меток зависит от предпочтения. Если предпочтение меньше, чем сходства, один центр кластера и метка
0для каждого образца будет возвращено. В противном случае каждый обучающий образец становится собственным центром кластера и получает уникальную метку.Ссылки
Brendan J. Frey и Delbert Dueck, “Clustering by Passing Messages Between Data Points”, Science Feb. 2007
Примеры
>>> import numpy as np >>> from sklearn.cluster import affinity_propagation >>> from sklearn.metrics.pairwise import euclidean_distances >>> X = np.array([[1, 2], [1, 4], [1, 0], ... [4, 2], [4, 4], [4, 0]]) >>> S = -euclidean_distances(X, squared=True) >>> cluster_centers_indices, labels = affinity_propagation(S, random_state=0) >>> cluster_centers_indices array([0, 3]) >>> labels array([0, 0, 0, 1, 1, 1])