如何在有分类知识库的python中对新条目进行分类

如何在有分类知识库的python中对新条目进行分类,python,cluster-analysis,k-means,Python,Cluster Analysis,K Means,我用python编写了一组向量,构成了我的知识库,例如: KB=[[1,2,3,4],[1,2,2,1],[4,3,1,2],[5,4,3,5]] 现在,我使用以下公式计算了KB的集群: from sklearn.cluster import KMeans model=KMeans(n_clusters=3) model.fit(KB) 现在我有了一个新条目(可以有多个条目) 我会知道哪个集群最适合上面计算的集群,然后利用KB 你能帮我吗 提前感谢给您: KB=[[1,2,3,4]

我用python编写了一组向量,构成了我的知识库,例如:

 KB=[[1,2,3,4],[1,2,2,1],[4,3,1,2],[5,4,3,5]]
现在,我使用以下公式计算了KB的集群:

 from sklearn.cluster import KMeans 
 model=KMeans(n_clusters=3)
 model.fit(KB)
现在我有了一个新条目(可以有多个条目)

我会知道哪个集群最适合上面计算的集群,然后利用KB

你能帮我吗

提前感谢

给您:

KB=[[1,2,3,4],[1,2,2,1],[4,3,1,2],[5,4,3,5]]
from sklearn.cluster import KMeans 
model=KMeans(n_clusters=3).fit(KB)
A=[3,2,1,3]
l = model.predict([A])
print model.labels_, l

centers = model.cluster_centers_.copy()
print centers
为了让你的模特“健康”,我加入了两条线。 然后我用这个方法预测。。预测 我还打印了模型中使用的每个示例的标签

编辑添加绘图

import matplotlib.pyplot as plt
import numpy
# Compute the distances vector to vector
d = numpy.array([[numpy.sum(KBi - cj) for KBi in KB] for cj in centers])
print d
# for cluster 0 and 1
plt.scatter(d[0], d[1])
plt.pause(10)

什么:
user\u sub\u for\u k
?对不起,这是一个打字错误。我纠正了错误完美,绝对好。我还有最后一个问题。如果我要在二维图中用相对簇来绘制数据以显示KB和A向量位置,我该怎么做?您应该使用
matplotlib.pyplot
对不起。但是,你能提供一个例子吗?在答案中完成(更易于阅读)
import matplotlib.pyplot as plt
import numpy
# Compute the distances vector to vector
d = numpy.array([[numpy.sum(KBi - cj) for KBi in KB] for cj in centers])
print d
# for cluster 0 and 1
plt.scatter(d[0], d[1])
plt.pause(10)