我已经使用scikit-learn的亲和传播实现聚类了一组实体名称,并且修改了Jaro-Winkler距离作为相似性度量,但是我的聚类仍然太多(即,太多的误报。 )
我在scikit-learn文档中看到,存在一个影响集群数量的'preference'参数,具有以下描述:
首选项:类似数组,形状(n_samples,)或浮点数,可选
每个点的偏好 - 具有较大偏好值的点更有可能被选为样本。样本的数量,即集群的数量,受输入偏好值的影响。如果首选项不作为参数传递,它们将被设置为输入相似度的中位数。[0]
然而,当我开始修改这个值时,我发现一个非常窄的值范围给了我太多的聚类(preference=-11.13
)或太少的聚类(preference=-11.11
)。
是否有某种方法可以确定首选参数的“合理”值应该是多少?为什么我无法获得非极端数量的集群?
类似的问题:
答案 0 :(得分:1)
您可以尝试使用sklearn.model_selection.GridSearchCV
或sklearn.model_selection.RandomizedSearchCV
。
您可以定义一个自定义错误度量,以鼓励超参数搜索生成较小的群集。然后,您可以搜索多个值,以根据验证集找到适合您的数据集的值。
更多信息: http://scikit-learn.org/stable/modules/grid_search.html