Otras respuestas son correctas, pero podría ser útil obtener una comprensión intuitiva del problema al ver un ejemplo. A continuación, genero un conjunto de datos que tiene dos grupos claros, pero la dimensión no agrupada es mucho más grande que la dimensión agrupada (tenga en cuenta las diferentes escalas en los ejes). La agrupación en los datos no normalizados falla. La agrupación en los datos normalizados funciona muy bien.
Lo mismo se aplicaría con los datos agrupados en ambas dimensiones, pero la normalización ayudaría menos. En ese caso, podría ayudar hacer un PCA, luego normalizar, pero eso solo ayudaría si los clústeres son linealmente separables y no se superponen en las dimensiones de PCA. (Este ejemplo solo funciona tan claramente debido al bajo recuento de conglomerados)
import numpy as np
import seaborn
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
rnorm = np.random.randn
x = rnorm(1000) * 10
y = np.concatenate([rnorm(500), rnorm(500) + 5])
fig, axes = plt.subplots(3, 1)
axes[0].scatter(x, y)
axes[0].set_title('Data (note different axes scales)')
km = KMeans(2)
clusters = km.fit_predict(np.array([x, y]).T)
axes[1].scatter(x, y, c=clusters, cmap='bwr')
axes[1].set_title('non-normalised K-means')
clusters = km.fit_predict(np.array([x / 10, y]).T)
axes[2].scatter(x, y, c=clusters, cmap='bwr')
axes[2].set_title('Normalised K-means')