使用 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=1
、tol=thresh=0
、max_iter=iter=100000
(你想要最终结果,而不是中间结果)。使用大型数据集。以上是关于使用 sklearn KMeans 与 SciPy kmeans 相比有优势吗?的主要内容,如果未能解决你的问题,请参考以下文章
由于 scipy,sklearn 导入失败。 OSError: [WinError 126] 找不到指定的模块