Visão geral
- 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.
Introdução
Nos ú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. Em geral, duran entre 2 e 7 dias.
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 variávelEm estatística e matemática, uma "variável" é um símbolo que representa um valor que pode mudar ou variar. Existem diferentes tipos de variáveis, e qualitativo, que descrevem características não numéricas, e quantitativo, representando quantidades numéricas. Variáveis são fundamentais em experimentos e estudos, uma vez que permitem a análise de relações e padrões entre diferentes elementos, facilitando a compreensão de fenômenos complexos.... de destino y ¡BOOM! Tengo mi primer modelo en menos de 10 minutos (suponiendo que sus datos tengan más de 100,000 observações). 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.
Repartição do procedimento de modelagem preditiva
Para comprender las áreas estratégicas, primero analicemos el procedimiento de análisis predictivo en sus componentes esenciales. Aproximadamente, se puede dividir en 4 partes. Cada componente necesita x cantidad de tiempo para ejecutarse. Evaluemos estos aspectos n (con el tiempo empleado):
- Análise descritiva dos dados: 50% do tempo
- Tratamento de dados (valor ausente e correção de outlier): 40% do tempo
- Modelagem de dados: 4% do tempo
- Estimativa de desempenho: 6% do tempo
Observação: 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álise descritiva : Cuando comencé mi carrera en la analíticaAnalytics refere-se ao processo de coleta, Meça e analise dados para obter insights valiosos que facilitam a tomada de decisões. Em vários campos, como negócio, Saúde e esporte, A análise pode identificar padrões e tendências, Otimize processos e melhore resultados. O uso de ferramentas avançadas e técnicas estatísticas é essencial para transformar dados em conhecimento aplicável e 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 isso, o tempo que pode levar para realizar uma análise descritiva é restrito para descobrir valores ausentes e grandes recursos que são diretamente visíveis. Na minha metodologia, precisa de 2 minutos para completar esta etapa (supongo un dato con 100.000 observações).
2.Tratamento de dados : 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: em geral, he descubierto que los valores perdidos en la variable además a veces contienen una buena cantidad de información. Como um exemplo, 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.
Com esses métodos simples de processamento de dados, pode reduzir o tempo de processamento de dados para 3-4 minutos.
3. Modelagem de dados : 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. Isso levará o máximo de tempo (~ 4-5 minutos)
4. Estimativa de desempenho : Encuentro k-fold con k = 7 muy efectivo para aceptar mi apuesta inicial. Esta conclusão leva 1-2 minutos executar e documentar.
El motivo para construir este modelo no es ganar la competencia, mas para determinar um benchmark para nós mesmos. Déjame profundizar en mi algoritmo. Además he incluido algunos fragmentos de mi código en este post.
Vamos começar a colocar isso em ação
No incluiré toda mi función para darte espacio para innovar. Aquí hay un esqueleto de mi algoritmo (um 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 / retomar del conjunto de datos
colnames(complete ) [1] "EU IRIA" "Gênero" "Cidade" "Monthly_Income" "Disbursed" "Comboio"
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 <- função(dados,variável,new_var_name) { data$new_var_name <- ifelse(is.na(variável),1,0)) Retorna(data$new_var_name)}
Paso 6 : Imputar valores numéricos faltantes
numeric_impute <- função(dados,variável) { mean1 <- quer dizer(data$variable) data$variable <- ifelse(is.na(data$variable),mean1,data$variable) Retorna(new_var_name) }
Equivalentemente, 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 <- função(trainData,alvo) { set.seed(120) myglm <- glm(target ~ . , data=trainData, family = "binômio") Retorna(myglm) }
Paso 8 : Faça previsões
pontuação <- prever(myglm, newdata = testData, tipo = "resposta") score_train <- prever(myglm, newdata = complete, tipo = "resposta")
Paso 9 : Chequear el rendimiento
auc(complete$Disbursed,score_train)
E submeta-se!!
Notas finais
Com sorte, 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. Uma vez que eles tenham uma estimativa do ponto de referência, eles começam a improvisar mais. Compartilhe seus códigos completos na caixa de comentários abaixo.
Esta postagem foi útil para você?? Compartilhe suas opiniões / pensamentos na seção de comentários abaixo.