【发布时间】:2011-05-22 14:17:54
【问题描述】:
人们总是吹捧 KD 树非常适合最近邻搜索。但是,如果您的数据集都是离散值,没有真正的距离度量,它们仍然有效吗?
例如,如果您的属性类似于[black, blue, red], [bread, milk, cheese], [right, left, straight, curved],则没有连续性,测量距离的唯一方法是汉明距离(我们检查有多少与测试示例等效)。 KD树在这些情况下仍然有效吗?怎么会?
【问题讨论】:
-
一维模拟当然似乎仍然有效(我们可以分配一个枚举来帮助构建树),但关键是不必检查树中的所有叶子来找到匹配项.. ??
-
我冒昧地猜测,如果您使用的数据结构(例如 KD-tree)基于使用不适合可测量性的数据制定一些离散度量的能力,那么您'使用了错误的数据结构。也就是说,我会在理论计算机科学 stackexchange 上问这个问题。您可能会得到更好/更深入的答案。
-
感谢您的回复。我实际上只是想自学一些机器学习方法,现在正在研究最近的邻居。 KD 树似乎是该算法的标准数据结构。只是不确定它如何适应不同的数据集
-
我也会考虑更多地考虑这个指标。我不知道您实际问题中的所有属性,但是如果颜色具有诸如“黑色”、“绿色”和“黄绿色”之类的值,我不会认为黑色和绿色之间的距离相同作为绿色和黄绿色之间的距离。
-
无论如何,
d(x, y) = \delta_{x,y}适用于离散值,并满足数学意义上的度量条件,所以我想它应该可以工作[?]
标签: data-structures machine-learning nearest-neighbor kdtree