Visão geral
- Os hackathons implicam a construção de modelos preditivos num curto período de tempo.
- A fase de pré-processamento de dados ocupa a maior parte do tempo utilizado na criação de um modelo
- Outras fases incluem análise descritiva, modelação de dados e avaliação do desempenho do modelo.
Introdução
Nos últimos meses, Começámos a realizar ciência de dados. hackatones. Estes hackathons são concursos com um desafio de dados bem definido, que deve ser resolvido em pouco tempo. Em geral, duram entre 2 e 7 dias.
Se as competições de um mês no Kaggle são como maratonas, então estes hackathons são um formato mais curto do jogo: 100 mts Sprint. São eventos de alta energia onde os cientistas de dados trazem muita energia, a tabela de classificação muda quase a cada hora e a velocidade para resolver o problema de ciência de dados é muito mais importante do que as competências do Kaggle.

Um dos melhores conselhos que posso dar aos cientistas de dados que participam nestes hackathons (ou até em competições mais longas) é criar rapidamente a primeira solução e enviá-la. As primeiras submissões devem ser muito rápidas. Criei módulos em Python e R que podem incluir dados tabulares e o nome do 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 e ¡BOOM! Tenho o meu primeiro modelo em menos de 10 minutos (assumindo que os seus dados tenham mais de 100,000 observações). Para conjuntos de dados mais pequenos, isto pode ser ainda mais rápido. O motivo de enviar esta solução ultrarrápida é criar um ponto de referência para si em que precisa de melhorar. Falarei sobre a minha metodologia neste post.
Repartição do procedimento de modelagem preditiva
Para compreender as áreas estratégicas, primeiro analisemos o procedimento de análise preditiva nos seus componentes essenciais. Aproximadamente, pode ser dividido em 4 partes. Cada componente necessita de x quantidade de tempo para ser executado. Vamos avaliar estes aspetos n (com o tempo utilizado):
- 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: Os percentuais concentram-se numa amostra de 40 competências, nas quais participei no passado (arredondado).
Agora sabemos onde devemos reduzir o tempo. Vejamos passo a passo o procedimento (com tempo estimado):
1.Análise descritiva : Quando comecei a minha carreira em 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...., Costumávamos construir principalmente modelos baseados em Regressão Logística e árvores de decisão. A maior parte do algoritmo que usamos envolveu algoritmos gananciosos, que podem subdefinir a quantidade de características na qual preciso focar.
Com as ferramentas avançadas de aprendizagem automática na corrida, o tempo necessário para realizar esta tarefa pode ser reduzido significativamente. Para a sua análise inicial, provavelmente não precisa realizar qualquer tipo de engenharia de features. 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 (Eu suponho um dado com 100.000 observações).
2.Tratamento de dados : Dado que se considera que este é o passo que leva mais tempo, precisamos encontrar técnicas inteligentes para completar esta etapa. Aqui estão dois truques simples que pode colocar em prática:
- Criar indicadores fictícios para os valores em falta: em geral, descobri que os valores em falta na variável às vezes contêm uma boa quantidade de informação. Como um exemplo, se estiver a analisar os dados do fluxo de cliques, provavelmente não terá muitos valores em variáveis específicas correspondentes ao uso de dispositivos móveis.
- Imputar o valor em falta com a média / qualquer outro método mais fácil: descobri que 'média'’ funciona bem para a primeira iteração. Apenas nos casos em que haja uma tendência óbvia proveniente da análise descritiva, provavelmente precisará de um método mais 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 : Descobri que GBM é extremamente eficaz para 100.000 casos de observação. No caso de dados maiores, pode considerar executar uma floresta aleatória. Isso levará o máximo de tempo (~ 4-5 minutos)
4. Estimativa de desempenho : Encontro k-fold com k = 7 muito eficaz para aceitar a minha aposta inicial. Esta conclusão leva 1-2 minutos executar e documentar.
O motivo para construir este modelo não é ganhar a competição, mas para determinar um benchmark para nós mesmos. Deixa-me aprofundar o meu algoritmo. Além disso, incluí alguns fragmentos do meu código neste post.
Vamos começar a colocar isso em ação
Não incluirei toda a minha função para te dar espaço para inovar. Aqui está um esqueleto do meu algoritmo (um R):
Paso 1 : Anexa o conjunto de dados de teste e de treino juntos
Paso 2 : Ler o conjunto de dados na sua memória
setwd("C:UsersTavishDesktopKaggAV")
completo <- read.csv("complete_data.csv", stringsAsFactors = TRUE)
Paso 3: Ver los nombres de columna / retomar del conjunto de datos
colnames(completo ) [1] "EU IRIA" "Gênero" "Cidade" "Rendimento_Mensal" "Desembolsado" "Comboio"
Paso 4: Identifique a a) Variável numérica b) Variáveis de identificação c) Variáveis fator d) Variáveis alvo
Paso 5 : Cria bandeiras para os valores em falta
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 em falta
numeric_impute <- função(dados,variável) {
mean1 <- quer dizer(data$variável)
data$variável <- ifelse(is.na(data$variável),mean1,data$variável)
Retorna(new_var_name)
}
Equivalentemente, imputar uma variável categórica para que todos os valores em falta sejam codificados como um único valor, diga “Nulo”.
Paso 7 : Passar a variável imputada para o procedimento de modelagem.
#Desafio: tente integrar uma metodologia K-fold neste passo
criar_modelo <- 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 : Verificar o desempenho
auc(complete$Disbursed,score_train)
E submeta-se!!
Notas finais
Com sorte, este post terá dado motivação suficiente para criar o seu próprio código de pontuação de 10 minutos. A maioria dos professores do Kaggle e os melhores cientistas dos nossos hackatons têm estes códigos prontos e executam a sua primeira apresentação antes de fazer uma análise detalhada. 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.



