首页 > 解决方案 > scikit-learn 中 kmeans 的自定义标准

问题描述

我想在 scikit-learn 中运行一个聚类算法并在标准管道中使用它(即,我需要将其写入 . 对于这个聚类算法,我想运行 kmeansN时间(即,具有N不同的初始点),然后使用我自己的函数来选择最佳运行。当前实现的kmeans版本有一个内置的方式来运行N迭代并根据最小化的集群内方差选择最好的。本质上我想复制这个kmeans函数,但是对“最佳”拟合使用不同的标准。

我试图找出最好的方法来做到这一点。一种有前途的方法似乎是编写我自己的估算器(例如,使用https://github.com/scikit-learn-contrib/project-template/上的工具)。这个估计器似乎需要实现fit, fit_predict, fit_transform, get_params, predict, score, set_params, 和transform. 在我看来,这个估计器可以在N内部运行 kmeans 时间,然后根据我的标准返回单个最佳质心拟合。

有没有更简单的方法来做到这一点?

标签: pythonmachine-learningscikit-learncluster-analysis

解决方案


您是否考虑过使用继承

您可以在 Python 中执行 OOP。因此,您将仅覆盖 sklearn KMeans 类的外循环,并继承其他所有内容。


推荐阅读