Python 在sklearn中完成K-means后是否有打印异常值的方法?让';让我们说前五名

Python 在sklearn中完成K-means后是否有打印异常值的方法?让';让我们说前五名,python,scikit-learn,k-means,Python,Scikit Learn,K Means,准备数据 df= rn.read_sql(sql,conn) Data = df.as_matrix(['TOT_CLM_GROSS_AMT','UNIT_PRICE','QUANTITY']) 应用K-均值 kmeansFinal = KMeans(n_clusters = 47, init="k-means++",precompute_distances=True, copy_x=True,max_iter=500,n_init=20 ).fit(Data) 然后计算距离 distan

准备数据

df= rn.read_sql(sql,conn)
Data = df.as_matrix(['TOT_CLM_GROSS_AMT','UNIT_PRICE','QUANTITY'])
应用K-均值

kmeansFinal = KMeans(n_clusters = 47, init="k-means++",precompute_distances=True, copy_x=True,max_iter=500,n_init=20 ).fit(Data) 
然后计算距离

distances= kmeansFinal.transform(Data)
我想打印前n个异常值的值

假设n现在是5,在计算完
距离后,选择
n
,然后运行:

n = 5
outliers = [x[0] for x in sorted(enumerate(distances), key=lambda x: sum(x[1]**2)**0.5, reverse=True)[:n]]
现在,
异常值
保存了
数据
中距离其质心最远的数据点的索引

for outlier in outliers:
    print(Data[outlier])
K-means讨厌异常值。看见