У меня есть набор данных с дюжиной измерений (столбцы) и около 200 наблюдений (строки).Этот набор данных был нормализован с использованием quantile_transform_normalize
.(Изменить: я попытался запустить кластеризацию без нормализации, но все же не повезло, поэтому я не верю, что это является причиной.) Теперь я хочу сгруппировать данные в несколько кластеров.До сих пор я использовал KMeans, но я читал, что он может быть неточным в больших измерениях и плохо обрабатывает выбросы, поэтому я хотел сравнить с DBSCAN, чтобы увидеть, получаю ли я другой результат.
Однако, когда я пытаюсь кластеризовать данные с помощью DBSCAN, используя метрику расстояния Махаланобиса, каждый элемент кластеризуется в -1.Согласно документации:
Шумным образцам присваивается метка -1.
Я не совсем уверен, что это значит, но я получал несколько ОК кластеров сKMeans, так что я знаю, что есть что-то для кластеризации - это не просто случайность.
Вот код, который я использую для кластеризации:
covariance = np.cov(data.values.astype("float32"), rowvar=False)
clusterer = sklearn.cluster.DBSCAN(min_samples=6, metric="mahalanobis", metric_params={"V": covariance})
clusterer.fit(data)
И это все.Я точно знаю, что data
- это числовой Pandas DataFrame, поскольку я проверял его в отладчике.
Что может быть причиной этой проблемы?