2017-06-07 19 views
1

k-NNメソッドを使用してデータセットをトレーニングし、サンプルデータセットの予測を行うことに興味があります。私はテーブル(tb)を持って、それぞれサイズ1X2000の2つの変数を含んでいます。今matlabを使った予測にK-NNを使った回帰?

   x = tb(1501:2000,1); 
      y= tb(1501:2000,2);  

は今、私は新しいを予測するためのk-NN方法を使用したい、とサンプルテストが与えられているX = tb(1:1500,1)

 Y = tb(1:1500,2);  % both X and Y are training datasets 

、トレーニングデータセット

、簡略化のために私たちをみようy値はxの値です。

私は以下のようにコードを書かれている:

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

     plot(x,predictedY) 

私は正しい結果を取得していない午前のコードを実行しています。

いくつかのGoogle検索に基づいて、私はこのコードが回帰ではなく分類であることを発見しました。どのようにk-NNを回帰に使うことができるか分かりません。どんな助け?

答えて

0

ClassificationKNN.fitは使用しないでください。将来のリリースでは削除されます。代わりにfitcknnを使用できます。

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

ありがとうございます。しかし、私がこれをするとき。私の予測グラフは、訓練データセットグラフと比べて全く間違っています。私は問題を修正したグラフを添付しました。見て、あなたの考えを教えてください。 –

+0

私はKNNで分類をしたいと思っていましたが、代わりに回帰が必要なようです。私が言うことができる限り、fitcknnは分類だけしかできないので、あなたが望むものではありません。残念ながら、それには回帰バージョンがないようです(https://stackoverflow.com/questions/19807294/knn-regression-in-matlab)。だからあなた自身をコードするか(リンクには大まかな指示がある)、あるいは非線形回帰を使う。 –

関連する問題