有人可以帮忙修改下面的工作示例,以根据共享数据创建集群吗?
该示例使用Scikit-Learn的Mean Shift聚类来识别农艺设施中相似/并置的植物物种的斑块。
之前曾问过关于在此类问题中除了使用数字值之外还使用分类值的类似问题,但我认为此示例有所不同,原因如下:该问题中的非数字值不能简单地用一值和零值。例如,我们不能一键编码'Aristolochia macrophylla'和'Aristolochia durior'这样的值,因为名称具有这种相似性的物种需要聚类以及根据X和Y值指定的地理位置,根据他们的家庭在一起。创建集群时,名称的相似性与位置同样重要。
我尝试了两件事:为种类名称中的字母分配任意数字值,以显示具有相似拼写的名称在数字行上会更靠近。我将对这些值应用自动缩放,并使用X和Y坐标插入脚本。这是行不通的,因为不同的名称在数字上最终非常相似。
我尝试结合分类值的另一种尝试是通过使用Levenstein距离。但是,距离的输出仅基于比较两个值。而且,如果要输出显示每个字符串到所有其他字符串的距离,那么如何将该结果实现为Meanshift算法的输入?
无论如何,这是现在仅使用数字值的数据和工作脚本。 我也非常感谢有关如何使用分类值的相似性对数据进行聚类的任何示例。
谢谢
MySearchView(haystack.generic_views.SearchView):
form_class = MySearchForm