小编典典

Scikit学习:如何在一维数组上运行KMeans?

python

我有一个介于0和1之间的13.876(13,876)值数组。我sklearn.cluster.KMeans只想将此向量应用于查找将值分组的不同簇。但是,似乎KMeans适用于多维数组,而不适用于一维数组。我猜有一个使它起作用的技巧,但我不知道如何做。我看到KMeans.fit()接受
“ X:类似数组或稀疏矩阵,shape =(n_samples,n_features)” ,但它希望n_samples大于1

我尝试将数组放在np.zeros()矩阵上并运行KMeans,但随后将所有非空值放在类1上,其余都放在类0上。

谁能帮助在一维数组上运行此算法?非常感谢!


阅读 216

收藏
2021-01-20

共1个答案

小编典典

您具有1个特征的许多样本,因此可以使用numpy的reshape将数组重塑为(13,876,1):

from sklearn.cluster import KMeans
import numpy as np
x = np.random.random(13876)

km = KMeans()
km.fit(x.reshape(-1,1))  # -1 will be calculated to be 13876 here
2021-01-20