Beste Möglichkeiten zum Aggregieren und Analysieren von Daten

13

Ich habe gerade erst angefangen, mir Maschinelles Lernen und Datenanalyse beizubringen, und stoße auf eine Mauer, in der es darum geht, große Datenmengen zu erstellen und abzufragen. Ich möchte Daten, die ich in meinem beruflichen und privaten Leben gesammelt habe, aufgreifen und analysieren, bin mir jedoch nicht sicher, wie ich am besten vorgehen kann:

  1. Wie soll ich diese Daten speichern? Excel? SQL? ??

  2. Was ist eine gute Möglichkeit für einen Anfänger, diese Daten zu analysieren? Ich bin ein professioneller Computerprogrammierer, daher besteht die Komplexität nicht darin, Programme zu schreiben, sondern ist mehr oder weniger spezifisch für den Bereich der Datenanalyse.

EDIT: Entschuldigung für meine Unbestimmtheit, wenn Sie zum ersten Mal etwas lernen, ist es schwer zu wissen, was Sie nicht wissen, weißt du? ;)

Mein Ziel ist es jedoch, dies auf zwei Hauptthemen anzuwenden:

  1. Software-Team-Metriken (Agile Geschwindigkeit, Quantifizierung des Risikos, Wahrscheinlichkeit einer erfolgreich abgeschlossenen Iteration bei gegebener Anzahl von Story-Punkten)

  2. Maschinelles Lernen (z. B. Systemausnahmen sind in einem bestimmten Satz von Modulen aufgetreten. Wie hoch ist die Wahrscheinlichkeit, dass ein Modul eine Ausnahme im Feld auslöst, wie hoch sind die Kosten, und was können mir die Daten über Schlüsselmodule zur Verbesserung sagen?) Ich finde das Beste für mein Geld, sage voraus, welchen Teil des Systems der Benutzer als Nächstes verwenden möchte, um mit dem Laden von Daten zu beginnen, usw.).

Justin Bozonier
quelle
Das erscheint mir sehr vage. Welche Art von Daten und welche Art von Analyse? Außerdem sollte dies Community-Wiki sein, wenn es subjektiv ist.
Shane

Antworten:

19

Wenn Sie große Datenmengen haben, bei denen Excel oder Notepad langsam geladen wird, ist eine Datenbank der richtige Weg. Postgres ist Open Source und sehr gut gemacht, und es ist einfach, sich mit JMP, SPSS und anderen Programmen zu verbinden. In diesem Fall möchten Sie möglicherweise eine Stichprobe erstellen. Sie müssen die Daten in der Datenbank nicht normalisieren. Ansonsten ist CSV Sharing-freundlich.

Betrachten Sie Apache Hive, wenn Sie mehr als 100 Millionen Zeilen haben.

In Bezug auf die Analyse sind hier einige Ansatzpunkte:

Beschreiben Sie eine Variable:

  • Histogramm
  • Zusammenfassende Statistik (Mittelwert, Bereich, Standardabweichung, Minimum, Maximum usw.)
  • Gibt es Ausreißer? (größer als 1,5x Interquartilbereich)
  • Welche Art der Verteilung folgt es? (normal usw.)

Beschreiben Sie die Beziehung zwischen Variablen:

  • Streudiagramm
  • Korrelation
  • Ausreißer? Schauen Sie sich Mahalanobis Entfernung an

  • Mosaikplot für kategorisch

  • Kontingenztabelle für kategorial

Vorhersage einer reellen Zahl (wie Preis): Regression

  • OLS-Regression oder Regressionstechniken für maschinelles Lernen

  • Wenn die zur Vorhersage verwendete Technik für den Menschen verständlich ist, spricht man von Modellierung. Beispielsweise kann ein neuronales Netzwerk Vorhersagen treffen, ist jedoch im Allgemeinen nicht verständlich. Mithilfe der Regression können Sie auch Key Performance Indicators ermitteln.

Vorhersage der Klassenzugehörigkeit oder der Wahrscheinlichkeit einer Klassenzugehörigkeit (wie bestanden / nicht bestanden): Klassifizierung

  • logistische Regression oder maschinelles Lernen wie SVM

Die Beobachtungen in "natürliche" Gruppen einteilen: Clustering

  • Im Allgemeinen findet man "ähnliche" Beobachtungen, indem man den Abstand zwischen ihnen berechnet.

Attribute in "natürliche" Gruppen einteilen: Factoring

  • Und andere Matrixoperationen wie PCA, NMF

