Cómo hacer análisis de datos exploratorios para elegir el algoritmo de aprendizaje automático apropiado

16

Estamos estudiando el aprendizaje automático a través del aprendizaje automático: una perspectiva probabilística (Kevin Murphy). Si bien el texto explica la base teórica de cada algoritmo, rara vez dice en qué caso qué algoritmo es mejor, y cuando lo hace, no dice cómo saber en qué caso estoy.

Por ejemplo, para la elección del kernel, me dijeron que hiciera un análisis de datos exploratorio para evaluar la complejidad de mis datos. En datos bidimensionales simples, puedo trazar y ver si un núcleo lineal o radial es apropiado. ¿Pero qué hacer en la dimensión superior?

En términos más generales, ¿qué quieren decir las personas cuando dicen "conocer sus datos" antes de elegir un algoritmo? En este momento solo puedo distinguir el algoritmo de clasificación vs regresión, y el algoritmo lineal versus no lineal (que no puedo verificar).

EDITAR: Aunque mi pregunta original es sobre la regla general, me han pedido que brinde más información sobre mi problema particular.

Datos: un panel con cada fila siendo un país-mes (~ 30,000 filas en total, cubriendo ~ 165 países durante ~ 15 años).

Respuesta: 5 variables binarias de interés (es decir, si la protesta / golpe / crisis, etc. suceden en ese mes).

Características: ~ 400 variables (una combinación de continuo, categórico, binario) que detalla un conjunto de características de los 2 meses-país anteriores (se puede crear un retraso más largo). Solo usamos variables rezagadas ya que el objetivo es la predicción.

Los ejemplos incluyen, tipo de cambio, crecimiento del PIB (continuo), nivel de prensa libre (categórico), democracia, si el vecino tiene conflicto (binario). Tenga en cuenta que muchas de estas 400 características son variables rezagadas.

Heisenberg
fuente

Respuestas:

15

Esta es una pregunta amplia sin una respuesta simple. En CMU enseñé un curso de 3 meses sobre este tema. Cubrió temas como:

  1. Usar proyecciones para comprender la correlación entre variables y la estructura distributiva general.
  2. Cómo construir un modelo de regresión modelando sucesivamente residuos.
  3. Determinar cuándo agregar términos de interacción no lineal a un modelo lineal.
  4. Cómo decidir entre knn vs. un árbol de decisión vs. un clasificador logístico. Revisé una serie de conjuntos de datos UCI y mostré cómo se podía saber qué clasificador ganaría antes de ejecutarlos.

Lamentablemente, no hay video o libro de texto para el curso, pero di una charla que resume los puntos principales de la clase. No conozco ningún libro de texto que cubra el mismo terreno.

Tom Minka
fuente
Me tomaré uno o dos días para digerir estos materiales útiles, pero mientras tengo su atención: ¿Por qué no tenemos un libro de texto / recurso que cubra este tema? ¿No es importante ya que cada vez que alguien se involucra en un proyecto tiene que pensar en esta pregunta?
Heisenberg
1
Buena pregunta (+1) y respuesta (+1). @Heisenberg: Estoy de acuerdo con Tom en no haber visto un libro de texto específico sobre el tema. Sin embargo, además de sus recursos, sugeriría dos recursos en línea (a pesar de que no se centran en aplicaciones ML): 1) la sección EDA del Manual de estadísticas de ingeniería del NIST; 2) un interesante artículo del profesor Andrew Gelman sobre EDA para modelos complejos.
Aleksandr Blekh
0

Hay algunas cosas que puede verificar en sus datos.

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 acuerdo con estos puntos y con el tipo de información que desea extraer de sus datos, puede decidir qué algoritmo usar.

Donbeo
fuente
¿Podría explicar cómo cada una de estas 4 informaciones influye en mi elección de algoritmo? Solo sé que 2 decidirá la clasificación frente a la regresión. ¿Qué hay de los otros 3? (especialmente # 4 - Tengo datos de panel de 165 países durante 10 años)
Heisenberg
En 2- estaba pensando en variables categóricas como entrada. La decisión final sobre el algoritmo depende del problema que intente resolver. Ahora hay forma de saber eso antes. En 2- quizás un árbol de decisión pueda ayudarte. En 3 tienes que tener cuidado con el sobreajuste. En 4- tienes que decidir cómo evaluar tu desempeño. Solo si explica un problema en particular, podemos ayudarlo a decidir qué algoritmo usar.
Donbeo
He editado mi pregunta para obtener más detalles sobre mi problema particular.
Heisenberg