【问题标题】:Trying to run multiple instances of sklearn KMeans in parallel尝试并行运行 sklearn KMeans 的多个实例
【发布时间】:2020-08-05 17:58:02
【问题描述】:

我正在尝试并行运行多个 Kmeans (from sklearn) 实例。我有以下代码:

with concurrent.futures.ProcessPoolExecutor() as executor:
    kmeans_per_k = [executor.submit(KMeans(n_clusters=k, random_state=42).fit(features)) for k in range(1,16)]
    for f in concurrent.futures.as_completed(kmeans_per_k):
        f = f.result()

这给了我以下错误

TypeError: 'KMeans' object is not callable

【问题讨论】:

    标签: python scikit-learn multiprocessing k-means


    【解决方案1】:

    这是因为 fit 函数返回 KMeans 对象。 ProcessPoolExecutor 期望提交方法中有一个函数。您所做的基本上是在准备要提交的参数时进行拟合。您可能想要以下内容:

    with concurrent.futures.ProcessPoolExecutor() as executor:
        kmeans_per_k = [executor.submit(KMeans(n_clusters=k, random_state=42).fit, features) for k in range(1,16)]
        for f in concurrent.futures.as_completed(kmeans_per_k):
            f = f.result()
    

    【讨论】:

      猜你喜欢
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多