使用 python 聚类数据

Clustering data with python

我尝试使用 python 和 scikit-learn 对我的数据集进行聚类。这是我大学的一次练习。数据集如下所示:

StationNr        A1        A2        A3        A4        A5        A6        A7        A8        A9        A10        A11        A12

  
    0        2.45        4.32        3.5      1.89      2.87      4.34      2.67      3.90      3.97       2.61       3.01       2.95
  
  1200       3.01        2.95        3.53     1.8       2.8       4.3       2.67      2.87      2.45       4.32       3.53       2.95            

“StationNr”列具有以下不同的值:
[ 0, 1200, 900, 100, 400, 300, 600, 200, 1100, 500, 1000, 800, 700]
如果“StationNr”中有一个零,则表示该产品是好的。其他数字的含义是,产品在哪个站报废。
“A%”列具有以下不同的值,这些列代表一个处理站:
[ 2.017, 1.767, 0.987, ..., 24.083, 18.977, 4.904]
“A1”大约有 4000 个不同的值。此值是站上处理的持续时间。

现在,我想知道,在站点(A1,A2,A3 ...,A11,A12)上的处理持续时间是否存在集群,例如单个值或值的组合,这就是结果是坏产品还是好产品。好的产品有“StationNr”== 0,坏的产品有“StationNr”!= 0。

我 select k-Means 算法来探索数据,但我不知道如何在 python 代码中结合 k-Means 进行练习。

也许 k-Means 不是这种情况下的最佳算法,如果您提出更好的算法,我会很高兴。

我是这个主题的新手,如果你能帮助我对数据进行聚类,我会很高兴。

此致

基督教徒

sklearn中给出了近10种用于聚类目的的算法。例如Birch、DBSCAN、K-Means、Spectral等。您可以找到完整列表 here in the documentation.

您只需将数据放入模型并应用 fit 方法。您还需要传递必要的参数,例如 k-means.

中的簇数

我想这是一个数据框,我将其命名为 df 所以一个工作示例可以是这样的:

X = df.values

from sklearn.cluster import Birch, KMeans, SpectralClustering, AgglomerativeClustering, DBSCAN

brc = Birch(n_clusters=None) # with int value, it'll perform Agglomerative Clustering
brc.fit(X)
brc.predict(X) # array of points belonging to unique clusters

kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
kmeans.labels_ # array of clusters according to indices

clustering = SpectralClustering(n_clusters=2, assign_labels="discretize",random_state=0).fit(X)
clustering.labels_  # label of each data point belonging to the cluster

clustering = AgglomerativeClustering().fit(X)
clustering.labels_

clustering = DBSCAN(eps=3, min_samples=2).fit(X)
clustering.labels_

试试让我知道。如果有帮助,请投票并采纳为答案。