【问题标题】:Regression using K-NN for prediction using matlab?使用K-NN回归使用matlab进行预测?
【发布时间】:2017-11-08 15:51:35
【问题描述】:

我有兴趣使用k-NN 方法来训练我的数据集,然后对样本数据集进行预测。我有一个表(tb),每个表都包含两个大小为 1X2000 的变量。让我们为简单起见,

训练数据集,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 方法来预测给定x 值的新y 值。

我写的代码如下:

 mdl = fitcknn(X,Y,'NumNeighbors',150,'Standardize',1);
      predictedY = predict(mdl,x);

      plot(x,predictedY)

当我运行代码时,我没有得到正确的结果。

根据一些谷歌搜索,我发现这段代码不是用于回归而是用于分类。我不知道如何将 k-NN 用于回归。有什么帮助吗?

【问题讨论】:

    标签: matlab machine-learning knn


    【解决方案1】:

    您不应使用ClassificationKNN.fit - 它将在未来的版本中删除。相反,您可以使用fitcknn:

    model = fitcknn(X,Y,'NumNeighbors',150);
    

    【讨论】:

    • 谢谢你。但是当我这样做时。与训练数据集图相比,我的预测图完全错误。我附上了有问题的修改图表,请看看并告诉我你的想法?
    • 我假设您想使用 KNN 进行分类,但看起来您想要回归。据我所知, fitcknn 只能进行分类,因此不是您想要的。不幸的是,它似乎也没有回归版本(stackoverflow.com/questions/19807294/knn-regression-in-matlab)。因此,要么自己编写代码(链接有粗略的说明),要么使用一些非线性回归。
    猜你喜欢
    • 2017-11-20
    • 2020-11-15
    • 1970-01-01
    • 2018-11-23
    • 2015-07-11
    • 1970-01-01
    • 2015-06-19
    • 2018-07-16
    • 2017-08-10
    相关资源
    最近更新 更多