我想在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
。在我看来,这个估计器只需在内部运行kmeansN
次,然后根据我的标准返回单个最佳质心拟合。
有更简单的方法吗?
您是否考虑过使用继承?
您可以在Python中执行OOP。因此,您只需重写sklearn KMeans类的外循环,并继承其他所有内容。