Artificial intelligence 关于数据挖掘算法的几个问题

Artificial intelligence 关于数据挖掘算法的几个问题,artificial-intelligence,machine-learning,data-mining,Artificial Intelligence,Machine Learning,Data Mining,最近我研究了k-最近邻和决策树,我很好奇这两者之间的区别,也就是说,对于像分离目标函数“如果x2>x1返回1,否则返回0”这样的任务,选择最近邻会很好,因为决策树会涉及太多的拆分。 所以我只是在考虑在什么样的情况下,选择一个决策树比k-最近邻更合适 另一个问题是关于K-最近邻,我知道当K=1时,它只是一个基线分类(将实例分类为其近邻集的类)。有人能告诉我什么样的分类任务,3-最近邻肯定会超过1-最近邻的neightbour分类器吗 提前谢谢 这是对第二个问题的回答 (我假设“绝对跑赢”是指总是跑

最近我研究了k-最近邻和决策树,我很好奇这两者之间的区别,也就是说,对于像分离目标函数“如果x2>x1返回1,否则返回0”这样的任务,选择最近邻会很好,因为决策树会涉及太多的拆分。 所以我只是在考虑在什么样的情况下,选择一个决策树比k-最近邻更合适

另一个问题是关于K-最近邻,我知道当K=1时,它只是一个基线分类(将实例分类为其近邻集的类)。有人能告诉我什么样的分类任务,3-最近邻肯定会超过1-最近邻的neightbour分类器吗


提前谢谢

这是对第二个问题的回答

(我假设“绝对跑赢”是指总是跑赢。)

我不确定这是否可能——因为,给定一个数据集和一个kNN算法,对于k=3(与k=1相比)预测更好的每个实例,通过改变模型的配置方式或改变数据描述(特别是解决方案空间中的数据密度),很容易翻转结果

这里有一个简单的例子,尽管kNN可能是最简单的机器学习算法,但除了计算距离矩阵,然后计算最小距离之外,还有一些关键的配置细节。其中一个配置参数是加权——即每个相邻点对加权预测值的贡献。一些常用的加权函数是高斯函数和逆函数。例如,一个常见的加权函数是“减法函数”,对于每个邻居,只要距离大于常数,就从常数中减去距离。虽然此函数很好地避免了对非常接近未知点(您试图预测其值的点)的数据点进行过加权,但当点与未知点的距离接近所选常量的值时,其权重接近于零。换句话说,使用k=3的预测可能比使用该函数的k=1好得多,但如果三个相邻点中的两个距离足够远,以至于它们的权重接近于零,则它们也可能非常接近

或者可能是数据。假设基于我刚才提到的原因,来自k=3模型的预测给出了与k=1相同的预测。现在假设数据集被放大,因此有更大的数据密度,这反过来意味着三个相邻点比以前更有可能对预测值做出近似相等的贡献

当然,这同样适用于kNN算法中的其他主要配置参数——例如,距离度量、维度缩放、概率分布等


顺便提一下,这是个好问题。

k-NN与决策树的比较

我总是发现图片是获得算法直觉的最佳方式。您建议的目标函数将产生一个类似以下的数据集:

其中,用于分离数据的函数为x1-x2=0。问题在于,通常情况下,决策树在节点上只有一个变量的函数,因此节点上的决策函数是轴对齐的。我想象在该数据集上学习的决策树将执行以下操作:

希望您能理解这个想法,显然,您可以通过在决策树中使用足够多的节点来近似最佳决策边界,但这意味着您将面临数据拟合过度的风险

实际上,我说过决策树通常在节点上使用单变量函数,但还有另一种方法,在StackOverflow问题中描述过(我没有回答)

顺便说一下,对于这类数据,最好的分类器是线性分类器,可能是逻辑回归,它可以找到最佳决策边界

k-NN中k的作用

对于k-最近邻中的k,我能给出的最好描述是k的高值平滑了决策边界。这也不是说k值越高越好

为了考虑k-NN,我们需要一个更复杂的数据集。对于k=1,k-NN模型可能会做出如下决策:

如果我们增加k的值,决策将受到更大的点邻域的影响,因此决策边界将变得更平滑。尤其是那些红色和蓝色的小岛会被周围的数据点淹没:

使用高k值是否更好取决于数据集上的噪声级别。这些小岛真的很重要吗?我们学到的模型太简单,与数据不太吻合,还是它们只是噪音,我们避免了过度拟合

一个实用的视角

不幸的是,考虑到一些大的、复杂的、真实的数据集,您可能没有很好的基础来决定哪种算法最有效(除非您借鉴了以前在相同或类似数据上的工作)。大多数人所做的是仔细地将数据分割成训练、参数调整和测试集,然后尽可能多地运行算法。您可能还会发现,您的特定情况决定了算法必须具有的某些属性(快速、增量、概率等)