Representación de redes neuronales con R

En la última entrada realizamos un modelo de regresión con redes neuronales. Hoy quería mostraros cómo representar gráficamente la red neuronal creada en esa entrada. A la modelización con redes neuronales siempre se le ha achacado un comportamiento de “caja negra”: nosotros pasamos unas variables de entrada por una capa oculta y obtenemos una salida. No hay parámetros ni inferencia sobre los mismos; no sabemos lo que hace la red por dentro. En el caso concreto de R y continuando con la entrada anterior, si hacemos summary(bestnn): ...

9 de septiembre de 2014 · rvaquerizo

Regresión con redes neuronales en R

La última técnica que me estoy estudiando este verano es la regresión con redes neuronales. El ejemplo que os voy a poner es completamente análogo a este: http://heuristically.wordpress.com/2011/11/17/using-neural-network-for-regression/. Vamos a trabajar con el paquete nnet; si dispusiera de tiempo, replicaría este ejemplo en otra entrada con neuralnet. Para realizar el ejemplo tenemos el conjunto de datos BostonHousing, que contiene el censo de 1970 de 506 hogares de Boston. Empecemos a trabajar con la consola de RStudio: ...

7 de septiembre de 2014 · rvaquerizo

Analisis cluster con SAS. La importancia de las semillas en las k-medias

