Python sklearn中的加权聚类

Python sklearn中的加权聚类,python,python-3.x,scikit-learn,cluster-analysis,dbscan,Python,Python 3.x,Scikit Learn,Cluster Analysis,Dbscan,假设我有一组点(x,y和size)。我想使用sklearn.cluster.DBSCAN及其中心在我的数据中查找集群。如果我对每一点都一视同仁,那就没问题了。但实际上我想要的是加权中心,而不是几何中心(这意味着一个更大的点应该比一个更小的点更多) 我遇到了sample\u weight,但我不太明白这是否是我所需要的。当我使用sample\u weight(右侧)时,我得到了与不使用它时完全不同的簇(左侧): 其次,我考虑使用np.repeat(x,w),其中x是我的数据,w是每个点的大小,因

假设我有一组点(x,y和size)。我想使用
sklearn.cluster.DBSCAN
及其中心在我的数据中查找集群。如果我对每一点都一视同仁,那就没问题了。但实际上我想要的是加权中心,而不是几何中心(这意味着一个更大的点应该比一个更小的点更多)

我遇到了
sample\u weight
,但我不太明白这是否是我所需要的。当我使用
sample\u weight
(右侧)时,我得到了与不使用它时完全不同的簇(左侧):

其次,我考虑使用
np.repeat(x,w)
,其中x是我的数据,w是每个点的大小,因此我得到了与它们的权重成比例的多个点的副本。但这可能不是一个聪明的解决方案,因为我得到了很多数据,对吗

sample\u weight
对我的情况有用吗,或者有没有比使用
np更好的解决方案的建议。重复
?我知道已经有一些关于
sample\u weight
的问题,但我无法准确地读出如何使用它


谢谢

DBSCAN最重要的是参数设置。有两个参数,
epsilon
minPts
(=
minu samples
)。epsilon参数是点周围的半径,如果满足
minPts
,则
minPts
将点视为簇的一部分。因此,我建议调整此数据集的参数,而不是使用
np.repeat

根据的文档,
sample_weight
是运行时的一个调优参数:

另一种减少内存和计算时间的方法是删除 (接近)复制点,并使用样本重量代替

我认为在优化运行时之前,您需要首先解决结果的质量问题


我不确定加权中心是什么意思,可能您指的是不同的聚类算法,例如。

DBSCAN最重要的是参数设置。有两个参数,
epsilon
minPts
(=
minu samples
)。epsilon参数是点周围的半径,如果满足
minPts
,则
minPts
将点视为簇的一部分。因此,我建议调整此数据集的参数,而不是使用
np.repeat

根据的文档,
sample_weight
是运行时的一个调优参数:

另一种减少内存和计算时间的方法是删除 (接近)复制点,并使用样本重量代替

我认为在优化运行时之前,您需要首先解决结果的质量问题


我不确定你对加权中心的意思,可能你指的是不同的聚类算法,例如。

这是一种
sklearn.cluster.DBSCAN
的方法。我使用它的方式是:
fit\u predict(self,X[,y,sample\u weight])
这是一种
sklearn.cluster.DBSCAN的方法。我使用它的方式是:
fit\u predict(self,X[,y,sample\u weight])