2017-06-07 3 views
1

Ich bin daran interessiert zu verwenden k-NN Methode für das Training meiner Datensätze und dann die Vorhersage für die Beispieldatensätze. Ich habe Tabelle (tb) enthält jeweils zwei Variablen der Größe 1X2000. Lassen Sie uns aus Gründen der Einfachheit,Regression mit K-NN für die Vorhersage mit Matlab?

Die Trainingsdatensätze, X = tb(1:1500,1)

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

Nun werden die Probe-Test gegeben wie

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

Jetzt habe ich k-NN Verfahren zur Vorhersage neuer verwenden möchten y Wert für gegeben x Wert.

Ich habe Code geschrieben wie folgt:

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

     plot(x,predictedY) 

Wenn ich den Code leite ich bin nicht korrektes Ergebnis zu bekommen.

Basierend auf einigen Google-Suche, fand ich, dass es diesen Code nicht für die Regression, sondern für die Klassifizierung ist. Ich habe keine Ahnung, wie k-NN für die Regression verwendet werden kann. Irgendeine Hilfe ?

Antwort

0

Sie sollten ClassificationKNN.fit nicht verwenden - es wird in einer zukünftigen Version entfernt werden. Stattdessen können Sie fitcknn verwenden:

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

Vielen Dank dafür. Aber wenn ich das tue. Mein Vorhersagediagramm ist völlig falsch, verglichen mit Trainingsdatensätzen. Ich habe den Graphen mit der Änderung in Frage gestellt, Bitte schauen Sie und sagen Sie mir, was Sie denken? –

+0

Ich ging davon aus, dass Sie eine Klassifikation mit KNN machen wollten, aber es sieht so aus, als wollten Sie stattdessen eine Regression. Soweit ich das beurteilen kann, kann fitcknn nur klassifizieren und ist daher nicht das, was Sie wollen. Leider scheint es auch keine Regressionsversion davon zu geben (https://stackoverflow.com/questions/19807294/knn-regression-in-matlab). Also entweder selbst einen Code schreiben (link hat grobe Anweisungen) oder eine nichtlineare Regression verwenden. –

Verwandte Themen