K-means能不能保存模型?

K-Means能不能类似于集成学习生成一个模型保存下来,用在新的数据上?

  • 文章:K-means算法在手写体数字图像数据上的使用示例 中也许有你想要的答案,请看下吧
  • 除此之外, 这篇博客: K-means在关键词聚类中的尝试中的 K-means在文本聚类中的尝试 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • K-means算法是无监督的聚类算法。它的算法思想是:先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。

    K-means算法的关键点在于:

    • 初始k个聚类中心的选择
    • 距离的计算方式

    我想讨论的是:在关键词聚类的任务当中,距离的计算方式的选择,对聚类效果的影响。


  • 以下回答由chatgpt基于相关博客总结生成:

    K-means模型的保存和新数据应用

    在使用K-Means算法时,我们可以将生成的模型保存下来,并且在新的数据上进行应用。下面是具体的解决方案:

    1. 加载数据,创建K-means算法实例,并进行训练,获得标签:
    data, cityName = loadData('city.txt')       # 加载数据
    km = KMeans(n_clusters=4)               # 创建实例  
    label = km.fit_predict(data)            # 调用Kmeans()fit_predict()方法进行计算
    expenses = np.sum(km.cluster_centers_,axis=1)
    CityCluster = [[], [], [], []]
    for i in range(len(cityName)):
        CityCluster[label[i]].append(cityName[i])
    for i in range(len(CityCluster)):
        print("Expenses:%.2f" % expenses[i] )
        print(CityCluster[i])
    
    1. 模型的保存与加载:

    在Python中,可以使用sklearn.externals.joblib库来保存和加载K-means模型。

    保存模型的代码如下:

    ```python import joblib

    joblib.dump(km, "kmeans_model.pkl") ```

    加载模型并应用于新的数据的代码如下:

    ```python km = joblib.load("kmeans_model.pkl") new_data = loadData("new_data.txt") # 加载新数据

    # 使用加载的模型进行预测 new_label = km.predict(new_data) new_expenses = np.sum(km.cluster_centers_, axis=1) new_CityCluster = [[], [], [], []] for i in range(len(new_data)): new_CityCluster[new_label[i]].append(new_data[i]) for i in range(len(new_CityCluster)): print("Expenses:%.2f" % new_expenses[i] ) print(new_CityCluster[i]) ```

    通过以上步骤,我们可以将K-means模型保存下来,并且在新的数据上进行应用。可以根据新的数据的标签,进行进一步的处理和分析。