与knn一起学习

时间:2019-01-31 17:14:41

标签: matlab knn ensemble-learning

我正在努力理解为什么matlab函数fitcenseble不允许使用带有装袋的knn学习器来创建集成模型,而只能使用随机子空间方法来创建集成模型,

我想使用套袋,以比较使用不同类型学习者(例如knn和树)的套袋方法。

希望您能帮助我,谢谢您,

玛拉

1 个答案:

答案 0 :(得分:0)

装袋很少与k-nn分类器结合使用,因为决策表面通常过于稳定,并且自举样本中的数据点的任何倍数都不会像许多其他模型一样移动“权重”。释义(1):

任何单个数据点在引导程序样本中至少出现一次的概率约为0.632。考虑一个带有N个引导程序样本的简单2类1-NN分类器。仅当测试数据点在学习集中最接近的邻居不在N个引导程序样本的至少一半中时,它才能更改分类。发生这种情况的概率与以0.632的概率将加权硬币抛掷正面的概率相同,即正面N次,小于正面0.5N的概率。随着N变大,此概率变得越来越小。类似逻辑适用于多类问题和k-NN。

如果要创建自己的装袋模型,则可以使用bootstrp进行。可以通过调用以下命令来调用bootstrp()而不使用函数:

[~, BootIndices] = bootstrap(N, [], Data);

BootSample = Data(BootIndices);
  

(1)布里曼,狮子座。 “预测变量的讨价还价。”机器学习24.2(1996):   123-140。 6.4。