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