Ciencia De Datos

Todos los errores son iguales, pero algunos son más iguales que otros

Por eso, en la práctica, el RMSE y similares son irrelevantes. Aunque eso, desgraciadamente, no quiera decir que no sean utilizados.

Pero en muchas ocasiones no es el error medio la medida importante. A menudo uno quiere detectar outliers: una variable de interés tiene un comportamiento normal la mayor parte del tiempo pero en ocasiones, en raras ocasiones, cuando supera un umbral, produce catástrofes. Dejarse guiar por el RMSE (o similares) produciría una peligrosa sensación de seguridad: detectaría la normalidad; la anormalidad, lo interesante, le resultaría inasequible.

Charla de José A. Guerrero

El 9 de julio de 2015, José A. Guerrero dará una charla con título “Machine learning como nuevo deporte intelectual” y programa:

  • Origen y situación actual de las competiciones de Análisis de Datos

  • Análisis predictivo de datos de Alta Competición vs Proyectos en el Mundo Real:

    • Objetivos
    • Estrategias
    • Herramientas
  • Tips and tricks:

    • ¿Qué haría en una competición de datos que nunca haría en un proyecto real?
    • ¿Qué haría en un proyecto real que nunca haría en una competición de datos?

De hecho, el contenido de la última sección es un tema del que he hablado ya sobradamente pero sobre el que me gustaría conocer la opinión del ponente.

Modelos mixtos por doquier

Los códigos postales, por ejemplo, son un problema a la hora de crear modelos predictivos: son variables categóricas con demasiados niveles. Así, por ejemplo, los bosques aleatorios de R solo admiten variables categóricas con no más de 32 niveles.

Hay trucos de todo tipo para mitigar el problema. Hace un año, Jorge Ayuso me puso sobre la pista de uno de los que tiene más recorrido. Consiste en [su versión más simplificada en]:

Como leáis esta entrada aprenderéis tanto como lo que desaprenderéis

En serio, aviso: aprenderéis tanto como desaprenderéis si leéis esto.

Por si no os habéis atrevido, os lo resumo. El autor de la cosa ha construido configuraciones de puntos tales como

target_00

y ha creado conjuntos de datos de distinto número de registros con esa distribución de colores. Luego ha puesto varios modelos de clasificación habituales a tratar aprenderla. Y ha obtenido patrones tales como

SVMRBF-10_hyp

Uno puede entretenerse mirando qué modelos ajustan mejor y peor en función del tipo original de configuración, del modelo, del tamaño de la muestra, etc. y, de esa manera, ir construyendo subrepticiamente unas preferencias subconscientes sobre el conjunto de técnicas existentes para solucionar problemas de clasificación binaria.

La diapositiva perdida, versión algo más extendida

Tuve que saltarme una diapositiva en el DataBeers de Madrid del pasado jueves.

(A propósito, aquí están las 1+20 diapositivas.)

La decimonona, de la que trata la entrada, viene a hablar de lo siguiente. Tenemos una base de datos con sujetos (ids) que hacen cosas en determinados momentos. No es inhabitual calcular la frecuencia de esos sujetos así:

select id, count(*) as freq
from mytabla
where fecha between current_date - 7 and current_date
group by id
;

Esa variable se utiliza frecuentemente ya sea como descriptor de los sujetos o como alimento de otros modelos.

Modelos, mascotas y rebaños en el DataBeers de Madrid

El próximo día 18 de septiembre hablaré de modelos, mascotas y rebaños en el DataBeers de Madrid.

Los detalles (incluido el enlace para registrarse) están disponibles aquí.

Haréis mal en faltar porque, con la excepción de un servidor, el resto del cartel es de primera:

Incrementalidad via particionamiento recursivo basado en modelos

Planteas un modelo tal como resp ~ treat y no encuentras diferencia significativa. O incluso puede ser negativa. Globalmente.

La pregunta es, con el permiso del Sr. Simpson (o tal vez inspirados por él), ¿existirá alguna región del espacio en la que el tratamiento tiene un efecto beneficioso? Puede que sí. Y de haberla, ¿cómo identificarla?

De eso hablo hoy aquí. E incluyo una protorespuesta.

Primero, genero datos:

n  <- 20000
v1 <- sample(0:1, n, replace = T)
v2 <- sample(0:1, n, replace = T)
v3 <- sample(0:1, n, replace = T)

treat <- sample(0:1, n, replace = T)

y <- v1 + treat * v1 * v2
y <- exp(y) / (1 + exp(y))
y <- sapply(y, function(x) rbinom(1,1,x))

dat <- data.frame(
    y = y,
    treat = factor(treat), v1 = v1,
    v2 = v2, v3 = v3)

Como puede apreciarse, solo las variables v1 y v2 (y no v3) interaccionan con el tratamiento: solo en la región donde v1 = v1 = 1 el efecto del tratamiento es positivo.

V Jornadas de la Enseñanza y Aprendizaje de la Estadística y la Investigación Operativa

Los días 16 y 17 de junio de 2014, en Madrid, tendrán lugar las V Jornadas de la Enseñanza y Aprendizaje de la Estadística y la Investigación Operativa. Las organiza el Grupo de Enseñanza y Aprendizaje de la Estadística y la Investigación Operativa (GENAEIO) de la SEIO.

¿Por qué lo menciono? Pues porque estoy en el programa e igual alguien quiere acercarse a verme hablar de big data y similares. Aún no he cerrado los temas que quiero tratar en esas horas pero algunas ideas que me rondan la cabeza son:

Componentes principales para quienes cursaron álgebra de primero con aprovechamiento

Quienes cursaron su álgebra de primero con aprovechamiento —los que no, pueden ponerse al día en 3:47 minutos— aprendieron que una matriz $latex X$ puede descomponerse de la forma

$$ \mathbf{X} = \mathbf{UDV}$$

donde $latex \mathbf{U}$ y $latex \mathbf{V}$ son matrices ortonormales y $latex \mathbf{D}$ es diagonal. Si los elementos de la diagonal de $latex \mathbf{D}$ son $latex d_1>d_2>\dots$ y los últimos son pequeños, entonces

$$ \mathbf{X} \approx \mathbf{UD_0V}$$

donde $latex \mathbf{D_0}$ es la matriz en la que se han sustituido los $latex d_i$ despreciables por ceros. Si $latex \mathbf{D_0}$ tiene m elementos diagonales no nulos, solo hay m columnas de $latex \mathbf{U}$ y m filas de $latex \mathbf{V}$ que juegan un papel efectivo en la proximación anterior. Por lo tanto se puede reescribir de la forma

ykmeans, ¿broma, ironía o triste realidad?

Estar suscrito a las actualizaciones de CRAN le permite a uno estar al tanto de las novedades de R de otra manera. De vez en cuando uno encuentra pequeños paquetes que le solucionan un problema puntual. Mucho más frecuentemente, la verdad, uno se topa con aplicaciones muy específicas en áreas que le resultan remotas.

Pero uno no espera nunca tropiezar con paquetes que no sabe si clasificar como una broma, una ironía bromas o como algo mucho peor: la constatación de una triste realidad. Es el caso de ykmeans.