Quantifizierung des Risikos = Standardabweichung oder Häufigkeit, mit der "schlechte Dinge" passieren x wie schlecht sie sind

Wahrscheinlichkeit einer erfolgreich abgeschlossenen Iteration bei x Anzahl Story Points = Logistic Regression

Viel Glück!

Neil McGuigan
quelle
Das war großartig. Vielen Dank für diese Antwort. Sie haben mir einen großartigen Ausgangspunkt gegeben. Alle Bücher, die Sie empfehlen, da Sie anscheinend dort "ankommen", wo ich bin.
Justin Bozonier
Gern geschehen. Bücher: Statistik in Plain English zu starten. Anschließend multivariate Datenanalyse nach Haaren. Dies sind gute Webressourcen: itl.nist.gov/div898/handbook , statsoft.com/textbook
Neil McGuigan
4

Wenn Sie sich mit Systemfehlern befassen, interessiert Sie möglicherweise der folgende Artikel, in dem Techniken des maschinellen Lernens für die Fehlerdiagnose bei eBay verwendet werden. Es kann Ihnen einen Eindruck davon geben, welche Art von Daten zu sammeln sind oder wie ein Team ein bestimmtes Problem in einem ähnlichen Bereich angegangen ist.

Wenn Sie gerade erst anfangen, ist RapidMiner oder Orange möglicherweise ein gutes Softwaresystem, um schnell mit Ihren Daten zu spielen. Beide können in verschiedenen Formaten auf die Daten zugreifen (ua Datei csv, Datenbank).

ars
quelle
3

Ihre Frage ist so weit gefasst, dass die Antwort lautet: Es kommt darauf an. Um jedoch eine nützlichere Antwort zu geben, werde ich angeben, was meiner Meinung nach in der Forschung üblich ist.

Das Speichern von Daten erfolgt sehr häufig in Textdateien. Bei statistischen Analysen arbeiten Sie meist mit einer Sammlung von Vektoren. Dies kann als Tabelle angesehen und im CSV-Format geschrieben werden. Der Grund, warum Ausdünnungen oft im Klartext gespeichert werden, ist, dass sie einfach von jedem Tool gelesen werden können und sich leicht transformieren lassen.

Was die Analyse angeht, ist dies etwas schwieriger zu präzisieren. Wenn es zweidimensional ist, machen Sie ein Streudiagramm. Wenn es hochdimensional ist, machen Sie PCA und sehen Sie, wo die ersten Hauptkomponenten vorhanden sind, um wichtige Variablen zu entdecken. Wenn Sie Zeitdaten haben, zeichnen Sie diese auf. Dies ist alles so allgemein, dass Sie, um nützlich zu sein, wirklich besser angeben müssen, was Ihre Daten sind.

Peter Smit
quelle
Peter, du hast mich fertig gemacht! Ich stimme dem Speichern von Daten als Text vollkommen zu, obwohl es je nach Größe (Hunderte von Millionen von Einträgen) erforderlich sein kann, in eine kartenreduzierbare Datenbank zu wechseln (z. B. Pig, Cassandra oder eine der NoSQL-Optionen).
DrewConway
Oh ok interessant! Nehmen Sie also einfach Daten für jede Variable und legen Sie sie im Zeilen-Spalten-Format an. Gibt es Tools, die ich mir ansehen sollte, oder sollte ich nur etwas programmieren?
Justin Bozonier
R ist ein sehr umfangreiches (und kostenloses) Toolkit / eine Programmiersprache / Bibliothek für Statistiken. Mein Favorit für die meisten Dinge ist jedoch Python mit SciPy / NumPy
Peter Smit
0

Das eine, was ROOT wirklich gut kann, ist das Speichern enormer Datenmengen. ROOT ist eine C ++ - Bibliothek, die in der Teilchenphysik verwendet wird. Es wird auch mit Ruby- und Python-Bindungen geliefert, sodass Sie Pakete in diesen Sprachen (z. B. NumPy oder Scipy) verwenden können, um die Daten zu analysieren, wenn Sie feststellen, dass ROOT nur wenige sofort verfügbare Möglichkeiten bietet.

Das ROOT-Dateiformat kann Bäume oder Tupel speichern und Einträge können sequentiell gelesen werden, sodass nicht alle Daten gleichzeitig im Speicher bleiben müssen. Auf diese Weise können Petabytes an Daten analysiert werden, die Sie mit Excel oder R nicht ausprobieren möchten.

Die ROOT I / O-Dokumentation ist von hier aus erreichbar .

Benjamin Bannier
quelle