我目前正在解决一个问题,我必须使用余弦距离作为Kmeans聚类的相似性度量。但是,标准的Kmeans聚类包(来自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)
如果我对此的数学理解不正确,请告诉我?