def ckmeans(X, K, datasetID=-1, params=()):
global kmeans_init
pnames = [ 'init', 'max_iter', 'n_jobs', 'distance']
#dflts = ['k-means++', 300, -1, 'euclidean']
dflts = [ 'KA', 300, -1, 'euclidean']
if isinstance(params, np.ndarray):
paramsloc = params.tolist()
else:
paramsloc = params
(init, max_iter, n_jobs, distance) = ds.resolveargumentpairs(pnames, dflts, paramsloc)
if datasetID in kmeans_init:
init = kmeans_init[datasetID][0:K]
elif init == 'KA':
init = initclusterKA(X, K, distance)
elif init == 'KA_memorysaver':
init = initclusterKA_memorysaver(X, K, distance)
C = skcl.KMeans(K, init=init, max_iter=max_iter, n_jobs=n_jobs).fit(X).labels_
return clustVec2partMat(C, K)
评论列表
文章目录