#python #cluster-analysis #dbscan
Вопрос:
Я использовал sklearn.dbscan
в python, и результат дает только метки каждого кластера, но я также хочу рассчитать степень достоверности кластеризации или просто среднее расстояние кластера друг от друга.
У вас, ребята, есть какие-нибудь идеи?
Ответ №1:
Я не думаю, что эта функциональность не поддерживается Scikit. Кластерная уверенность-это не вещь, так как DBSCAN не использует кластерные вероятности. Однако расчет расстояний между кластерами относительно прост.
import numpy as np from sklearn.datasets import load_iris from sklearn.cluster import dbscan # Get data amp; labels data = load_iris()['data'] labels = dbscan(data)[1] import numpy as np from sklearn.datasets import load_iris from sklearn.cluster import dbscan # Get data amp; labels data = load_iris()['data'] labels = dbscan(data)[1] # Initialize results cluster_means = np.zeros((len(set(labels)) - 1, data.shape[1])) cluster_distances = np.zeros((len(data), len(set(labels)) - 1)) # Loop through clusters for i, cluster in enumerate(set(labels)): # Skip noise if cluster == -1: continue # Get cluster mean cluster_mean = np.mean(data[labels == cluster], axis=0) # Set cluster mean cluster_means[i, :] = cluster_mean # Set cluster distances cluster_distances[:, i] = np.linalg.norm(data - cluster_mean, axis=1)