Recientemente comencé a enseñarme a mí mismo el Aprendizaje automático y el Análisis de datos. Me encuentro con un obstáculo en la necesidad de crear y consultar grandes conjuntos de datos. Me gustaría tomar datos que he estado agregando en mi vida profesional y personal y analizarlos, pero no estoy seguro de la mejor manera de hacer lo siguiente:
¿Cómo debo almacenar estos datos? ¿Sobresalir? SQL? ??
¿Cuál es una buena manera para que un principiante comience a analizar estos datos? Soy un programador informático profesional, por lo que la complejidad no está en escribir programas, sino que es más o menos específica para el dominio del análisis de datos.
EDITAR: Disculpas por mi vaguedad, cuando comienzas a aprender algo es difícil saber lo que no sabes, ¿sabes? ;)
Dicho esto, mi objetivo es aplicar esto a dos temas principales:
Métricas del equipo de software (piense en la velocidad ágil, cuantificando el riesgo, la probabilidad de una iteración completada con éxito dado x número de puntos de historia)
Aprendizaje automático (por ejemplo, se han producido excepciones del sistema en un conjunto dado de módulos), ¿cuál es la probabilidad de que un módulo arroje una excepción en el campo, cuánto costará, qué pueden decirme los datos sobre los módulos clave para mejorar? Para mí, la mejor inversión para mi dinero, predice qué parte del sistema el usuario querrá usar a continuación para comenzar a cargar datos, etc.
fuente
Respuestas:
Si tiene grandes conjuntos de datos, que hacen que Excel o el Bloc de notas se carguen lentamente, una buena base de datos es una base de datos. Postgres es de código abierto y está muy bien hecho, y es fácil conectarse con JMP, SPSS y otros programas. Es posible que desee probar en este caso. No tiene que normalizar los datos en la base de datos. De lo contrario, CSV es amigable para compartir.
Considere Apache Hive si tiene más de 100 millones de filas.
En términos de análisis, aquí hay algunos puntos de partida:
Describa una variable:
Describa la relación entre variables:
Valores atípicos? echa un vistazo a la distancia Mahalanobis
Parcela de mosaico para categórico
Predecir un número real (como precio): regresión
Regresión OLS o técnicas de regresión de aprendizaje automático
cuando la técnica utilizada para predecir es entendible por los humanos, esto se llama modelado. Por ejemplo, una red neuronal puede hacer predicciones, pero generalmente no es comprensible. También puede usar la regresión para buscar indicadores clave de rendimiento.
Predecir la pertenencia a la clase o la probabilidad de pertenencia a la clase (como aprobado / reprobado): clasificación
Ponga las observaciones en grupos "naturales": agrupamiento
Poner atributos en grupos "naturales": factoring
Cuantificación del riesgo = desviación estándar, o proporción de veces que suceden "cosas malas" x qué tan malas son
Probabilidad de una iteración completada con éxito dado x número de puntos de historia = Regresión logística
¡Buena suerte!
fuente
Si está buscando fallas del sistema, es posible que le interese el siguiente documento que emplea técnicas de aprendizaje automático para el diagnóstico de fallas en eBay. Puede darle una idea de qué tipo de datos recopilar o cómo un equipo abordó un problema específico en un dominio similar.
Si recién está comenzando, algo como RapidMiner o Orange podría ser un buen sistema de software para comenzar a jugar con sus datos con bastante rapidez. Ambos pueden acceder a los datos en una variedad de formatos (archivo csv, base de datos, entre otros).
fuente
Su pregunta es tan amplia que la respuesta es: depende. Aún así, para dar una respuesta más útil, indicaré lo que creo que son comunes en Investigación.
El almacenamiento de datos se realiza muy a menudo en archivos de texto. Cuando haces análisis estadísticos, trabajas principalmente con una colección de un tipo de vectores. Esto puede verse como una tabla y escrito en formato csv. La razón por la cual los archivos Thin a menudo se almacenan en texto plano es porque simplemente cada herramienta puede leerlos y es fácil transformarlos.
Sobre el análisis, esto es un poco más difícil de ser específico. Si es bidimensional, haga un diagrama de dispersión. Si es de alta dimensión, haga PCA y vea dónde existen los primeros componentes principales para descubrir variables importantes. Si tiene datos de tiempo, grábelos. Todo esto es tan general que, para ser útil, debe indicar mejor cuáles son sus datos.
fuente
La única cosa en la que ROOT es realmente bueno es almacenar enormes cantidades de datos. ROOT es una biblioteca C ++ utilizada en física de partículas; también viene con enlaces de Ruby y Python, por lo que podría usar paquetes en estos idiomas (por ejemplo, NumPy o Scipy) para analizar los datos cuando descubra que ROOT ofrece pocas posibilidades listas para usar.
El formato de archivo ROOT puede almacenar árboles o tuplas, y las entradas se pueden leer secuencialmente, por lo que no necesita mantener todos los datos en la memoria al mismo tiempo. Esto permite analizar petabytes de datos, algo que no querría probar con Excel o R.
Puede acceder a la documentación de E / S ROOT desde aquí .
fuente