【问题标题】:How to get the cluster ID's from a scikit learn model?如何从 scikit 学习模型中获取集群 ID?
【发布时间】:2019-11-21 04:21:53
【问题描述】:

我在 scikit-learn 中完成了我的代码,需要将我的代码传递给数据工程师。

kmeans = KMeans(n_clusters = 5, init = 'k-means++', random_state = 42)
y_kmeans = kmeans.fit_predict(X)

目标是使用 k-means 对总体进行细分。我需要将 ID 5 集群的输出放到报告 (CSV) 中,以便它在自己的列中。拟合模型后如何处理?

【问题讨论】:

    标签: python machine-learning scikit-learn k-means


    【解决方案1】:

    如果您的数据 X 已经在数据框 df 中,则可以直接添加具有集群 ID 的列;这是一个带有虚拟 2D 数据和 2 个集群的示例:

    import numpy as np
    import pandas as pd
    from sklearn.cluster import KMeans
    
    # dummy data:
    X = np.array([[10, 2], [1, 4], [1, 0],
                  [1, 2], [10, 4], [10, 0]])
    df = pd.DataFrame({'Column1':X[:,0],'Column2':X[:,1]})
    
    kmeans = KMeans(n_clusters=2, init = 'k-means++', random_state=42).fit(X)
    kmeans.labels_
    # array([1, 0, 0, 0, 1, 1])
    
    df['clusterID'] = kmeans.labels_
    print(df)
    

    结果是

       Column1  Column2  clusterID
    0       10        2          1
    1        1        4          0
    2        1        0          0
    3        1        2          0
    4       10        4          1
    5       10        0          1
    

    【讨论】:

      【解决方案2】:

      您可以将模型保存为 pickle,并将 pickle 文件提供给数据工程师

      import pickle
      filename = 'your_model.pkl'
      pickle.dump(model, open(filename, 'wb'))
      

      【讨论】:

        猜你喜欢
        • 2019-05-13
        • 2018-06-04
        • 1970-01-01
        • 2020-06-15
        • 2021-09-26
        • 2016-04-29
        • 2016-12-29
        • 2019-02-07
        • 2014-03-23
        相关资源
        最近更新 更多