检索最近的树到输入树与k最近邻居?

时间:2013-08-14 18:47:46

标签: search data-structures machine-learning nearest-neighbor knn

我想使用K最近邻方法从数据集中检索最接近树的输入树。树中的节点具有值,但每棵树中的分支没有标签。

例如:

树1:(S(V c)     (N(P y))     (V(V o)       (N(D t)(N d))))

树2 :( S.     (V(V p)       (P(R o))       (N(D t)(N d))))

我想使用k最近邻居来解决这个问题。您是否有任何想法将此方法用于此问题?

1 个答案:

答案 0 :(得分:2)

您必须为树应用KNN算法定义距离度量。树可以使用许多可能的矩阵,其中一个最受欢迎的选择是树编辑距离How do I calculate tree edit distance?

KNN 不是搜索算法。它不用于查找最近的对象,而是 - 将对象分类到预定义标签之一。它只搜索给定点X的K个最近邻居,并返回具有大多数邻居的标签。

为了找到最近的树,假设您已经定义了TED(树编辑距离),只需遍历tree中的所有trees并选择最小化TED(tree,X)的树{} {1}}。

有关树编辑距离的非常好的资源也位于此处: http://www.inf.unibz.it/dis/projects/tree-edit-distance/tree-edit-distance.php