Las mejores formas de agregar y analizar datos

13

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:

  1. ¿Cómo debo almacenar estos datos? ¿Sobresalir? SQL? ??

  2. ¿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:

  1. 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)

  2. 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.

Justin Bozonier
fuente
Esto me parece muy vago. ¿Qué tipo de datos y qué tipo de análisis? Además, esto debería ser wiki comunitario si es subjetivo.
Shane

Respuestas:

19

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:

  • Histograma
  • Resumen de estadísticas (media, rango, desviación estándar, min, max, etc.)
  • ¿Hay valores atípicos? (mayor que 1.5x rango intercuartil)
  • ¿Qué tipo de distribución sigue? (normal, etc.)

Describa la relación entre variables:

  • Gráfico de dispersión
  • Correlación
  • Valores atípicos? echa un vistazo a la distancia Mahalanobis

  • Parcela de mosaico para categórico

  • Tabla de contingencia 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

  • Regresión logística o técnicas de aprendizaje automático, como SVM

Ponga las observaciones en grupos "naturales": agrupamiento

  • Generalmente uno encuentra observaciones "similares" calculando la distancia entre ellas.

Poner atributos en grupos "naturales": factoring

  • Y otras operaciones matriciales como PCA, NMF

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!

Neil McGuigan
fuente
Esto fue asombroso. Muchas gracias por esta respuesta. Me has dado un gran punto de partida. Cualquier libro que recomiende ya que parece "llegar" a donde estoy.
Justin Bozonier
eres muy bienvenido. libros: Estadísticas en inglés simple para comenzar. Análisis de datos multivariados por Hair después de eso. Estos son buenos recursos web: itl.nist.gov/div898/handbook , statsoft.com/textbook
Neil McGuigan el
4

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).

ars
fuente
3

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.

Peter Smit
fuente
Peter, me golpeaste hasta el golpe! Estoy completamente de acuerdo con almacenar datos como texto, aunque dependiendo del tamaño (cientos de millones de obs) puede ser necesario pasar a una base de datos reducible por mapa (por ejemplo, Pig, Cassandra o una de las opciones NoSQL).
DrewConway
Oh ok interesante! Entonces, solo tome datos para cada variable y colóquelos en formato de fila-columna y llegue al número de eh? ¿Hay alguna herramienta que debería mirar o debería estar programando algo?
Justin Bozonier
R es un juego de herramientas / biblioteca / lenguaje de programación muy extenso (y gratuito) para estadísticas. Sin embargo, mi favorito para la mayoría de las cosas es Python con SciPy / NumPy
Peter Smit el
0

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í .

Benjamin Bannier
fuente