Donnerstag , Juli 2 2020

Ihr Leitfaden zu Datenvisualisierungen in Python und R l Sisense

Blog

Wenn Datensätze größer und komplexer werden, können nur KI, materialisierte Ansichten und komplexere Codierungssprachen daraus Erkenntnisse gewinnen. In Next-Level Moves untersuchen wir, wie fortschrittliche Analysen den Weg für die nächste Innovationswelle ebnen.

Das menschliche Gehirn verarbeitet visuelle Daten besser als jede andere Art von Daten, was gut ist weil ungefähr 90% der Informationen, die unser Gehirn verarbeitet, visuell sind. Sowohl die visuelle Verarbeitung als auch die Reaktionen erfolgen im Vergleich zu anderen Stimuli schneller. Haben Sie sich jemals gefragt, warum Sie mühelos Details in einem Bild erkennen können, während Sie auf Tabellenkalkulationen starren, die Ihren Kopf verletzen? Das Gehirn verarbeitet Daten in Bildern oder Bildern schneller als Daten in Text oder Zahlenreihen.

Sie haben es wahrscheinlich satt zu hören, dass sich Informationen mit einer Geschwindigkeit vermehren, die Menschen kaum verstehen können, geschweige denn mithalten können. Die gute Nachricht ist, dass Sie das nicht müssen! Maschinelles Lernen und fortschrittliche Analysen helfen Menschen dabei, große Mengen strukturierter und unstrukturierter Daten zu verstehen, indem sie sich auf unsere natürliche Fähigkeit stützen, visuelle Elemente besser zu verstehen als die Rohdaten, die wir verstehen möchten. Hier zeigt sich die Kraft der Visualisierung.

Sowohl Python als auch R sind fortschrittliche Codierungssprachen, die wunderschöne Bilder erzeugen können, mit denen Menschen große Datensätze mühelos verstehen können. In diesem Artikel werden wir uns die Funktionsweise beider Sprachen ansehen und Ihnen Code geben, mit dem Sie eigene Grafiken erstellen können!

 Sisense für Cloud-Datenteams

Was sind Datenvisualisierungen?

Mit Datenvisualisierungen können Menschen Daten auf viele verschiedene Arten untersuchen und Muster und Erkenntnisse erkennen, die beim Betrachten der Rohform nicht möglich wären. Menschen sehnen sich nach Erzählungen und Visualisierungen, die es uns ermöglichen, eine Geschichte aus unseren Datenspeichern herauszuholen.

Der Ausdruck „Ein Bild sagt mehr als tausend Worte“ trifft ausdrücklich zu, wenn riesige Datenstapel in Bilder umgewandelt werden, die ein Betrachter tatsächlich verstehen und daraus eine Bedeutung ableiten kann. Kindergeschichtenbücher enthalten viele Bilder, aber nur sehr wenige Wörter. Als Kinder kennen wir nicht viele Wörter, aber die Bilder ermöglichen es uns, die Geschichte leicht zu verstehen.

In unserer modernen digitalen Welt haben wir riesige Datenmengen um uns herum. Datenwissenschaftler und ML-Ingenieure erhalten die meisten Daten, die sie verarbeiten, in einem strukturierten oder unstrukturierten Datenformat. Für Menschen ist es jedoch schwierig, dies zu verstehen und zu analysieren. Datenvisualisierungen (oder grafische Darstellungen von Daten) sind für das Verständnis der Daten von entscheidender Bedeutung. Sie helfen Benutzern, Daten durch visuelle Elemente wie Diagramme, Grafiken, Diagramme, Karten und andere Visualisierungen zu untersuchen.

Verschiedene Arten der explorativen Datenanalyse

In jedem Datensatz gibt es viele Variablen (auch genannt) Merkmale, Eingabevariablen oder unabhängige Variablen) und Ziel- / Ausgabevariablen (auch als Bezeichnungen, abhängige Variablen, Klassen oder Klassenbezeichnungen bezeichnet). Die Aufgabe des Datenwissenschaftlers besteht darin, jedes Merkmal einzeln und die Beziehung zwischen verschiedenen Merkmalen vollständig zu verstehen. Ziel ist es, den Datensatz für die Implementierung von ML-Algorithmen vorzubereiten.

