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)。所以要么自己编码(链接有粗略的说明),要么使用非线性回归。 –