2016-03-13 24 views
0

我正在使用relieff算法來調查各種輸入的排序以解決分類問題。我有五個輸入和約500個觀察。 我正在使用MATLAB來解決這個問題。如何在RELIEFF中選擇k的值在MATLAB中的算法

我開始通過使算法2設定k個最近鄰和變化這一切直到450計算這些 排名大相徑庭最初的方式,然後穩定作爲k個最近鄰的尺寸接近150 我附上了五個屬性中的每一個的權重圖(權重較高 - 排名較高)與下面的k個最近鄰居的數量。

我想知道如何選擇k值爲ReliefF算法enter image description here

回答

2

隨着K對重量情節你剛剛回答了你自己的問題。這確實非常聰明。

您的數據集的最佳K值是肘部的位置(大約350)。
這是什麼意思?它基本上意味着考慮到另一個鄰居並沒有給出更好的數據建模。
您可以反對,選擇350或400將導致相同的結果,因爲權重是相等的。正確。然而,總是建議選擇最小的值,因爲就相同的結果(即權重)而言,您正在訓練的模型將具有較小的複雜性(需要考慮的鄰居數量較少)。

這種暴力破解技術通常用於在機器學習算法很多:

    在K-NN
  • 找鄰居
  • 在K均值
  • 的最佳數目找到集羣
  • 的最佳數量
  • 支持向量機中找到最佳的調整參數

等等等等...

我一直在做,你做了同樣的實驗,但與其他數據集,我獲得了以下情節:

enter image description here

,正如你可以看到這個數據集的最佳K爲大約50。

+0

感謝您的快速響應。我的數據集的大小是550,如果k是350,那麼它的大小就會相當。 Matlab說:「如果將K設置爲與X中的觀察值(行)數量相當的值,那麼relieff可能無法找到重要的屬性。 「 –

+0

那麼,對於550我不會稱350「可比」。在550個模式中有200個不同。在你的情況下,它也不會失敗尋找重要的屬性:黃色是最重要的,其他重要性不重要。但是如果你看K = 250和K = 350,他們的行爲幾乎是一樣的,他們只是隨着K的增加而縮小。 – Alessiox

+0

您可以對K> = 250執行良好的分析。黃總是第一名,藍色總是第二名,橙色總是第三名。在K = 250時,紫色高於綠色,但在大約K = 270時,綠色高於紫色並永遠保持這種狀態。但是,您應該考慮一件重要的事情:y軸。這樣的權重差異確實很小,他們對你的情況忽略不計?如果是這樣,在什麼情況下(即閾值)這種差異可能被認爲可以忽略不計?那實際上取決於你,這取決於你的實際問題。 – Alessiox