亲和力传播偏好参数

时间:2017-04-24 14:08:09

标签: python scikit-learn cluster-analysis unsupervised-learning

我已经使用scikit-learn的亲和传播实现聚类了一组实体名称,并且修改了Jaro-Winkler距离作为相似性度量,但是我的聚类仍然太多(即,太多的误报。 )

我在scikit-learn文档中看到,存在一个影响集群数量的'preference'参数,具有以下描述:

  

首选项:类似数组,形状(n_samples,)或浮点数,可选

     

每个点的偏好 - 具有较大偏好值的点更有可能被选为样本。样本的数量,即集群的数量,受输入偏好值的影响。如果首选项不作为参数传递,它们将被设置为输入相似度的中位数。[0]

然而,当我开始修改这个值时,我发现一个非常窄的值范围给了我太多的聚类(preference=-11.13)或太少的聚类(preference=-11.11)。

是否有某种方法可以确定首选参数的“合理”值应该是多少?为什么我无法获得非极端数量的集群?

类似的问题:

Affinity Propagation - Cluster Imbalance

Affinity Propagation preferences initialization

1 个答案:

答案 0 :(得分:1)

您可以尝试使用sklearn.model_selection.GridSearchCVsklearn.model_selection.RandomizedSearchCV

您可以定义一个自定义错误度量,以鼓励超参数搜索生成较小的群集。然后,您可以搜索多个值,以根据验证集找到适合您的数据集的值。

更多信息: http://scikit-learn.org/stable/modules/grid_search.html