如何在MATLAB中选择RELIEFF算法中的k值

时间:2016-03-13 10:19:29

标签: algorithm matlab machine-learning

我使用relieff算法来研究解决分类问题的各种输入的排名。我有五个输入和大约500个观测值。 我使用MATLAB来解决这个问题。

我首先将算法的k个最近邻居设置为2并将其一直变化到450.为这些计算排名 最初变化很大,然后随着k个最近邻居的大小接近150而稳定。 我附上了五个属性中每一个的权重(更高的权重 - 更高的排名)与下面的k个最近邻居的数量的图表。

我想知道如何为ReliefF算法enter image description here选择给定的k值?

1 个答案:

答案 0 :(得分:3)

使用 K vs Weights 图表,您刚刚回答了自己的问题。这确实非常聪明。

数据集的最佳K值是肘部的位置(约350) 这是什么意思?它基本上意味着考虑到另一个邻居并没有给出更好的数据建模 您可以反对选择350或400将导致相同的结果,因为权重相等。正确。但是,始终建议选择最小值,因为相对于相同的结果(即权重),您正在训练的模型将具有较小的复杂性(需要考虑的邻居数量较少)。

这种强制技术通常用于机器学习中的许多算法:

  • 在K-NN中找到最佳邻居数
  • 在K-Means中找到最佳簇数
  • 在SVM中找到最佳调整参数

依旧等等......

我一直在做同样的实验,但是使用另一个数据集,我获得了以下情节:

enter image description here

正如您在此数据集中所看到的,最佳K大约为50。