[R-es] predict en objetos creados por kknn

Jose Luis Cañadas Reche canadasreche en gmail.com
Mar Oct 28 18:51:49 CET 2014


Hola Raúl.

No he visto tu código en profundidad, pero puede ser que en el último 
gráfico estás llamando a g, que es ggplot creado para los datos de 
entrenamiento y le pintes la predicción de los datos de test. Deberías 
pintar los datos de test y su predicción. Quizá esto te valga.

g2 <- ggplot(test,aes(test$x,test$y)) +
     geom_point()

g2 + geom_point(aes(colour = predict(knn.Cuadrado,test.Cuadrado)))+
     ggtitle("Un poco menos mojón ")


El 28/10/14 a las 18:06, "Raúl Vaquerizo" escribió:
> #Datos
> #Se trata de una nube de puntos en el plano
> long = 10000
> x <- runif(long,1,100)
> y <- runif(long,1,100)
> datos <- data.frame(x,y)
>
> #Creamos un conjunto de datos de entrenamiento y otro de test
> indices <- sample(1:long,long/2)
> entrenamiento <- datos[indices,]
> test <- datos[-indices,]
>
>
> #Preparamos un gráfico de dispersión
> library(ggplot2)
> g <- ggplot(entrenamiento,aes(entrenamiento$x,entrenamiento$y)) +
> geom_point()
>
> #g
>
> #Vamos a crear las clases que nos un cuadrado
> C <- ifelse(entrenamiento$x>20 & entrenamiento$x<80 & entrenamiento$y>20
> &entrenamiento$y<80,1,0)
>
> #Pintamos en nuestra nube de puntos ese cuadrado
> g + geom_point(aes(colour = C))+ opts(title="PINTAMOS UN CUADRADO")
>
> #Comenzamos a trabajar con knn
> #La librería será kknn
> library(kknn)
>
> #Voy a buscar el mejor modelo k maximo 10 y unas funciones kernel
> entreno.Cuadrado<-cbind(C,entrenamiento)
> aprox.Cuadrado <- train.kknn(C ~ x + y, data = entreno.Cuadrado,
> 	kmax = 10, kernel = c("rectangular", "triangular", "epanechnikov",
> 	"gaussian", "rank"))
> plot(aprox.Cuadrado)
>
> #Triangular con k=4 es el que mejor pinta tiene si pintáis los
> fitted.values queda de lujo
> test.Cuadrado<-cbind(C,test)
> knn.Cuadrado <-
> kknn(C~x+y,entreno.Cuadrado,test.Cuadrado,k=4,kernel="triangular")
>
> g + geom_point(aes(colour = predict(knn.Cuadrado,test.Cuadrado)))+
> opts(title="PINTAMOS UN MOJÓN")



Más información sobre la lista de distribución R-help-es