Visión general
- Los hackatones implican la construcción de modelos predictivos en un corto período de tiempo.
- El paso de preprocesamiento de datos ocupa la mayor parte del tiempo compartido al crear un modelo
- Otros pasos incluyen análisis descriptivo, modelado de datos y evaluación del desempeño del modelo.
Introducción
En los últimos meses, hemos comenzado a realizar ciencia de datos. hackatones. Estos hackatones son concursos con un obstáculo de datos bien definido, que debe resolverse en poco tiempo. Por lo general, duran entre 2 y 7 días.
Si las competiciones de un mes en Kaggle son como maratones, entonces estos hackatones son un formato más corto del juego: 100 mts Sprint. Son eventos de alta energía donde los científicos de datos aportan mucha energía, la tabla de clasificación cambia casi cada hora y la velocidad para solucionar el problema de la ciencia de datos es mucho más importante que las competencias de Kaggle.
Uno de los mejores consejos que puedo ofrecer a los científicos de datos que participan en estos hackatones (o inclusive en competiciones más largas) es crear rápidamente la primera solución y enviarla. Las primeras presentaciones deberían ser muy rápidas. He creado módulos en Python y R que pueden incluir datos tabulares y el nombre de la variableEn estadística y matemáticas, una "variable" es un símbolo que representa un valor que puede cambiar o variar. Existen diferentes tipos de variables, como las cualitativas, que describen características no numéricas, y las cuantitativas, que representan cantidades numéricas. Las variables son fundamentales en experimentos y estudios, ya que permiten analizar relaciones y patrones entre diferentes elementos, facilitando la comprensión de fenómenos complejos.... de destino y ¡BOOM! Tengo mi primer modelo en menos de 10 minutos (suponiendo que sus datos tengan más de 100,000 observaciones). Para conjuntos de datos más pequeños, esto puede ser inclusive más rápido. El motivo de enviar esta solución ultrarrápida es crear un punto de referencia para usted en el que necesita mejorar. Hablaré de mi metodología en este post.
Desglose del procedimiento de modelado predictivo
Para comprender las áreas estratégicas, primero analicemos el procedimiento de análisis predictivo en sus componentes esenciales. A grandes rasgos, se puede dividir en 4 partes. Cada componente necesita x cantidad de tiempo para ejecutarse. Evaluemos estos aspectos n (con el tiempo empleado):
- Análisis descriptivo de los datos: 50% del tiempo
- Tratamiento de datos (valor perdido y corrección de valores atípicos): 40% del tiempo
- Modelado de datos: 4% del tiempo
- Estimación del rendimiento: 6% del tiempo
Nota: Los porcentajes se centran en una muestra de 40 competencias, en las que he participado en el pasado (redondeado).
Ahora sabemos dónde debemos reducir el tiempo. Vayamos paso a paso en el procedimiento (con tiempo estimado):
1.Análisis descriptivo : Cuando comencé mi carrera en la analíticaLa analítica se refiere al proceso de recopilar, medir y analizar datos para obtener información valiosa que facilite la toma de decisiones. En diversos campos, como los negocios, la salud y el deporte, la analítica permite identificar patrones y tendencias, optimizar procesos y mejorar resultados. El uso de herramientas avanzadas y técnicas estadísticas es fundamental para transformar datos en conocimiento aplicable y estratégico...., solíamos construir principalmente modelos basados en Regresión logística y árboles de decisión. La mayor parte del algoritmo que usamos involucró algoritmos codiciosos, que pueden subconjuntar la cantidad de características en las que necesito enfocarme.
Con las herramientas avanzadas de aprendizaje automático en carrera, el tiempo necesario para realizar esta tarea se puede reducir significativamente. Para su análisis inicial, probablemente no necesite realizar ningún tipo de ingeniería de funciones. Por eso, el tiempo que podría necesitar para realizar un análisis descriptivo está restringido para conocer los valores perdidos y las grandes características que son de forma directa visibles. En mi metodología, necesita 2 minutos para completar este paso (supongo un dato con 100.000 observaciones).
2.Tratamiento de datos : Dado que se considera que este es el paso que lleva más tiempo, necesitamos hallar técnicas inteligentes para completar esta etapa. Aquí hay dos trucos simples que puede poner en práctica:
- Crear indicadores ficticios para los valores perdidos: en general, he descubierto que los valores perdidos en la variable además a veces contienen una buena cantidad de información. A modo de ejemplo, si está analizando los datos del flujo de clics, probablemente no tendrá muchos valores en variables específicas correspondientes al uso de dispositivos móviles.
- Imputar el valor faltante con mean / cualquier otro método más fácil: he encontrado que ‘mean’ funciona bien para la primera iteración. Solo en los casos en que haya una tendencia obvia proveniente del análisis descriptivo, probablemente necesite un método más inteligente.
Con métodos tan simples de tratamiento de datos, puede reducir el tiempo de tratamiento de datos para 3-4 minutos.
3. Modelado de datos : He descubierto que GBM es extremadamente eficaz para 100.000 casos de observación. En caso de datos más grandes, puede considerar ejecutar un bosque aleatorio. Esto llevará la máxima cantidad de tiempo (~ 4-5 minutos)
4. Estimación del rendimiento : Encuentro k-fold con k = 7 muy efectivo para aceptar mi apuesta inicial. Esto en conclusión toma 1-2 minutos ejecutar y documentar.
El motivo para construir este modelo no es ganar la competencia, sino determinar un punto de referencia para nosotros mismos. Déjame profundizar en mi algoritmo. Además he incluido algunos fragmentos de mi código en este post.
Comencemos a poner esto en acción
No incluiré toda mi función para darte espacio para innovar. Aquí hay un esqueleto de mi algoritmo (en R):
Paso 1 : Anexa el conjunto de datos de prueba y de tren juntos
Paso 2 : Leer el conjunto de datos en su memoria
setwd("C:UsersTavishDesktopKaggAV") complete <- read.csv("complete_data.csv", stringsAsFactors = TRUE)
Paso 3: Ver los nombres de columna / resumen del conjunto de datos
colnames(complete ) [1] "ID" "Gender" "City" "Monthly_Income" "Disbursed" "train"
Paso 4: Identifique la a) Variable numérica b) Variables de identificación c) Variables de factor d) Variables de destino
Paso 5 : Crea banderas para los valores perdidos
missing_val_var <- function(data,variable,new_var_name) { data$new_var_name <- ifelse(is.na(variable),1,0)) return(data$new_var_name)}
Paso 6 : Imputar valores numéricos faltantes
numeric_impute <- function(data,variable) { mean1 <- mean(data$variable) data$variable <- ifelse(is.na(data$variable),mean1,data$variable) return(new_var_name) }
De manera equivalente, impute una variable categórica para que todos los valores faltantes se codifiquen como un solo valor, diga «Nulo».
Paso 7 : Pasa la variable imputada al procedimiento de modelado.
#Desafío: intente integrar una metodología K-fold en este paso
create_model <- function(trainData,target) { set.seed(120) myglm <- glm(target ~ . , data=trainData, family = "binomial") return(myglm) }
Paso 8 : Hacer predicciones
score <- predict(myglm, newdata = testData, type = "response") score_train <- predict(myglm, newdata = complete, type = "response")
Paso 9 : Chequear el rendimiento
auc(complete$Disbursed,score_train)
¡Y somete!
Notas finales
Con suerte, este post le habrá dado suficiente motivación para crear su propio código de puntuación de 10 minutos. La mayoría de los maestros de Kaggle y los mejores científicos de nuestros hackatones disponen estos códigos listos y disparan su primera presentación antes de hacer un análisis detallado. Una vez que disponen una estimación del punto de referencia, comienzan a improvisar más. Comparta sus códigos completos en el cuadro de comentarios a continuación.
¿Le ha resultado útil este post? Comparta sus opiniones / pensamientos en la sección de comentarios a continuación.