Wir haben drei Methoden zur explorativen Datenanalyse:

Univariate Analyse

Bei der univariaten Analyse wird jede Variable einzeln analysiert. Sie erhalten die vollständigen statistischen Daten für jedes Feature. Es gibt eine Vielzahl von Datenvisualisierungstechniken für die univariate Analyse, einschließlich Box Plot, Histogramm, PDF, CDF

Bivariate Analyse

Eine bivariate Analyse wird durchgeführt, um die Beziehung zwischen jedem Merkmal mit der Zielvariablen zu ermitteln . Datenvisualisierungstechniken für die bivariate Analyse sind Scatter Plot und Heatmap

Multivariate Analyse

Wie der Name schon sagt, wird eine multivariate Analyse durchgeführt, um die Beziehung zwischen verschiedenen Merkmalen des Datensatzes zu verstehen . Eine der wichtigsten Techniken zur Visualisierung multivariater Analysedaten ist das Pair Plot .

Wir werden alle diese Visualisierungstechniken im nächsten Abschnitt ausführlich diskutieren.

Datenvisualisierung in Python

gibt es Eine Vielzahl von Bibliotheken, mit denen Sie Python-Datenvisualisierungen erstellen können, darunter Matplotlib, seaborn, Plotly und andere. Eine Python-Datenvisualisierung hilft einem Benutzer, Daten auf verschiedene Arten zu verstehen: Verteilung, Mittelwert, Median, Ausreißer, Schiefe, Korrelation und Ausbreitungsmessungen. Um zu sehen, was Sie mit einer Python-Visualisierung tun können, versuchen wir es mit einem Datensatz.

Erstellen von Python-Visualisierungen

Nehmen wir einen Spielzeugdatensatz mit Daten zu Irisblumen, um die Datenvisualisierungen genauer zu verstehen. Der Datensatz besteht aus 50 Proben von jeder der drei Arten von Irisblüten: Setosa, Virginica und Versicolor. Hier ist "Species" eine Zielvariable und verfügt über 4 Funktionen: "Sepal Length", "Sepal Width", "Petal Length" und "Petal Width".

Import Libraries

Importieren Sie zuerst grundlegende Bibliotheken wie Numpy und Pandas und Python-Datenvisualisierungsbibliotheken wie matplotlib und seaborn.

Pandas als pd importieren
numpy als np importieren
matplotlib.pyplot als pltimport seaborn als sns importieren

Den Datensatz verstehen

Laden Sie als Nächstes den Datensatz aus sklearn-Bibliotheken:

aus sklearn.datasets import load_iris
iris = load_iris ()

Konvertieren Sie diesen Datensatz in einen Datenrahmen. Hier sind die oberen 5 Zeilen mit 4 Merkmalen (Sepal Length, Sepal Width, Petal Length) , Blütenblattbreite) und eine Zielvariable (Art).

Kelchblattlänge Kelchblattbreite Blütenblattlänge Blütenblattbreite Art
0 5.1 3.5 ] 1,4 0,2 setosa
1 4,9 3 1,4 0,2 se tosa
2 4,7 3,2 1,3 0,2 setosa
3 4,6 3,1 1,5 0,2 setosa [19659045] 4 5 3.6 1.4 0.2 setosa

Hier ist der Code dafür:

print (data.shape) #print Anzahl der Zeilen und Spalten
> (150, 5)

print (data ['Species'] .value_counts ()) # Anzahl aller eindeutigen Artenwerte
> virginica 50
versicolor 50
setosa 50
Name: Arten , dtype: int64

Beobachtungen: Aus den obigen Ergebnissen geht hervor, dass es insgesamt 150 Datenpunkte gibt und die Daten gleichmäßig auf 3 Arten verteilt sind. Wir können also sagen, dass dies ein ausgeglichener Datensatz ist.

Balkendiagramm

Ein Balkendiagramm ist ein Diagramm, das kategoriale Daten mit rechteckigen Balken darstellt. Die Länge oder Höhe der Balken ist proportional zur Häufigkeit der Kategorie. Wir können die Werte verschiedener Kategorien mithilfe von Balkendiagrammen zählen.

