Von Gestern habe ich das grundlegende Verfahren der Datenanalyse organisiert, aber es ist eine Fortsetzung.
Auf der PyCon JP 2014 am Wochenende die Geschichte, dass es viele Python 2-Benutzer gibt / entry / pycon-jp-2014) war da und Kenneth Reitz von Heroku sagte No Benefit 81% AE1% E6% 97% A5% E7% 9B% AE_keynote_% E3% 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6), aber tatsächlich ab 2014 Python Wenn Sie verwenden, können Sie die 3.x-Serie auswählen. Übrigens denke ich, dass die meisten Leute Python 3 empfohlen haben in der nachfolgenden japanischen Ankündigung.
Hier ist meine Idee, warum ich Python 3 für die Datenanalyse verwende.
Diese beiden sind nicht mehr genug.
Die Leser dieses Artikels sind wahrscheinlich überwiegend Japaner, und natürlich ist der Autor auch Japaner. Für englischsprachige Menschen sind die Vorteile von Unicode schwer zu bekommen, aber heute kann es keine Sprache geben, in der UTF-8 nicht die Standardeinstellung ist. Sobald Sie Python 3 berührt haben, wird kein Japaner mehr zu Python 2 zurückkehren wollen. In einer Zeit, in der es im Internet fast keine Distanz zwischen Ländern gibt, sollten Sprachen, die in einer bestimmten Region schwer zu verwenden sind, nicht so verwendet werden, wie sie sind, und den globalen Standards entsprechen.
Außerdem werden in der Python 2-Serie keine neuen Funktionen mehr hinzugefügt. Im Gegensatz dazu haben sich leistungsstarke Bibliotheken wie pandas, die um 2008 erschienen sind, in den letzten Jahren rasant entwickelt. In Kombination mit dem Big-Data-Boom wird Python auf Daten analysiert. Verbessert sich zu einem starken Hauptsprachenstatus für. Seit der Einführung von Python 3 im Jahr 2008 sind die vorherigen Assets in diesem Bereich klein oder veraltet. Daher sollten wir sofort zur Python 3-Serie wechseln. Es ist unwahrscheinlich, dass die Migrationskosten so hoch sind.
Jetzt MATLAB und R Language, Bei dem Versuch, eine numerische Analyse durchzuführen, liegt der Schwerpunkt auf der Berechnung von Vektoren und Matrizen. Zu diesem Zeitpunkt sind folgende Werkzeuge erforderlich, wenn ich sie nach eigenem Ermessen als drei Arten von heiligen Schätzen aufführe.
Dies bedarf auch keiner zusätzlichen Erklärung von Ich habe mich in den Artikeln bisher viel beschäftigt.
Wenn es um Big Data in privaten Unternehmen geht, wird der Name Hadoop sofort nach Eingabe des Schlüsselworts oder des Produktnamens angezeigt. Aber ist es angesichts des Inhalts der Analyse wirklich notwendig? Bitte denken Sie jedes Mal sorgfältig über die Größe der Daten sowie die Art der Berechnung nach.
MapReduce und Spark sind sehr leistungsfähige Tools, wenn sie korrekt verwendet werden, z. B. Verwendung für Stichproben aus der Bevölkerung oder [in einer einfachen Sprache wie Pig oder Hive](http: // qiita). com / ynakayama / items / d2a8c125360e053d5a2f), aber der zutreffende Teil ist nur ein kleiner Teil der Datenanalysephase. In der heutigen Zeit reicht der vorhandene Computer aus, um die Daten für die Probe zu analysieren und zu visualisieren. In diesem Fall kann nicht nur Python, sondern auch Tabellenberechnungssoftware wie R oder Excel verwendet werden.
Stellen Sie sicher, dass die Verwendung bestimmter Software oder Tools kein Selbstzweck ist.
Der beste Weg, um die Nützlichkeit eines Datenanalysetools zu erkennen, besteht darin, die Hände zu bewegen und trotzdem Code zu schreiben.
Die Analyse erfolgt zunächst durch Lesen der vorbereiteten Daten aus der Datei. Auch in NumPy / SciPy, genfromtxt und loadtxt Es gibt allgemeine Funktionen wie numpy / reference / generate / numpy.loadtxt.html # numpy.loadtxt), aber wenn Sie Pandas verwenden können, grundsätzlich read_csv Es ist eine gute Idee, Pandas-Funktionen wie /stable/generated/pandas.io.parsers.read_csv.html) zu verwenden.
Beim Schreiben und Ausprobieren von Beispielcode wird häufig eine zufällige Generierung verwendet. NumPy / SciPy ist nützlich, da verschiedene Zufallszahlengeneratoren implementiert sind. Insbesondere können Zufallszahlen mit willkürlichem Mittelwert und Varianz gemäß der Standardnormalverteilung (Gaußsche Verteilung) numpy.randam.normal erzeugt werden. .html) ist praktisch.
Als Test generieren wir eine Bivariate aus Zufallszahlen, die einer Standardnormalverteilung mit willkürlichem Mittelwert und Varianz folgen, finden die Basisstatistik, berechnen die Kovarianz und den Korrelationskoeffizienten und visualisieren sie in einem Streudiagramm.
#Generieren Sie 50 Zufallszahlen, die einer Standardnormalverteilung mit einem Durchschnitt von 10 und einer Standardabweichung von 5 folgen.
a = np.random.normal(10, 5, size=50)
#Generieren Sie 50 Zufallszahlen, die einer Standardnormalverteilung mit durchschnittlich 20 Standardabweichungen von 8 folgen.
b = np.random.normal(20, 8, size=50)
#Visualisieren
plt.figure()
plt.scatter(a, b)
plt.savefig("image.png ")
Ich konnte ein Streudiagramm zeichnen, das die Beziehung zwischen den Bivariaten visualisiert.
Wenn Sie dasselbe mit Pandas machen, wird es so sein.
#Erstellen Sie einen Datenrahmen
df = pd.DataFrame({
"a": np.random.normal(10, 5, size=50),
"b": np.random.normal(20, 8, size=50)
})
#Visualisieren
plt.scatter(df['a'], df['b'])
Die generierten Bilder sind die gleichen, daher werde ich sie weglassen.
Die Verwendung von Datenrahmen mit Pandas auf diese Weise hat den Vorteil, dass die Berechnung und Bearbeitung von Matrixstatistiken vereinfacht wird.
#Schauen Sie sich den Inhalt der generierten Zufallszahlen an
df
#=>
# a b
# 0 14.104370 13.301508
# 1 9.053707 32.101631
# 2 7.731780 14.075792
# 3 8.629411 38.876371
# 4 15.604993 24.380662
# 5 13.678605 16.517300
# ... (Unterwegs weggelassen)
# 46 12.229324 24.926788
# 47 16.650234 23.308550
# 48 8.101379 20.404972
# 49 0.807786 34.109284
#Berechnen Sie wichtige Basisstatistiken
df.describe()
#=>
# a b
# count 50.000000 50.000000
# mean 10.517972 20.291032
# std 4.229104 8.104303
# min -0.618973 4.451698
# 25% 8.006941 14.085385
# 50% 11.442714 20.018789
# 75% 13.828762 24.770515
# max 17.617583 39.991811
#Finden Sie die Kovarianz zwischen Matrizen
df.cov()
#=>
# a b
# a 17.885320 -5.215284
# b -5.215284 65.679722
#Finden Sie den Korrelationskoeffizienten
df.corr()
#=>
# a b
# a 1.000000 -0.152165
# b -0.152165 1.000000
#Suchen Sie die Translokationsmatrix
df.T
#=>
# 0 1 2 3 4 5 \
# a 14.104370 9.053707 7.731780 8.629411 15.604993 13.678605
# b 13.301508 32.101631 14.075792 38.876371 24.380662 16.517300
# 6 7 8 9 ... 40 \
# a 12.321283 3.325300 5.439189 15.693431 ... 15.220284
# b 30.198993 24.853103 10.381890 32.567924 ... 15.801350
# 41 42 43 44 45 46 \
# a 13.493986 6.756807 9.030604 11.044724 11.443239 12.229324
# b 14.278252 20.388216 20.582722 25.731553 18.479491 24.926788
# 47 48 49
# a 16.650234 8.101379 0.807786
# b 23.308550 20.404972 34.109284
Es ist einfach.
Abgesehen davon gibt es viele Fälle, in denen beispielsweise die Entwicklung in Java das Hauptgeschäft für Unternehmen ist, deren Hauptgeschäft die Vertragsentwicklung vom Typ Vertrag ist. Unabhängig davon, wie viel Geschäft Sie betreiben, ist es am besten, eine Sprache zu verwenden, die für die Datenanalyse geeignet ist.
Als Versuch erwähnte ich im obigen Beispielcode: "Generieren Sie eine Bivariate aus Zufallszahlen, die einer Standardnormalverteilung mit willkürlichem Mittelwert und Varianz folgen, erhalten Sie die Basisstatistik, berechnen Sie die Kovarianz und den Korrelationskoeffizienten und visualisieren Sie sie in einem Streudiagramm." Es ist leicht zu erkennen, dass der Versuch, ein einfaches Problem in einer anderen Sprache als statistischen Sprachen wie R zu lösen, schnell schwierig werden kann.
Nun ist die Vorbereitungsgeschichte etwas lang, aber es gibt drei Hauptpunkte in der Sozialstatistik in der Reihe der Analysen zu den Daten, die aus der Umfrage erhalten wurden.
Wie die Variablen der Zahlen verteilt sind, ist eine sehr wichtige Voraussetzung. Die Verteilung ist die Streuung von Variablen, aber einige ** Statistiken ** werden verwendet, um den Zustand darzustellen. Zum Beispiel "Mittelwert" und "Dispersion".
Verwenden Sie zum Erfassen des Verteilungsstatus eine Häufigkeitsverteilungstabelle, in der die Verteilung der Variablenwerte in Tabellenform dargestellt ist, oder ein Box-Whisker-Diagramm zur Visualisierung zusammengefasster Statistiken.
Der nächste Punkt besteht darin, den Zustand der gesamten Bevölkerung, genannt ** Bevölkerung **, basierend auf den Statistiken der Daten abzuleiten. Die meisten sozialen Umfragen basieren auf ** Stichproben **, die aus einem Teil einer Bevölkerung entnommen wurden.
Da die Stichprobe als Teil der Population entnommen wurde, spiegeln die Daten die Werte in der Population nicht unbedingt genau wider und enthalten bestimmte Fehler. Es ist notwendig, das Konzept und die Technik der "Vermutungsstatistik" zu erwerben, um das aus der Stichprobe erhaltene Analyseergebnis als den Zustand der extrahierten Population zu interpretieren. In der Schätzstatistik werden nach Annahme der aus dem Fehler resultierenden Wahrscheinlichkeit eine "Schätzung" durchgeführt, die den Wert in der Grundgesamtheit angibt, und ein "Test", der eine Hypothese aufstellt und beurteilt, ob sie passt oder nicht.
Finden Sie abschließend heraus, in welchem oder in welchem Umfang eine Beziehung zwischen mehreren Variablen besteht. Auf diese Weise klären wir die Beziehung zwischen welchen Faktoren was beeinflussen. Es ist auch üblich zu schließen, ob es eine Beziehung zwischen Variablen in der Population gibt, aus der die Daten erhalten wurden.
Jeder dieser drei Punkte soll als einfacher Indikator (= Statistik) oder Schlussfolgerung (= Vermutung) dargestellt werden, indem man sich auf einen bestimmten Gesichtspunkt konzentriert. Die statistische Analyse spielt die Rolle, Informationen aus einer großen Datenmenge entsprechend dem Zweck in zusammengefasster Form zu extrahieren und darzustellen.
In den meisten Fällen können statistische Analysemethoden und Statistiken nur durch Ansammeln von im Voraus zu lernenden Elementen verstanden werden. Selbst wenn Sie Daten in die dunklen Wolken werfen und die Ergebnisse sehen, können Sie daher ohne ausreichende Kenntnisse nicht mit dem nächsten Schritt fortfahren.
Ab dem nächsten Mal werden wir Schritte unternehmen, um den Inhalt der oben genannten drei Punkte zu klären.
Recommended Posts