Variation zu "Wie zeichnet man die Entscheidungsgrenze eines k-nächsten Nachbarn-Klassifikators aus Elementen des statistischen Lernens?"

Dies ist eine Frage im Zusammenhang mithttps: //stats.stackexchange.com/questions/21572/how-to-plot-decision-boundary-of-a-k-nearest-neighbor-classifier-from-elements-

Der Vollständigkeit halber hier das ursprüngliche Beispiel aus diesem Link:

library(ElemStatLearn)
require(class)
x <- mixture.example$x
g <- mixture.example$y
xnew <- mixture.example$xnew
mod15 <- knn(x, xnew, g, k=15, prob=TRUE)
prob <- attr(mod15, "prob")
prob <- ifelse(mod15=="1", prob, 1-prob)
px1 <- mixture.example$px1
px2 <- mixture.example$px2
prob15 <- matrix(prob, length(px1), length(px2))
par(mar=rep(2,4))
contour(px1, px2, prob15, levels=0.5, labels="", xlab="", ylab="", main=
        "15-nearest neighbour", axes=FALSE)
points(x, col=ifelse(g==1, "coral", "cornflowerblue"))
gd <- expand.grid(x=px1, y=px2)
points(gd, pch=".", cex=1.2, col=ifelse(prob15>0.5, "coral", "cornflowerblue"))
box()

Ich habe mit diesem Beispiel gespielt und möchte versuchen, es mit drei Klassen zum Laufen zu bringen. Ich kann einige Werte von g mit etwas wie @ ände

g[8:16] <- 2

nur so tun, als gäbe es Proben aus einer dritten Klasse. Ich kann die Handlung jedoch nicht zum Laufen bringen. Ich denke, ich muss die Zeilen ändern, die sich mit dem Stimmenanteil für die Gewinnklasse befassen:

prob <- attr(mod15, "prob")
prob <- ifelse(mod15=="1", prob, 1-prob)

und auch die Ebenen auf der Kontur:

contour(px1, px2, prob15, levels=0.5, labels="", xlab="", ylab="", main=
"15-nearest neighbour", axes=FALSE)

Ich bin mir auch nicht sicher, ob die Kontur das richtige Werkzeug dafür ist. Eine Alternative, die funktioniert, besteht darin, eine Datenmatrix zu erstellen, die die von mir interessierte Region abdeckt, jeden Punkt dieser Matrix zu klassifizieren und diejenigen mit einem großen Marker und verschiedenen Farben zu zeichnen, ähnlich wie bei den Punkten (gd .. .) bisschen

Der endgültige Zweck besteht darin, verschiedene Entscheidungsgrenzen anzeigen zu können, die von verschiedenen Klassifikatoren generiert werden. Kann mich jemand in die richtige Richtung weisen?

danke Rafael

Antworten auf die Frage(2)

Ihre Antwort auf die Frage