我对python中的聚类有点新意。我试图聚集一些数据。我试图将人们分组在他们的工作上。有几个代理人共享类似的工作,我试图用k方法将它们组合在一起。
以下是我的数据
from flask import Flask, session
from flask import session
from functools import wraps
app = Flask(__name__)
def check_login(function):
@wraps(function)
def decorated_function(*args, **kwargs):
if 'logged_in' in session:
return function(*args, **kwargs)
return 'You are NOT logged in. Please log in to continue'
return decorated_function()
@app.route('/')
def default_route():
return 'This is the default page.'
@app.route('/page1')
@check_login
def page_one():
return 'This is page1.'
app.secret_key = 'Youwillneverguess'
if __name__=='__main__':
app.run(debug=True)
以下是数据类型:
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]
我认为这是来自我如何调用该数据,但我不知道如何解决这个问题。
答案 0 :(得分:0)
将它与“string”或“integer”或“date”属性一起使用不会使有意义。
k-means的概念是最小二乘的概念。它确实试图最小化(x-mean)^2
。但是这个等式只存在于数值值上,并且最小化正方形只有在连续时才有意义(不是如果它们是二进制的,那么它会减少计算)。
换句话说, k-means不能用于您的数据集。