Я изучаю Набор данных оптовых клиентов .Используя метод локтя, я обнаружил, что k = 5, по-видимому, хорошее количество кластеров.К сожалению, когда я стандартизирую свои функции, я получаю одноэлементный кластер, даже с несколькими узлами.Этого не происходит, когда я не стандартизирую.
Я знаю, что стандартизация функций - это часто задаваемый вопрос, однако я все еще не понимаю, является ли это хорошей практикой или нет.Здесь я стандартизирую, потому что различия некоторых функций весьма различны.Если это плохая идея, не могли бы вы объяснить, почему?
Вот пример MDS-визуализации результата K-средних.Как видите, в левом нижнем углу рисунка есть точка, которая имеет свой кластер (он имеет уникальный цвет).Это потому, что это выброс?Должен ли я удалить его вручную перед запуском K-средних?
![MDS viz of k-means result](https://i.stack.imgur.com/AHBEm.png)
Вот MWE, если вы хотите повторить эксперимент самостоятельно.Пожалуйста, не стесняйтесь быть прямолинейным, если я как-то ошибся.
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.manifold import MDS
df = pd.read_csv("./wholesale-dataset.csv")
X = StandardScaler().fit_transform(df.values[:,2:])
km = KMeans(5)
km.fit(X)
mds = MDS().fit_transform(X)
fkm = plt.figure()
fkm.gca().scatter(mds[:,0], mds[:,1], c=km.labels_)