【发布时间】:2016-02-14 02:23:54
【问题描述】:
我对 python 中的集群有点陌生。我正在尝试对一些数据进行聚类。我正在尝试根据他们的工作编号对人们进行分组。有几个代理共享相似的工作编号,我正在尝试使用 k 方法将它们组合在一起。
这是我的数据的样子
date agentid workgroup direction worknum
0 2015-09-01 Adam Claims Inbound 1
1 2015-09-01 Nathaniel Claims Inbound 1
2 2015-09-01 Accorvia - Outbound 13
3 2015-09-01 Jane- - Claims Inbound 1
4 2015-09-01 Jessica Benefits Inbound 6
以下是数据类型:
y.types
date object
agentid object
workgroup object
direction object
worknum float64
dtype: object
这是我的聚类分析代码
##### cluster data into K=1..10 clusters #####
#K, KM, centroids,D_k,cIdx,dist,avgWithinSS = kmeans.run_kmeans(X,10)
K = range(1,10)
# scipy.cluster.vq.kmeans
KM = [kmeans(y,k) for k in K] # apply kmeans 1 to 10
centroids = [cent for (cent,var) in KM] # cluster centroids
D_k = [cdist(y, cent, 'euclidean') for cent in centroids]
cIdx = [np.argmin(D,axis=1) for D in D_k]
dist = [np.min(D,axis=1) for D in D_k]
avgWithinSS = [sum(d)/y.shape[0] for d in dist]
这给我一个错误:
AttributeError: 'DataFrame' object has no attribute 'dtype'
我认为这是来自我调用该数据的方式,但我不确定如何解决此问题。
【问题讨论】:
-
您的数据看起来不适合聚类!你想要
groupby吗?也许像y.groupby(by='worknum') -
@atomh33ls 也许我需要更好地更改数据。我不想只是将技能编号组合在一起。理想情况下,我想根据共享的工作编号找出相似组中的人应该是什么。或者我只是误解了你的评论!
标签: python numpy scipy cluster-analysis k-means