关于一些数据挖掘算法的问题

Kev*_*vin 3 artificial-intelligence machine-learning data-mining

最近我研究了k-最近邻和决策树,我很好奇两者之间的差异,即对于像分离目标函数的任务"如果x2> x1则返回1,否则返回0",然后选择最近邻这里很好,因为决策树将会进行太多的分裂.所以我只是考虑在什么样的情况下,选择决策树比k最近的邻居更合适?

另一个问题是与K最近的邻居有关,我明白当K = 1时,它只是一个基线分类(将实例分类到它的邻居类').任何人都可以给我一个关于什么样的想法对于分类任务,3个最近的邻居肯定会超过最近的1个近距离分类器吗?

提前致谢!

Sto*_*ken 10

k-NN与决策树

我总是发现图片是获得算法直觉的最佳方式.你建议的目标函数会产生一个像这样的数据集:

替代文字

分离数据的函数是x1 - x2 = 0.问题是通常,决策树在节点上只有一个变量的函数,因此节点处的决策函数是轴对齐的.我想象一下在这个数据集上学到的决策树会做这样的事情:

替代文字

希望您明白这一点,显然您可以通过在决策树中使用足够的节点来实现最佳决策边界,但这意味着您将面临过度拟合数据的风险.

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

顺便说一下,这类数据的最佳分类器是线性分类器,也许是逻辑回归,可以找到最优决策边界

k在k-NN中的作用

我在k-最近邻居中给出的k的最佳描述是k的高值使决策边界平滑.也不是较高的k总是比较低的k更好的情况.

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

替代文字

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

替代文字

是否使用高k更好取决于数据集上的噪声级别.那些小岛真的很重要,我们学到的太简单的模型不能很好地拟合数据,或者它们只是噪音而且我们是否避免过度拟合?

实用的观点

遗憾的是,考虑到一些大型,复杂,真实的数据集,您可能没有很好的基础来决定哪种算法最有效(除非您使用相同或类似数据的先前工作).大多数人所做的是将数据细分为训练,参数调整和测试集,然后运行尽可能多的算法.您可能还会发现您的特定情况决定了算法必须具有的一些属性(快速,增量,概率等)