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

Posted

技术标签:

【中文标题】使用 sklearn KMeans 与 SciPy kmeans 相比有优势吗?【英文标题】:Are there advantages of using sklearn KMeans versus SciPy kmeans? 【发布时间】:2016-09-09 16:44:22 【问题描述】:

来自sklearn KMeans的文档

类 sklearn.cluster.KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', 详细=0,random_state=None,copy_x=True,n_jobs=1)

和SciPy kmeans

scipy.cluster.vq.kmeans(obs, k_or_guess, iter=20, thresh=1e-05, check_finite=真)

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

你们中的任何人是否尝试过其中一种方法,并且您是否倾向于在分类问题中使用其中一种方法?

【问题讨论】:

如果不尝试,我总是更喜欢 sklearn。更好的文档(包括用户指南)和更多你可能会使用的工具,比如交叉验证/网格搜索。但这只是我的看法。 scipy 实现让您可以选择设置自己的质心,这很好。另请注意,对于大多数应用程序,您将希望使用kmeans2,而不是您引用的那个。除此之外,我不能说。 【参考方案1】:

基准测试

而且你再也不会碰 scipy 了。

【讨论】:

似乎很难相互比较——SciPy 的参数与 sklearn 的参数不完全匹配:例如,sklearn 的默认初始化次数是 n=10,而在 SciPy 中则不是'不明确。默认使用 100 个质心和其他参数,SciPy 更快,但这并不意味着更好。 禁用所有附加功能。 n_init=1tol=thresh=0max_iter=iter=100000(你想要最终结果,而不是中间结果)。使用大型数据集。

以上是关于使用 sklearn KMeans 与 SciPy kmeans 相比有优势吗?的主要内容,如果未能解决你的问题,请参考以下文章

由于 scipy,sklearn 导入失败。 OSError: [WinError 126] 找不到指定的模块

kmeans算法学习

scipy与sklearn下载与安装

scipy.cluster.vq.kmeans2 中的“矩阵不是正定的”错误

scipy.cluster.kmeans 的结果不稳定

scipy.optimize + kmeans 聚类