Hier zeichnen wir die Häufigkeit der drei Arten im Iris-Datensatz auf.

sns.countplot ('Species', data = data)
plt .title ('Balkendiagramm für 3 Arten')
plt.show ()

Beobachtungen:

  • Alle Balken haben dieselbe Höhe, da wir wissen, dass ihre Frequenzen gleich sind.
  • Der Iris-Datensatz ist ausgeglichen Datensatz.

Kreisdiagramm

Kreisdiagramm ist ein kreisförmiges Diagramm, das Kreisschnitte verwendet, um die relative Größe der Daten anzuzeigen. Die Bogenlänge jedes Tortenstücks ist proportional zu der Menge, die es darstellt. Es funktioniert wunderbar mit kategorialen Werten. Es sind verschiedene Varianten von Kreisdiagrammen verfügbar.

Mit diesem Code können wir ein Kreisdiagramm für 3 Arten von Irisblüten zeichnen:

Daten ['Species'] .value_counts (). Plot.pie (explode = [0.05,0.05,0.05] , autopct = '% 1.1f %%', shadow = True, figsize = (8,8))
plt.title ("Tortendiagramm der Arten")
plt.show ()

Beobachtungen:

  • Alle drei Blumen sind im Verhältnis gleich, dh jeweils 33%.
  • Ausgeglichene und unausgeglichene Datensätze können einfach anhand eines Kreisdiagramms klassifiziert werden.

Box-Plot

Box-Plot gibt uns eine Zusammenfassung mit fünf Zahlen einer Variablen: das Minimum, Maximum, der Stichprobenmedian, das erste und dritte Quartil. Box-Plot hilft bei der Messung von zwei Beobachtungen:
1. Schiefe der Verteilung
2. Ausreißer (Ausreißer kommen außerhalb des Box-Plots)

sns.boxplot (x = 'Blütenblattlänge', Daten = Daten)
plt.title ('Boxplot der Blütenblattlänge')
plt.show ()

Beobachtungen: Mit der obigen Box-Plot-Visualisierung können wir die folgenden Parameter messen:

  • Das Minimum ist 1,0
  • Das Maximum ist 6,9
  • Der Bereich ist Maximum – Minimum = 5,9
  • Der Stichprobenmedian beträgt 4,3
  • Das erste Quartil Q1 beträgt 1,6
  • Das dritte Quartil Q3 beträgt 5,1
  • Der IQR (Interquartilbereich) beträgt Q3-Q1 = 3,5
  • Der Mittelwert liegt zwischen 3,5 und 4
  • In diesem Box-Plot gibt es keinen Ausreißer .
  • Die Blütenblattlänge ist linksgerichtet. .

Wir können auch einen Box-Plot für 'Blütenblattlänge] zeichnen 'für alle drei verschiedenen Arten in einer einzigen Parzelle.

sns.boxplot (x =' Spezies ', y =' Blütenblattlänge ', Daten = Daten)
plt.title (' Boxplot der Blütenblattlänge für 3 Arten " ')
plt.show ()

