我正在使用 kNN 分析我的数据集。我尝试了各种距离函数,但曼哈顿似乎在各种 k 值的最低 RMSE 方面表现更好。
我读过一些关于曼哈顿的文章以及它与欧几里得的区别,但我似乎无法回答这个问题“如果曼哈顿在特定数据集上表现更好,我们是否会发现一些关于数据集属性的信息,而我们不会否则知道”或换句话说“对于特定类型的数据集,曼哈顿通常是一个很好的距离函数”?
在我的示例中,我使用葡萄酒质量数据集,查看葡萄酒的各种化学特性并尝试预测它们的评级(3 到 9 之间)
我正在使用 kNN 分析我的数据集。我尝试了各种距离函数,但曼哈顿似乎在各种 k 值的最低 RMSE 方面表现更好。
我读过一些关于曼哈顿的文章以及它与欧几里得的区别,但我似乎无法回答这个问题“如果曼哈顿在特定数据集上表现更好,我们是否会发现一些关于数据集属性的信息,而我们不会否则知道”或换句话说“对于特定类型的数据集,曼哈顿通常是一个很好的距离函数”?
在我的示例中,我使用葡萄酒质量数据集,查看葡萄酒的各种化学特性并尝试预测它们的评级(3 到 9 之间)
还可以使用搜索词 l1 norm、l1 distance、absolute deviance 等,所有这些都与曼哈顿距离相同。
l1-范数(曼哈顿距离)的性质很大程度上可以从它的形状推导出来(即它是V形而不是像l2-范数(欧几里得距离)的抛物线那样的U形。l1-范数可以说是与 l2 范数相比,对异常值不太敏感,对小规模行为更敏感。
即它会倾向于“将事物推向零”,专注于小规模行为,因为它不会像抛物线那样在零附近变平。它对大距离也不太敏感,因为斜率不会随着与原点的距离而增加。这可能会导致模型非常/精确地拟合部分数据,但会忽略一些不适合其余数据的维度或案例。
我怀疑这些属性解释了它在您所看到的数据集上的性能。即在这个分类问题中,最好在几个维度上进行精确/出色的匹配,而错过一些其他维度,然后在所有维度上做得相当好。
这些原因也解释了为什么 l1 范数经常用于稳健回归(它将忽略异常值)或作为 lasso 算法中的惩罚(它将一些系数驱动为零,从而产生更简单的模型)。