scikit-learn 中 kmeans 的自定义标准
Custom criteria for kmeans in scikit-learn
我想 运行 scikit-learn 中的聚类算法并在标准管道中使用它(即,我需要将其写入。对于这个聚类算法,我想 运行 kmeans N
次(即 N
不同的初始点),然后使用我自己的函数选择最好的 运行。当前实现的 kmeans 版本有一个内置的方式到 运行 和 N
迭代,并根据最小化的簇内方差选择最好的。本质上我想复制这个 kmeans 函数,但是对 "best" 拟合使用不同的标准。
我正在尝试找到执行此操作的最佳方法。一个有前途的方法似乎是编写我自己的估算器(例如,使用 https://github.com/scikit-learn-contrib/project-template/ 上的工具)。似乎这个估计器需要实现 fit
、fit_predict
、fit_transform
、get_params
、predict
、score
、set_params
, 和 transform
。在我看来,这个估计器可以在内部 运行 kmeans N
次,然后 return 符合我的标准的单个最佳质心。
有更简单的方法吗?
您是否考虑过使用继承?
您可以在 Python 中进行 OOP。因此,您只需覆盖 sklearn KMeans class 的外循环,并继承其他所有内容。
我想 运行 scikit-learn 中的聚类算法并在标准管道中使用它(即,我需要将其写入。对于这个聚类算法,我想 运行 kmeans N
次(即 N
不同的初始点),然后使用我自己的函数选择最好的 运行。当前实现的 kmeans 版本有一个内置的方式到 运行 和 N
迭代,并根据最小化的簇内方差选择最好的。本质上我想复制这个 kmeans 函数,但是对 "best" 拟合使用不同的标准。
我正在尝试找到执行此操作的最佳方法。一个有前途的方法似乎是编写我自己的估算器(例如,使用 https://github.com/scikit-learn-contrib/project-template/ 上的工具)。似乎这个估计器需要实现 fit
、fit_predict
、fit_transform
、get_params
、predict
、score
、set_params
, 和 transform
。在我看来,这个估计器可以在内部 运行 kmeans N
次,然后 return 符合我的标准的单个最佳质心。
有更简单的方法吗?
您是否考虑过使用继承?
您可以在 Python 中进行 OOP。因此,您只需覆盖 sklearn KMeans class 的外循环,并继承其他所有内容。