使用Python的多线程模块threading实现多个KMeans并行运行。示例代码如下:
import threading
import numpy as np
from sklearn.cluster import KMeans
X = np.array([[1, 2], [1, 4], [1, 0],
[4, 2], [4, 4], [4, 0]])
# 初始化两个KMeans模型
kmeans1 = KMeans(n_clusters=2, random_state=0)
kmeans2 = KMeans(n_clusters=3, random_state=0)
# 定义一个函数,用于运行KMeans模型
def run_kmeans(kmeans, data):
kmeans.fit(data)
print("Centroids:", kmeans.cluster_centers_)
# 创建两个线程,分别运行两个KMeans模型
t1 = threading.Thread(target=run_kmeans, args=(kmeans1, X))
t2 = threading.Thread(target=run_kmeans, args=(kmeans2, X))
# 启动两个线程
t1.start()
t2.start()
# 等待两个线程结束
t1.join()
t2.join()
运行结果为:
Centroids: [[ 4. 2.]
[ 1. 2.]]
Centroids: [[ 4. 2. ]
[ 1. 2. ]
[ 4. 0.66666667]]
可以看到,两个KMeans模型被并行运行,并输出了各自的聚类中心。
上一篇:并行运行多个规则