2

我從10個類中提取圖像特徵,每個圖像包含1000個圖像。由於我可以提取50個特徵,因此我正在考慮在此處找到最佳特徵組合。培訓,驗證和測試集劃分如下:kNN:培訓,測試和驗證

Training set = 70% 
Validation set = 15% 
Test set = 15% 

我上設置找到最好的特徵組合,最後使用測試設置來檢查的整體精度驗證使用着特徵選擇。有人能告訴我我是否做得對嗎?

回答

8

因此kNN例外用於構建/測試監督機器學習模型的一般工作流程。特別地,通過kNN創建的模型只是可用的標記數據,放置在某個度量空間中。

換句話說,對於kNN,沒有訓練步驟,因爲沒有模型來構建。模板匹配&插值是kNN中正在進行的所有操作。

也不存在一個驗證步驟。驗證措施根據迭代次數(訓練進度)對訓練數據建模準確性。這種經驗曲線的向上移動證明過度擬合,並指出培訓應該停止的點。換句話說,因爲沒有建立模型,所以沒有什麼可以驗證的。

但你仍然可以測試 - 即,使用其中的目標(標籤或分)從模型中隱藏數據評估預測的質量。

但即使測試是k近鄰與其他監督的機器學習技術稍有不同。特別是,對於kNN,預測質量當然取決於數據量,或者更確切地說密度(每單位體積的點數) - 也就是說,如果要通過平均值2-3來預測未知值點最接近它,那麼它有幫助,如果你有點接近你想預測的點。因此,將測試集的大小保持爲小型,或更好地使用k-fold交叉驗證或一次性交叉驗證,這兩者都會爲您提供更徹底的模型測試,但不會降低測試集的成本您的kNN鄰居人口的大小。

+2

但因爲我需要找到最好的特徵組合不應該我執行的驗證集此搜索,最後測試選定的最佳特性與試驗測試 – klijo

+2

,如果我上運行測試集的最佳特徵選擇算法然後得到最終的準確性,這不會使特徵組合偏向測試集? – klijo

+1

@klijo規範kNN描述不包含特徵選擇算法或任何類型的算法。除此之外,我不明白你的任何評論中的問題,但我確定他們與kNN無關。 – doug

相關問題