2016-05-13 47 views
1

sklearn KMeans使用sklearn KMeans与SciPy kmeans相比有优势吗?

类sklearn.cluster.KMeans(n_clusters = 8,初始化= 'k均值++', n_init = 10,max_iter = 300,TOL = 0.0001,precompute_distances = '自动' 的文档, 冗长= 0,random_state =无,copy_x =真,n_jobs = 1)

SciPy kmeans

scipy.cluster.vq.kmeans(OBS,k_or_guess,ITER = 20,脱粒= 1e-05, check_finite = True)

很明显参数的数量不同,也许更多的参数可用于sklearn。

有没有人尝试过一种方法与其他方法,您是否有偏好在分类问题中使用其中之一?

+1

没有尝试它,我总是喜欢sklearn。更好的文档(包括用户指南)以及更多可能使用的工具,如交叉验证/网格搜索。但那只是我的个人意见。 – sascha

+1

scipy实现给你选择设置你自己的质心,这可以很好。另请注意,对于大多数应用程序,您将希望使用[kmeans2](http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.cluster.vq.kmeans2.html) ,而不是你引用的那个。除此之外,我不能说。 – patrick

回答

2

Benchmark

你永远不会再触摸scipy的。

+0

似乎很难比较一个 - SciPy的参数与sklearn的参数不完全匹配:例如,sklearn的初始化默认数量为n = 10,而在SciPy中它不是明确的。默认情况下,对于两个参数和其他参数使用100个质心,SciPy速度更快,但这并不意味着更好。 – pepe

+0

禁用所有附加功能。 'n_init = 1','tol = thresh = 0','max_iter = iter = 100000'(你想得到最终结果,而不是临时结果)。使用*大*数据集。 –