我目前正在解决一个问题,我必须使用余弦距离作为 k 均值聚类的相似性度量。但是,标准的 k-means 聚类包(来自 Sklearn 包)使用欧几里德距离作为标准,并且不允许您更改它。
因此,我的理解是通过下面的代码规范化我的原始数据集。然后我可以运行 kmeans 包(使用欧几里得距离);是否与我将距离度量更改为余弦距离一样?
from sklearn import preprocessing # to normalise existing X
X_Norm = preprocessing.normalize(X)
km2 = cluster.KMeans(n_clusters=5,init='random').fit(X_Norm)
如果我对此的数学理解不正确,请告诉我。