Meilleures façons d'agréger et d'analyser les données

13

Ayant récemment commencé à m'enseigner moi-même l'apprentissage automatique et l'analyse des données, je me retrouve à frapper un mur de briques sur la nécessité de créer et d'interroger de grands ensembles de données. Je voudrais prendre des données que j'ai agrégées dans ma vie professionnelle et personnelle et les analyser, mais je ne suis pas sûr de la meilleure façon de procéder comme suit:

  1. Comment dois-je stocker ces données? Exceller? SQL? ??

  2. Quelle est la bonne façon pour un débutant de commencer à essayer d'analyser ces données? Je suis un programmeur informatique professionnel donc la complexité n'est pas dans l'écriture de programmes mais plus ou moins spécifique au domaine de l'analyse de données.

EDIT: Toutes mes excuses pour mon imprécision, lorsque vous commencez à apprendre quelque chose, il est difficile de savoir ce que vous ne savez pas, vous savez? ;)

Cela dit, mon objectif est d'appliquer cela à deux sujets principaux:

  1. Mesures de l'équipe logicielle (pensez à la vitesse agile, à la quantification du risque, à la probabilité d'une itération réussie compte tenu du nombre de points d'histoire)

  2. Apprentissage automatique (par exemple, des exceptions système se sont produites dans un ensemble donné de modules, quelle est la probabilité qu'un module lève une exception sur le terrain, combien cela coûtera-t-il, que peuvent me dire les données sur les modules clés à améliorer qui obtiendront me le meilleur rapport qualité-prix, prédisez quelle partie du système l'utilisateur voudra utiliser ensuite pour commencer à charger les données, etc.).

Justin Bozonier
la source
Cela me semble très vague. Quel type de données et quel type d'analyse? En outre, ce devrait être un wiki communautaire s'il est subjectif.
Shane

Réponses:

19

Si vous avez de grands ensembles de données - ceux qui font charger Excel ou le Bloc-notes lentement, alors une base de données est un bon moyen de procéder. Postgres est open-source et très bien fait, et il est facile de se connecter avec JMP, SPSS et d'autres programmes. Vous voudrez peut-être échantillonner dans ce cas. Vous n'avez pas à normaliser les données de la base de données. Sinon, CSV est convivial.

Considérez Apache Hive si vous avez plus de 100 millions de lignes.

En termes d'analyse, voici quelques points de départ:

Décrivez une variable:

  • Histogramme
  • Statistiques récapitulatives (moyenne, plage, écart type, min, max, etc.)
  • Y a-t-il des valeurs aberrantes? (supérieur à 1,5 fois l'intervalle quartile)
  • Quelle distribution suit-elle? (normal, etc.)

Décrivez la relation entre les variables:

  • Diagramme de dispersion
  • Corrélation
  • Des valeurs aberrantes? vérifier la distance Mahalanobis

  • Graphique en mosaïque pour catégorique

  • Tableau de contingence pour catégorique

Prédire un nombre réel (comme le prix): régression

  • Techniques de régression OLS ou de régression d'apprentissage automatique

  • lorsque la technique utilisée pour prédire est compréhensible par l'homme, cela s'appelle la modélisation. Par exemple, un réseau neuronal peut faire des prédictions, mais n'est généralement pas compréhensible. Vous pouvez également utiliser la régression pour trouver des indicateurs de performance clés.

Prédire l'appartenance à une classe ou la probabilité d'appartenance à une classe (comme réussi / échoué): classification

  • régression logistique ou techniques d'apprentissage automatique, telles que SVM

Mettre les observations en groupes «naturels»: regroupement

  • Généralement, on trouve des observations "similaires" en calculant la distance entre elles.

Mettre les attributs en groupes "naturels": factorisation

  • Et d'autres opérations matricielles telles que PCA, NMF

Quantifier le risque = écart type, ou proportion de fois où de «mauvaises choses» se produisent x à quel point elles sont mauvaises

Probabilité d'une itération réussie étant donné x nombre de points d'histoire = régression logistique

Bonne chance!

Neil McGuigan
la source
C'était génial. Merci beaucoup pour cette réponse. Vous m'avez donné un excellent point de départ. Tous les livres que vous recommandez car vous semblez "arriver" là où je suis.
Justin Bozonier
vous êtes les bienvenus. livres: Statistiques en anglais simple pour commencer. Analyse de données multivariée par cheveux après cela. Ce sont de bonnes ressources Web: itl.nist.gov/div898/handbook , statsoft.com/textbook
Neil McGuigan
4

Si vous recherchez des défaillances du système, vous pourriez être intéressé par le document suivant utilisant des techniques d'apprentissage automatique pour le diagnostic des défaillances sur eBay. Cela peut vous donner une idée du type de données à collecter ou de la façon dont une équipe a abordé un problème spécifique dans un domaine similaire.

Si vous débutez, quelque chose comme RapidMiner ou Orange pourrait être un bon système logiciel pour commencer à jouer avec vos données assez rapidement. Les deux peuvent accéder aux données dans une variété de formats (fichier csv, base de données, entre autres).

ars
la source
3

Votre question est si large que la réponse est: cela dépend. Pourtant, pour donner une réponse plus utile, je vais indiquer ce que je pense sont communs dans la recherche.

Le stockage des données se fait très souvent dans des fichiers texte. Lorsque vous effectuez des analyses statistiques, vous travaillez principalement avec une collection d'un type de vecteurs. Cela peut être vu comme un tableau et écrit au format csv. La raison pour laquelle les minces sont souvent stockées en texte brut, c'est que tout outil peut les lire et qu'il est facile de les transformer.

Concernant l'analyse, il est un peu plus difficile d'être précis. S'il est bidimensionnel, faites un nuage de points. S'il est de grande dimension, effectuez l'ACP et voyez où se trouvent les premiers composants principaux pour découvrir les variables importantes. Si vous avez des données de temps, tracez-les. Tout cela est si général que pour être utile, vous devez vraiment mieux indiquer quelles sont vos données.

Peter Smit
la source
Peter, tu m'as battu au poing! Je suis entièrement d'accord avec le stockage de données sous forme de texte, bien qu'en fonction de la taille (des centaines de millions d'obs), il puisse être nécessaire de passer à une base de données réductible par carte (par exemple, Pig, Cassandra ou l'une des options NoSQL).
DrewConway
Oh ok intéressant! Il suffit donc de prendre des données pour chaque variable et de les disposer au format ligne-colonne et de procéder à un calcul numérique hein? Y a-t-il des outils que je devrais regarder ou devrais-je simplement programmer quelque chose?
Justin Bozonier
R est une boîte à outils / langage de programmation / bibliothèque très complète (et gratuite) pour les statistiques. Mon préféré pour la plupart des choses est cependant Python avec SciPy / NumPy
Peter Smit
0

La seule chose à laquelle ROOT est vraiment bon est de stocker d'énormes quantités de données. ROOT est une bibliothèque C ++ utilisée en physique des particules; il est également livré avec des liaisons Ruby et Python, vous pouvez donc utiliser des packages dans ces langages (par exemple NumPy ou Scipy) pour analyser les données lorsque vous constatez que ROOT offre peu de possibilités dès le départ.

Le format de fichier ROOT peut stocker des arbres ou des tuples, et les entrées peuvent être lues séquentiellement, vous n'avez donc pas besoin de conserver toutes les données en mémoire en même temps. Cela permet d'analyser des pétaoctets de données, ce que vous ne voudriez pas essayer avec Excel ou R.

La documentation ROOT I / O est accessible à partir d' ici .

Benjamin Bannier
la source