El PROC FASTCLUS en SAS nos permite realizar análisis de agrupamiento dirigido mediante el algoritmo de las k-medias. Este algoritmo tiene algunos problemas, pero nos puede servir para agrupar de forma multivariante observaciones. Es rápido, sencillo de explicar y, con algunas lagunas, no funciona mal. Como aproximación a nuestras segmentaciones puede ser muy práctico. Hoy se va a utilizar para identificar a los clientes más complicados de segmentar, a aquellas observaciones que quedan en las zonas grises (http://www.datanalytics.com/blog/2011/08/03/clustering-iii-sobresimplificacion/). ...

15 de abril de 2013 · rvaquerizo

Trucos SAS. Medir la importancia de las variables en nuestro modelo de regresión logística

Hoy quería proponeros una forma poco ortodoxa de medir la importancia de las variables in un modelo de regresión logística con SAS. La cuestión es: dado un modelo de regresión logística, crear un ranking con las variables más importantes dentro del modelo. Para esta tarea recomiendo el uso de Random Forest, pero puede ser imposible disponer de un software que realice este tipo de modelos. Imaginemos un caso concreto: disponemos de SAS STAT y nos da reparo trabajar con R. Para este caso podemos emplear el siguiente truco. El AIC (Criterio de Información de Akaike) es un estadístico que relaciona el cociente de la verosimilitud con el número de parámetros del modelo que ajustamos. Cuanto menor sea este cociente, mejor será nuestro modelo. Si eliminamos una variable del modelo, ¿cuánto empeora este modelo? Esa será la filosofía que emplearemos para analizar la importancia de las variables presentes en nuestro modelo. In la línea habitual, hacemos un ejemplo para que podáis copiar y pegar en vuestro SAS: ...

27 de febrero de 2013 · rvaquerizo

Solventamos los peligros del análisis cluster con SVM

Retomamos un asunto tratado en días anteriores: los peligros de realizar un análisis de agrupamiento basado en las distancias entre observaciones. ¿Cómo podemos evitar este problema? Empleando máquinas de vectores de soporte, traducción de Support Vector Machines (SVM). Esta técnica de clasificación, de la que ya hablamos en otra entrada, nos permite separar observaciones con base en la creación de hiperplanos que las separan. Una función kernel será la que nos permita crear estos hiperplanos; en el caso que nos ocupa, tenemos solo dos variables y necesitamos crear líneas de separación entre observaciones. En la red tenéis una gran cantidad de artículos sobre estas técnicas. ...

1 de agosto de 2012 · rvaquerizo

Un peligro del análisis cluster

Quería plantearos un ejemplo de análisis cluster para observar el peligro que tiene agrupar observaciones in base a grupos homogéneos creados con distancias multivariantes. Para ilustrar el ejemplo, trabajamos con R; creamos grupos in base a dos variables, lo que nos facilita los análisis gráficos. Simulamos el conjunto de datos con el que trabajamos: # GRUPO 1 x <- runif(500, 70, 90) y <- runif(500, 70, 90) grupo1 <- data.frame(cbind(x, y)) grupo1$grupo <- 1 # GRUPO 2 x <- runif(1000, 10, 40) y <- runif(1000, 10, 40) grupo2 <- data.frame(cbind(x, y)) grupo2$grupo <- 2 # GRUPO 3 x <- runif(3000, 0, 100) y <- runif(3000, 0, 100) grupo3.1 <- data.frame(cbind(x, y)) grupo3.1$separacion <- (x + y) grupo3.1 <- subset(grupo3.1, separacion >= 80 & separacion <= 140, select = -separacion) grupo3.1 <- subset(grupo3.1, y > 0) grupo3.1$grupo <- 3 # UNIMOS TODOS LOS GRUPOS total <- rbind(grupo1, grupo2, grupo3.1) plot(total$x, total$y, col = c(1, 2, 3)[total$grupo]) Los grupos parecen claros: ...

16 de julio de 2012 · rvaquerizo

Data mining, Business intelligence (y/o la nube)

Hace tiempo que quería publicar una entrada en respuesta a estos comentarios escritos en el blog. Se trata de analizar las búsquedas en Google a través de Google Trends de los términos: Business Intelligence, Data Mining, Cloud Computing y NOSQL. El resultado es más que interesante: En rojo tenemos Data Mining, en azul tenemos Business Intelligence, en naranja Cloud Computing y en verde NOSQL. A la vista de este gráfico cabe preguntarse: ¿es R en la nube el futuro de la profesión?

3 de abril de 2012 · rvaquerizo

Sobremuestreo y pesos a las observaciones. Ahora con R

De nuevo volvemos a la entrada de ayer para replicar el código SAS utilizado en R. Se trata de realizar tres modelos de regresión logística con R para estudiar cómo influyen en los parámetros el uso de un conjunto de datos con sobremuestreo o el uso de un conjunto de datos donde asignamos pesos a las observaciones. El programa es sencillo pero tiene un uso interesante de la librería sampling. Aquí tenéis el código: ...

27 de marzo de 2012 · rvaquerizo

En la regresión logística ¿el sobremuestreo es lo mismo que asignar pesos a las observaciones?

Hoy vamos a volver sobre el tema del sobremuestreo. Respondemos a un lector, Roberto, que hace mucho tiempo planteó una duda al respecto. La duda se puede resumir: en un modelo logístico, ¿equivale entrenar un modelo con las observaciones sobremuestreadas a entrenar el modelo poniendo un peso a cada observación? Esta cuestión nunca me la había planteado. Siempre había realizado un sobremuestreo de las observaciones adecuando la población de casos negativos a la población de casos positivos. Si estás habituado a trabajar con Enterprise Miner de SAS, es habitual asignar pesos a las observaciones para realizar el proceso de sobremuestreo. ¿Obtendremos distintos resultados? ...

26 de marzo de 2012 · rvaquerizo

Da comienzo la lectura de “The Elements of Statistical Learning”

Interesante iniciativa de Juanjo Gibaja y Carlos Gil Bellosta consistente en leer el libro “The Elements of Statistical Learning”. La idea es crear un grupo de trabajo que lea de forma coordinada el libro; pero, además, van a implementar en R los ejercicios y ejemplos. Desde esta bitácora no vamos a colaborar en la lectura, pero sí vamos a colaborar en la divulgación de resultados. Seguiremos muy de cerca este proyecto.

10 de enero de 2012 · rvaquerizo