1
我有興趣使用k-NN
方法來訓練我的數據集,然後對樣本數據集進行預測。我有表(tb
)每個包含兩個大小爲1X2000的變量。讓我們爲簡單起見,迴歸使用K-NN進行預測使用matlab?
訓練數據集,X = tb(1:1500,1)
Y = tb(1:1500,2); % both X and Y are training datasets
現在樣品測試給出的,
x = tb(1501:2000,1);
y= tb(1501:2000,2);
現在我想用k-NN
方法來預測新y
給定的值爲x
的值。
我寫的代碼如下:
mdl = fitcknn(X,Y,'NumNeighbors',150,'Standardize',1);
predictedY = predict(mdl,x);
plot(x,predictedY)
當我運行的代碼我沒有得到正確的結果。
基於一些谷歌搜索,我發現它這個代碼不是迴歸,而是分類。我不知道k-NN如何用於迴歸。任何幫助?
謝謝你。但是當我這樣做。與訓練數據集圖相比,我的預測圖完全錯誤。我附上有修改的圖表,請看看並告訴我你的想法? –
我以爲你想用KNN做一個分類,但看起來你想要一個迴歸。據我所知,fitcknn只能做分類,因此不是你想要的。不幸的是,它似乎也沒有它的迴歸版本(https://stackoverflow.com/questions/19807294/knn-regression-in-matlab)。所以要麼自己編碼(鏈接有粗略的說明),要麼使用非線性迴歸。 –