Al construir un modelo predictivo utilizando técnicas de aprendizaje automático, ¿de qué sirve realizar un análisis de datos exploratorios (EDA)? ¿Está bien pasar directamente a la generación de características y construir su modelo (s)? ¿Cómo son importantes las estadísticas descriptivas en EDA?
Respuestas
¿Demasiados anuncios?No hace mucho, tuve una entrevista que la tarea de un científico de datos de posición. Me fue dado un conjunto de datos y le preguntó a construir un modelo predictivo para predecir una cierta variable binaria dada a los demás, con un límite de tiempo de un par de horas.
Fui a través de cada una de las variables a su vez, la representación de ellos, el cálculo de las estadísticas de resumen, etc. También he calculado las correlaciones entre las variables numéricas.
Entre las cosas que encontré fueron:
- Una variable categórica casi perfectamente el objetivo.
- Dos o tres variables tenían más de la mitad de sus valores que faltan.
- Un par de variables extremas de los valores atípicos.
- Dos de las variables numéricas fueron perfectamente correlacionadas.
- etc.
Mi punto es que estas eran las cosas que habían sido introducidos deliberadamente a ver si la gente se daría cuenta de ellos antes de intentar construir un modelo. La compañía puso en ellos, porque son el tipo de cosas que pueden suceder en la vida real, y afectar drásticamente el rendimiento del modelo.
Así que sí, EDA es importante cuando se hace de aprendizaje de la máquina!
Obviamente, sí.
El análisis de los datos podría llevar a muchos puntos de daño a tu modelo predictivo :
Datos incompletos
Suponiendo que estamos hablando de datos cuantitativos, usted tendrá que decidir si desea ignorar la columna (si hay demasiada falta de datos) o de averiguar cuál será su valor "predeterminado" (Media, moda, Etc). Usted no puede hacer esto sin la exploración de los datos.
Los datos anormales
Dicen que usted tiene datos que es bastante fuertemente correlacionados, pero hay un 2% de los datos que se forma fuera de esta correlación. Es posible que desee eliminar estos datos en conjunto para ayudar a su modelo predictivo
Quitar columnas con demasiada correlación
Aceptar esto contradice un poco de mi anterior punto, pero el inglés no es mi lengua principal, así que espero que usted entienda.
Voy a tomar un tonto ejemplo, decir que el análisis de un balón de fútbol en el estadio del conjunto de datos y usted tiene Width, Length, Area
como parámetros. Así, podemos fácilmente imaginar que estos tres parámetros se verán fuertemente correlacionados. Tener demasiado correlación entre la columna lleva el modelo predictivo en una dirección equivocada. Usted puede decidir a ras de uno o más de los parámetros.
Encontrar nuevas características
Voy a tomar el ejemplo de la pequeña Titanic Kaggle "Competencia". Cuando se mira a la gente con nombres, podría averiguar que se puede extraer una característica que es la Title
de la persona. Esta característica resulta ser muy importante cuando se trata de modelar, pero se habría perdido si no analizar sus datos.
Usted podría decidir bin su continua de datos, porque se siente más apropiado o activar una función continua en un categórico.
Encontrar qué tipo de algoritmo a utilizar
Yo no puedo dibujar parcelas de ahora, pero vamos a hacer esto es un ejemplo simple.
Imagina que tienes un pequeño modelo con una función de columna y de un binario (0 o 1) "resultado" de la columna. Desea crear una predicción de la clasificación de modelo para este conjunto de datos.
Si, una vez más, como un ejemplo, se fueron a la trama (soo, analizar sus datos), usted podría darse cuenta de que la trama se forma un círculo perfecto alrededor de su valor 1. En tal escenario, si sería bastante obvio que usted podría utilizar un polinomio de clasificador de tener una gran modelo, en lugar de saltar directamente a la DNN. (Obviamente, teniendo en cuenta que solo hay dos columnas en mi ejemplo, no es un excelente ejemplo, pero usted consigue el punto)
En general, usted no puede esperar que un modelo predictivo para realizar bien si no fijamos en los datos en primer lugar.
Solíamos tener una frase en química:
"Dos semanas que pasó en el laboratorio puede guardar dos horas en Scifinder".
Estoy seguro de que lo mismo se aplica a la máquina de aprendizaje:
"Dos semanas entrenando un neuralnet puede ahorrar 2 horas mirando los datos de entrada".
Estas son las cosas que me gustaría ir a través de antes de iniciar cualquier proceso ML.
- Parcela en la densidad de todos los (continua) de la variable. ¿Cómo son los números sesgada? Necesito un registro de transformar para que los datos tengan sentido? ¿A qué distancia están los valores atípicos? Hay valores que no se hacen físicos o lógicos de sentido?
- Mantenga un ojo hacia fuera para NAs. Generalmente, usted puede simplemente ignorarlos, pero si hay un montón de ellos, o si representan un aspecto crucial para el comportamiento del sistema, puede que tenga que encontrar una manera de volver a crear los datos. Esto podría ser un proyecto en sí mismo.
- Parcela de cada variable en contra de la variable de respuesta. Cuánto sentido se puede hacer de ella sólo echando un vistazo? Hay obvio curvas que pueden ser equipados con funciones?
- Evaluar si o no usted necesita un complicado modelo ML en el primer lugar. A veces la regresión lineal es todo lo que realmente necesita. Incluso si no es así, proporciona una buena base ajuste para el modelo ML para mejorar.
Más allá de los pasos básicos, no iba a pasar mucho tiempo adicional mirando los datos antes de aplicar ML procesos. Si usted ya tiene un gran número de variables, complicado no lineal combinaciones de ellos se hacen cada vez más difícil, no sólo para encontrar, pero a la trama y entender. Este es el tipo de cosas que se manejan mejor con el equipo.
Perspectiva estadística:
Dejando a un lado los errores en el modelado de la etapa, hay tres posibles resultados del intento de predicción sin antes hacer EDA:
- Predicción da evidente absurdo de los resultados, debido a que los datos de entrada violado los supuestos de su método de predicción. Ahora tienes que ir atrás y comprobar que las entradas para averiguar donde está el problema, a continuación, solucionar el problema y volver a hacer el análisis. Dependiendo de la naturaleza de la cuestión, incluso, puede que necesite cambiar sus métodos de predicción. (¿Qué quiere decir, esto es un categórico variable?)
- Predicción da resultados que son malos, pero no , obviamente, malo, debido a que sus datos violado los supuestos en que un poco menos obvio. Ya sea que volver atrás y comprobar los supuestos de todos modos (en cuyo caso, véase #1 arriba) o aceptar malos resultados.
- Por fortuna, los datos de entrada es exactamente lo que usted espera que sea (entiendo que esto no ocurre de vez en cuando) y la predicción da buenos resultados... lo que sería genial, excepto que usted no puede decir la diferencia entre este y #2 arriba.
Proyecto de gestión de perspectiva:
La resolución de los problemas de datos puede tomar una cantidad significativa de tiempo y esfuerzo. Por ejemplo:
- Los datos está sucio y necesita pasar un tiempo de desarrollo de los procesos de limpieza. (Por ejemplo: el tiempo que tenía para el código de una de autocorrección para todas las personas que sigan escribiendo el mal año en enero, y las personas que ingresen a la fecha en el año de campo, y el sistema de análisis de las fechas en DD/MM/AAAA lugar de DD/MM/AAAA.)
- Usted necesita para hacer preguntas sobre el significado de los datos, y sólo Joan puede responder a ellos. Joan se va en un período de seis meses de vacaciones, a partir de dos semanas después de que el proyecto comience.
- Las limitaciones de los datos impedir la entrega de todo lo que tenía la intención de entregar (cf. Bernhard ejemplo de que se pueden producir análisis por sexo/género, porque el conjunto de datos sólo había una mujer) y a usted o a sus clientes de la necesidad de averiguar qué hacer acerca de eso.
La anterior puede identificar tales problemas, mejor sus posibilidades de mantener el proyecto en los rieles, para terminar en el tiempo, y hacer a sus clientes felices.