Como fazer análise exploratória de dados para escolher o algoritmo de aprendizado de máquina apropriado

16

Estamos estudando o aprendizado de máquina via Machine Learning: uma perspectiva probabilística (Kevin Murphy). Embora o texto explique a fundamentação teórica de cada algoritmo, ele raramente diz em qual caso o algoritmo é melhor e, quando o faz, não diz como saber em qual caso estou.

Por exemplo, para a escolha do kernel, fui instruído a fazer uma análise exploratória de dados para avaliar a complexidade dos meus dados. Em dados bidimensionais simples, posso traçar e ver se um núcleo linear ou radial é apropriado. Mas o que fazer na dimensão superior?

De maneira mais geral, o que as pessoas querem dizer quando dizem "conhecer seus dados" antes de escolher um algoritmo? No momento, só posso distinguir classificação versus algoritmo de regressão e algoritmo linear vs não linear (que não posso verificar).

EDIT: Embora minha pergunta original seja sobre uma regra universal, pediram-me para fornecer mais informações sobre meu problema específico.

Dados: um painel com cada linha sendo um mês por país (~ 30.000 linhas no total, cobrindo ~ 165 países ao longo de ~ 15 anos).

Resposta: 5 variáveis ​​binárias de interesse (isto é, se protesto / golpe / crise, etc. acontecem naquele mês).

Características: ~ 400 variáveis ​​(uma mistura de contínua, categórica, binária) detalhando um conjunto de características dos 2 meses-país anteriores (pode ser criado um atraso maior). Nós usamos apenas variáveis ​​atrasadas, pois o objetivo é a previsão.

Exemplos incluem: taxa de câmbio, crescimento do PIB (contínuo), nível de imprensa livre (categórica), democracia, se o vizinho está em conflito (binário). Observe que muitos desses 400 recursos são variáveis ​​atrasadas.

Heisenberg
fonte

Respostas:

15

Esta é uma pergunta ampla, sem uma resposta simples. Na CMU, ministrei um curso de três meses sobre esse tópico. Abrangeu questões como:

  1. Usando projeções para entender a correlação entre variáveis ​​e estrutura distributiva geral.
  2. Como construir um modelo de regressão modelando sucessivamente resíduos.
  3. Determinando quando adicionar termos de interação não lineares a um modelo linear.
  4. Como decidir entre knn x uma árvore de decisão x um classificador logístico. Analisei vários conjuntos de dados da UCI e mostrei como era possível saber qual classificador venceria antes de executá-los.

Infelizmente, não há vídeo ou livro didático para o curso, mas dei uma palestra que resume os principais pontos da aula. Não conheço nenhum livro que cubra o mesmo terreno.

Tom Minka
fonte
Levarei um dia ou dois para digerir esses materiais úteis, mas enquanto estiver com sua atenção: Por que não temos um livro / recurso que cubra esse tópico? Não é importante, pois sempre que alguém se envolve em um projeto, ele precisa pensar sobre essa questão?
Heisenberg
1
Boa pergunta (+1) e resposta (+1). @Heisenberg: Concordo com Tom por não ter visto um livro específico sobre o assunto. No entanto, além de seus recursos, eu sugeriria dois recursos on-line (apesar de não serem focados em aplicativos de ML): 1) a seção EDA do Manual de Estatística de Engenharia do NIST; 2) um artigo interessante do Prof. Andrew Gelman sobre EDA para modelos complexos.
Aleksandr Blekh 28/03
0

Há algumas coisas que você pode verificar em seus dados.

1 - correlation between variables
2 - categorical variables or continuous variables?
3 - relation between number of samples and number of variables
4 - are the samples independent or is it a time series? 

De acordo com esses pontos e com o tipo de informação que você deseja extrair dos seus dados, você pode decidir qual algoritmo usar.

Donbeo
fonte
Você poderia elaborar como cada uma dessas 4 informações influencia minha escolha de algoritmo? Eu só sei que 2 decidirá classificação vs regressão. E os outros 3? (especialmente # 4 - Não tenho dados em painel de 165 países em 10 anos)
Heisenberg
Em 2 - eu estava pensando em variáveis ​​categóricas como entrada. A decisão final sobre o algoritmo depende do problema que você está tentando resolver. Agora há uma maneira de saber isso antes. Em 2 - talvez uma árvore de decisão possa ajudá-lo. Em 3, você deve ter cuidado com o ajuste excessivo. No 4-, você precisa decidir como avaliar seu desempenho. Somente se você explicar um problema específico, podemos ajudá-lo a decidir qual algoritmo usar.
Donbeo
Eu editei minha pergunta para obter mais detalhes sobre meu problema específico.
Heisenberg