Beobachtungen : [19659090] Die Blütenblattlänge von Setosia ist die kleinste von allen dreien.

  • Virginica hat die größte Blütenblattlänge.
  • In Versicolor gibt es einen Ausreißer.
  • Ebenso können wir Box-Plots auch für andere Merkmale zeichnen.

    Histogramm und PDF

    Ein Histogramm ist eine grafische Darstellung der Verteilung numerischer Daten. Es ist eine Schätzung der Wahrscheinlichkeitsverteilung einer kontinuierlichen Variablen. Das Histogramm repräsentiert im Wesentlichen die Anzahl der Punkte, die für jeden Behälter vorhanden sind (Wertebereich). PDF ist eine Wahrscheinlichkeitsdichtefunktion die im Wesentlichen das Histogramm glättet.

    sns.FacetGrid (Daten, Farbton = "Spezies", Größe = 5)
    .map (sns.distplot, "Blütenblattlänge")
    .add_legend ();
    plt.title ('Histogramm und PDF der Blütenblattlänge')
    plt.show ();

    Beobachtungen:

    In der obigen Grafik sind die gezeichneten Linien PDF und die gezeichneten Balken ein Histogramm. Aus der obigen Grafik können wir einfach if-else-Aussagen wie folgt schreiben:

    Wenn die Blütenblattlänge < 2.3 then flower species is Setosia else-if Petal Length > 5,8, dann ist die Blütenart Verginica, wenn 2,3 <Blütenblattlänge <3,8, dann ist die Blume Versicolor.

    Die Wahrscheinlichkeit kann mit diesen if-else-Anweisungen leicht berechnet werden. Deshalb wird dieser Graph als Wahrscheinlichkeitsdichtefunktion bezeichnet.

    • Setosa ist auf der Grundlage der Blütenblattlänge leicht trennbar.
    • Es gibt eine Überlappung zwischen Versicolor und Virginia.
    • Verteilungen sind gleichmäßige / Gaußsche Verteilung.

    CDF (Cumulative Density Function)

    Wie der Name schon sagt, gibt Ihnen die kumulative Verteilungsfunktion die kumulative Wahrscheinlichkeit, die einer Variablen zugeordnet ist. Es ist die Gesamtzahl bis zu einer bestimmten Anzahl. CDF ist immer in aufsteigender Reihenfolge

    data_cdf = data [data['Species']
    zählt, bin_edges = np.histogram (data_cdf ['Petal Length'] bins = 10, Dichte = True)
    pdf = Anzahl / (Summe (Anzahl))
    cdf = np.cumsum (pdf)
    plt.plot (bin_edges [1:] pdf)
    plt.plot (bin_edges [1:] cdf)
    plt.xlabel ("Blütenblattlänge")
    plt.ylabel ("Wahrscheinlichkeit")
    plt.title ('PDF und CDF für Blütenblattlänge für Setosa')

    Beobachtungen: [19659006] In der obigen Grafik ist die blaue Linie PDF und die orange Linie CDF.

    • Aus CDF lassen sich leicht Prozentsätze berechnen, bei denen etwa 90% der Setosa-Blüten eine Blütenblattlänge von weniger als 1,7 haben, was nicht mit PDF berechnet werden kann.
    • Ungefähr 50% der Setosa-Blüten haben eine Blütenblattlänge von weniger als 1,5.

    Streudiagramme

    Ein Streudiagramm ist ein Diagramm, das die Beziehung zwischen zwei Variablen eines Datensatzes zeigt.

    data.plot (kind = 'Scatter', x = 'Sepal Length', y = 'Sepal Width') ;
    plt.title ("Streudiagramm von Sepallänge und Sepalbreite")
    plt.show ()

    Beobachtungen:

    In der obigen Darstellung können wir nicht alle verschiedene Blumen unterscheiden Punkte haben dieselbe Farbe.

    sns.set_style ("whitegrid");
    sns.FacetGrid (data, hue = "Species", size = 4)
    .map (plt.scatter, " Sepal Length "," Sepal Width ")
    .add_legend ();
    plt.title (" Streudiagramm von Sepal Length und Sepal Width ")
    plt.show ();

    Beobachtungen:

    • Setosa (blau) ist leicht zu unterscheiden [19659078] Versicolor und Virginica überlappen sich auch in Sepal Length und Sepal Width. Sie sind nicht leicht zu trennen.

    Heatmap

    Eine Heatmap ist eine grafische Darstellung von Daten, in denen Datenwerte als Farben dargestellt werden. Es verwendet Farbe, um die Korrelation zwischen zwei Variablen zu kommunizieren. Die Werte liegen zwischen -1 und 1. 1 bedeutet perfekte positive Korrelation. 0 bedeutet keine Korrelation und -1 bedeutet die höchste negative Korrelation.

    Zeichnen wir eine Wärmekarte für den Iris-Datensatz.

    sns.heatmap (data.corr (), annot = True)

    Beobachtungen:

    • Blütenblattlänge und Blütenblattbreite zeigen höchste positive Korrelation 0,96 [19659078] Die Blütenblattlänge zeigt eine hohe positive Korrelation von 0,87 mit der Kelchblattlänge.
    • Die Blütenblattbreite zeigt eine hohe positive Korrelation von 0,82 mit der Kelchblattlänge.
    • Blütenblattlänge und Kelchblattbreite zeigen eine negative Korrelation von -0,43 [19659078] Die Sepalbreite zeigt eine negative Korrelation mit den anderen drei Merkmalen.

    Liniendiagramm

    Das Liniendiagramm repräsentiert eine Reihe von Datenpunkten, die durch eine gerade Linie verbunden sind. Es wird im Allgemeinen verwendet, um Daten zu visualisieren, die sich im Laufe der Zeit ändern. Hier zeichnen wir ein Liniendiagramm, das zeigt, wie sich die Blütenblattbreite mit der Änderung der Blütenblattlänge ändert.

    Beobachtungen:

    • Große Blütenblattlänge bedeutet große Blütenblattbreite
    • Das Liniendiagramm ist nicht gerade; es schwankt.
    • Kleine Blütenblattlänge bedeutet kleine Blütenblattbreite

    Wortwolke

    Wortwolke ist ein Bild aus Wörtern, das eine schnelle Visualisierung ermöglicht. Die Größe des Wortes zeigt die Häufigkeit des Wortes in Textdaten. Das größte Wort hat die höchste Häufigkeit in Textdaten. Hier erfahren Sie alles über NLP und Visualisierungen.

     SQL, Python und R

    R ist extrem einfach und flexibel mit minimalem Code zum Erstellen von Visualisierungen zu verwenden. R verfügt über eine Vielzahl von Bibliotheken, mit denen Sie wunderschöne Datenvisualisierungen erstellen können, darunter ggplot2, Plotly und andere. Um zu sehen, was Sie mit der R-Visualisierung tun können, versuchen wir einige Visualisierungen für denselben Spielzeugdatensatz.

    Bibliotheken importieren

    Importieren Sie zuerst die Datenvisualisierungsbibliothek ggplot2 und die eingebauten Datensätze Bibliotheksdatensätze.

    Bibliothek (ggplot2) ) Bibliothek (Datensätze)

    Grundlegendes zum Datensatz mit R

    Laden Sie als Nächstes den eingebauten Iris-Datensatz aus der Bibliothek und analysieren Sie die Daten.

    Hier sind die obersten 6 Zeilen im Iris-Datensatz mit 4 Funktionen (Sepal.Length, Sepal.Width, Petal.Length, Petal.width) und eine Zielvariable (Species).

    Sepal.Length Sepal.Width Petal.Length Petal.Width [19659035] Spezies
    1 5,1 3,5 1,4 0,2 setosa
    2 4,9 3 1,4 0,2 setosa
    3 4,7 3,2 1,3 0,2 setosa
    4 4,6 3,1 1,5 0,2 setosa [19659045] 5 [19659040] 5 3,6 1,4 0,2 setosa
    6 5,4 3,9 1,7 0,4 setosa

    Hier ist der Code dafür :

    dim (Iris) #print Anzahl der Zeilen und Spalten
    > (150, 5)
    Ebenen (Iris $ Species) # Einzigartigen Species-Wert anzeigen
    > [1] "setosa" "versicolor "" virginica "
    Tabelle (iris $ Species)> setosa versicolor virginica 50 50 50

    Beobachtungen: Aus den obigen Ausgaben können wir sehen, dass es insgesamt 150 Datenpunkte gibt und Daten sind gleichmäßig auf 3 Arten verteilt. Wir können also sagen, dass dies ein ausgewogener Datensatz ist.

    Box-Plot

    Wie wir in Python-Box-Plots sehen, hilft auch in R Box-Plot bei der Messung von zwei Beobachtungen:
    1. Schiefe der Verteilung
    2. Ausreißer (Ausreißer fallen außerhalb des Box-Plots)

    Wir haben Box-Plot für 'Petal Width' für alle drei verschiedenen Arten in einem einzigen Plot gezeichnet.

    ggplot (Iris, aes (Species, Petal.Width, fill = Spezies)) + geom_boxplot () + labs (title = "Boxplot für Irisblütenbreite für alle Spezies", x = "Spezies"

    Beobachtungen:

    • Die Blütenblattbreite von Setosa ist die kleinste von allen dreien. [19659078] Virginica hat die größte Blütenblattbreite.
    • Es gibt Ausreißer in Setosa.
    • Die Blütenblattbreite ist links schief .

    Histogramm

    Sie können verwenden Mit dem folgenden R-Code können Sie ein Histogramm für die Blütenblattlänge zeichnen, um die Anzahl der Punkte zu ermitteln, die für jeden Behälter vorhanden sind (Wertebereich):

    ggplot (Daten = Iris, aes (x = Blütenblattlänge)) +
    Geom_histogram (binwidth = 0.2, color = "black", aes (fill = Species)) +
    xlab ("Petal Length") +
    ylab ("Frequency") +
    ggtitle ("Histogram of Blütenblattlänge ")

    Beobachtungen: [19659006] Die Balken in der obigen Grafik bilden ein Histogramm. Die hier gemachten Beobachtungen sind die gleichen wie die, die wir aus dem Histogramm in Python gezogen haben:

    • Setosa ist auf der Grundlage der Blütenblattlänge leicht trennbar.
    • Es gibt eine Überlappung zwischen Versicolor und Virginia.
    • Verteilungen sind einheitlich / Gaußsche Verteilung.

    Streudiagramme

    Ein Streudiagramm ist ein Diagramm, das die Beziehung zwischen zwei Variablen eines Datensatzes zeigt. Mit diesem Code können Sie für alle drei Arten in R ein Streudiagramm zwischen Blütenblattlänge und Blütenblattbreite zeichnen:

    ggplot (Daten = Iris, aes (x = Blütenblattlänge, y = Blütenblattbreite)) + xlab (“ Blütenblattlänge ”) + ylab (“ Blütenblattbreite ”) + geom_point (aes (Farbe = Art, Form = Art), Größe = 2) + ggtitle (“ Streudiagramm Blütenblattlänge gegen Blütenblattbreite ”)

    Beobachtungen: [19659077] Setosa (rot) ist leicht zu unterscheiden.

  • Versicolor und Virginica überlappen sich in Blütenblattlänge und Blütenblattbreite geringfügig. Diese beiden können anhand von Blütenblattlänge und Blütenblattbreite fast unterschieden werden.
  • Abbildung der Möglichkeiten von Datenvisualisierungen

    In unserer modernen Welt von Big Data sind Datenvisualisierungen erforderlich. Sie können Datenwissenschaftlern und Geschäftsanwendern an vorderster Front buchstäblich eine Richtung und eine Vision geben. Dieser Artikel enthält nur eine Auswahl der verschiedenen Visualisierungen, die Sie in Python und R erstellen können, sowie den Code für den Einstieg.

    Hoffentlich fanden Sie diese leicht zu verstehen und zu implementieren. Die Möglichkeiten, Daten zu visualisieren, sind endlos. Dies ist nur ein Anfang. Sowohl Python-Visualisierungen als auch R-Visualisierungen bieten Ihnen eine Vielzahl von Optionen zum Erkunden. Nehmen Sie einfach Ihre Daten und beginnen Sie zu experimentieren. Sie werden begeistert sein von den schönen, informativen Bildern, die Sie erstellen können.

     Sisense für Cloud-Datenteams

    Scott Castle leitet den Geschäftsbetrieb bei Sisense, um die Produktivität und das Wachstum durch skalierbare Infrastrukturen und Prozesse zu steigern. Zuvor hatte er Führungspositionen in den Bereichen Analytics und Operations inne, darunter die Einführung der ersten bezahlten SaaS-Angebote des Unternehmens bei Square und die Unterstützung des Börsengangs von Tremor Video im Jahr 2013. Scott ermöglicht unsere datengesteuerte Kultur, indem er Erkenntnisse nutzt, um umsetzbare Entscheidungen zu treffen, indem er Marketing und Vertrieb fortlaufend überprüft und Leistungskennzahlen für den Kundenerfolg.

    About BusinessIntelligence

    Check Also

    Wie erstelle ich ein erfolgreiches Online-Magazin?

    Die Wahrnehmung digitaler Medien durch Menschen hat sich aufgrund mobiler Geräte geändert. Smartphones und Tablets …

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.