DataScience

Download

Auf dediziertem Server in diesem Fall Debian, möglichst einfachen, wartbaren Pythonscripten übergreifend die Pythondistribution Anaconda. Zum Scrapen nehme ich die Python-Library Requests.

Ich nehme SQLite, weil es unglaublich lightweight ist und ich nur ein einziger User bin.

Parsing

Die Rohdaten-Datenbanken werden dann auf einen anderen Rechner kopiert, Download und Parsing in demselben Schritt abzuhandeln.

Hier verwende man weitere Pythonscripte, die die ganzen heruntergeladenen Daten aus den Rohdaten-SQLite-Files laden und alles in eine tatsächlich tabellarische Form parsen. Die geparsten, nun tabellarischen Daten wandern in eine weitere Datenbank (bei mir in diesem Fall auch SQLite). Die Scripte dürfen komplexer sein, hier darf ja auch mal was schief gehen, denn im Zweifel wird einfach neu geparst.

Zusammenführen, erweitern, Bereinigung

Gibt es mehrere Tabellen mit geparsten Daten, kann es notwendig werden, verschiedene zusammengeführte Datensätze aus diesen zu erstellen. Vor dem Zusammenführen müssen grundsätzlich alle Spalten aller Tabellen mal untersucht werden darauf, was für Werte sie überhaupt annehmen, was für Löcher darin sind, und ob offensichtliche Anomalien darin sind. Es lohnt sich in diesem Schritt außerdem, formelle Annahmen (Assertions) auf die Daten einzuführen, so dass die Scripte crashen, wenn die Daten anders aussehen, als man annimmt. Maßgebliche Tools hier sind Pythonscripte in Form von Jupyter Notebooks, sowie die Python-Library Pandas.

Die fertigen Zieldatensätze für die Analyse kann man dann je nach dem, was man damit vorhat, in spezialisierten Formaten speichern. Will ich z.B. mit einem externen Visualisierungstool ran, nehme ich oft CSV, das ist aber in jeder Hinsicht ineffizient. Bei Datensätzen, die ich sowieso nur wieder in einem anderen Jupyter Notebook in einen Pandas DataFrame importiere, Feather. Liest und schreibt sich unglaublich flott.

Analyse und Exploration

Ein Jupyter Notebook pro größerer Analyse. Mache viel mit Pandas selbst, insbesondere für die erste Exploration. Pandas bietet auch nette, einfache Plotting-Mechanismen aus Basis von Matplotlib. Ansonsten lohnt sich natürlich auch Matplotlib selbst und darauf aufbauend Seaborn.

Wenn es Machine Learning-Anteile im Projekt gibt, nutze ich SciKit-Learn und für Deep Learning Keras auf Basis von TensorFlow (ich habe eine dicke GPU für sowas).

Für große und kleine Graphen (wie z.B. meinen riesigen Graphen der Spiegelthemen) eignet sich das Gratistool Gephi.

Bis hier war alles kostenfrei, an kostenpflichtigen Tools ist Tableau nett für die Visualisierung. Es kann natürlich weniger als wenn ihr selbst mit Matplotlib coded, aber ihr kommt wesentlich schneller an Ergebnisse. Tableau ist gut zum visualisieren, aber ungeeignet für die Analytik selbst. Weiter ist SAS JMP ein tolles Tool. Es kann nicht nur Visualisierung, sondern auch Analytik in nahezu jeder Form, ist aber teurer.

Die Datenvisualisierung ermöglicht es uns, die Daten mit Hilfe von Illustrationen, Diagrammen, beschreibendem Text und ansprechendem Design anders darzustellen. Durch die Visualisierung können wir die Daten auch nach Kategorien und Themen gruppieren und organisieren, wodurch sie leichter in verständliche Teile zerlegt werden können.

Wenn Sie Rohdaten manuell durchforsten würden, könnte es ewig dauern, bis Sie Muster, Trends oder Ausreißer erkennen. Wenn Sie jedoch Datenvisualisierungstools wie Diagramme verwenden, können Sie eine große Menge an Daten schnell durchsehen.   Noch besser: Mit Diagrammen können Sie Trends viel schneller erkennen, als wenn Sie sich durch Zahlen wühlen würden.  Hier sehen Sie zum Beispiel ein einfaches Diagramm, das von Google Search Console erstellt wurde und die Entwicklung der Google-Suche nach “Toilettenpapier” zeigt. Wie Sie sehen können, gab es im März 2020 einen enormen Anstieg der Suchanfragen nach Toilettenpapier

Daten-Binning

Daten-Binning, auch diskretes Daten-Binning oder Daten-Bucketing genannt, ist eine Datenvorverarbeitungstechnik, die verwendet wird, um die Auswirkungen kleinerer Beobachtungsfehler zu reduzieren. Die ursprünglichen Datenwerte, die in ein bestimmtes kleines Intervall, einen Bin, fallen, werden durch einen für dieses Intervall repräsentativen Wert ersetzt, oft einen Zentralwert (Mittelwert oder Median). Es hängt mit der Quantisierung zusammen: Das Binning der Daten erfolgt auf der Abszissenachse, während die Quantisierung auf der Ordinatenachse erfolgt. Binning ist eine Verallgemeinerung des Rundens.

 

Das Binning statistischer Daten ist eine Möglichkeit, eine Anzahl mehr oder weniger kontinuierlicher Werte in einer kleineren Anzahl von „Bins“ zu gruppieren. Wenn Sie beispielsweise über Daten zu einer Gruppe von Personen verfügen, möchten Sie deren Alter möglicherweise in eine kleinere Anzahl von Altersintervallen einteilen (z. B. alle fünf Jahre gruppieren). Es kann auch in multivariaten Statistiken verwendet werden, um mehrere Dimensionen gleichzeitig zu klassifizieren.

 

In der digitalen Bildverarbeitung hat „Binning“ eine ganz andere Bedeutung. Beim Pixel-Binning werden Blöcke benachbarter Pixel in einem Bild kombiniert, indem ihre Werte während oder nach dem Auslesen summiert oder gemittelt werden. Es reduziert die Datenmenge; auch der relative Geräuschpegel im Ergebnis ist geringer.

 

Beispielverwendung

Histogramme sind ein Beispiel für Daten-Binning, das verwendet wird, um zugrunde liegende Häufigkeitsverteilungen zu beobachten. Sie treten typischerweise im eindimensionalen Raum und in gleichen Abständen auf, um die Visualisierung zu erleichtern.

 

Datenbinning kann verwendet werden, wenn kleine instrumentelle Verschiebungen in der spektralen Dimension aus Massenspektrometrie- (MS) oder Kernspinresonanzexperimenten (NMR) fälschlicherweise als Darstellung unterschiedlicher Komponenten interpretiert werden, wenn eine Sammlung von Datenprofilen einer Mustererkennungsanalyse unterzogen wird. Eine einfache Möglichkeit, dieses Problem zu lösen, besteht in der Verwendung von Binning-Techniken, bei denen die Auflösung des Spektrums ausreichend reduziert wird, um sicherzustellen, dass ein bestimmter Peak trotz kleiner spektraler Verschiebungen zwischen den Analysen in seinem Bin verbleibt. Beispielsweise kann in der NMR die chemische Verschiebungsachse diskretisiert und grob klassiert werden, und in der MS können die spektralen Genauigkeiten auf ganzzahlige Atommasseneinheitswerte gerundet werden. Außerdem verfügen mehrere Digitalkamerasysteme über eine automatische Pixel-Binning-Funktion, um den Bildkontrast zu verbessern.

 

Binning wird auch beim maschinellen Lernen verwendet, um die Entscheidungsbaum-Boosting-Methode für die überwachte Klassifizierung und Regression in Algorithmen wie Microsofts LightGBM und scikit-learns Histogram-based Gradient Boosting Classification Tree zu beschleunigen.

Datenbindung (Data Binding) ist der Prozess, der zwei Datenquellen miteinander koppelt und synchronisiert. Bei der Datenbindung wird eine Änderung an einem Element in einem Datensatz automatisch in dem gebundenen Datensatz aktualisiert.

Datenbindung kann aus vielen Gründen verwendet werden, zum Beispiel um die Benutzeroberfläche einer Anwendung und die darin angezeigten Daten für die Dateneingabe und die Berichterstellung zu verknüpfen. Außerdem können Internetnutzer die Darstellung von Daten in den Elementen einer Webseite manipulieren, ohne dass eine komplizierte Programmierung oder Skripterstellung erforderlich ist.

Bei der Datenbindung können Daten und Datenobjekte mit unterschiedlichen logischen Funktionen miteinander verbunden werden. Es können auch Datentypen mit unterschiedlichen Sprachen verbunden werden, zum Beispiel die Datenbindung von Extensible Markup Language (XML) und User Interface (UI).

Jede Datenänderung in einem Datensatz spiegelt sich automatisch in dem anderen gebundenen Datensatz wider. In der Bindungssyntax ist die Datenquelle der Datenanbieter (Data Provider) und der zweite Datensatz der Datenkonsument (Data Consumer). Die Bindung stellt die Verbindung zwischen dem Datenanbieter und dem Datenkonsumenten her und ermöglicht die Verbindung zwischen den Daten des visuellen Elements und einer Datenquelle.

Durch die Datenbindung entfällt die Notwendigkeit der Manipulation des Document Object Model (DOM). DOM ist eine Programmierschnittstelle (API) für Hypertext Markup Language (HTML) und XML.

Welche Arten der Datenbindung gibt es?

Die Arten von Datenbindungen werden in der Regel durch ihren Datenfluss definiert und umfassen:

  • Eine Einweg-Bindung (One Way Binding) ist eine einfache Art der Datenbindung. Änderungen am Datenanbieter werden automatisch im Datensatz des Datenkonsumenten aktualisiert, aber nicht umgekehrt.
  • Eine Zwei-Wege-Bindung (Two Way Binding) werden Änderungen entweder beim Datenanbieter oder beim Datenkonsumenten automatisch im jeweils anderen aktualisiert.
  • Eine einseitige Bindung an die Datenquelle ist das Gegenteil der einseitigen Bindung. Änderungen am Datenkonsumenten aktualisieren automatisch den Datenanbieter, aber nicht umgekehrt.
  • Bei der einmaligen Bindung werden Änderungen am Datenlieferanten nicht automatisch beim Datenkonsumenten aktualisiert. Dieser Ansatz ist nützlich, wenn nur eine Momentaufnahme der Daten benötigt wird und die Daten statisch sind.

Wie man Datenbindung verwendet

Die Datenbindungsarchitektur besteht aus Datenquellenobjekten (Data Source Objects, DSOs), die Informationen für angezeigte Seiten bereitstellen. DSOs liefern auch Informationen an Datenkonsumenten, die die DSO-Informationen anzeigen, und Agenten, die sicherstellen, dass die Daten zwischen den DSOs und den Konsumenten synchronisiert werden.

In einem Windows .NET-Framework sind sowohl einfache als auch komplexe Datenbindungsoptionen verfügbar. Die einfache Datenbindung ist so konfiguriert, dass ein Steuerelement in der Benutzeroberfläche an den Datenwert aus der Datenquelle gebunden ist.

Windows Presentation Foundation in .NET verwendet Datenbindung, indem es die Eigenschaften von Zielobjekten und Datenquellen, einschließlich Common Language Runtime, Language Integrated Query und XML-Objekten, miteinander verbindet. Es werden auch Datenvorlagen bereitgestellt, um die Präsentation von Daten zu steuern.

Datenbindungsbibliotheken ermöglichen es Benutzern, UI-Komponenten in einem deklarativen Format an Datenquellen zu binden. Diese Bibliotheken stellen auch Klassen und Methoden zur Verfügung, mit denen sich Änderungen an Daten beobachten lassen. Folglich sind Sammlungen, Felder und Objekte besser sichtbar.

Beispiele für Datenbindung

Die folgenden Beispiele zeigen, wie Datenbindung verwendet werden kann:

  • Reporting. Die Bindung ist eine gängige Methode zur Erstellung von Berichten, die Daten aus einer Datenquelle auf einem Bildschirm oder Drucker anzeigen.
  • Dateneingabe. Die Datenbindung ist auch eine gängige Methode, um große Datenmengen einzugeben und sie mit einer Datenquelle zu synchronisieren und zu aktualisieren.
  • Lookup-Tabellen. Dies sind Informationstabellen, die normalerweise Teil größerer Datenanzeigen sind. Datenbindung und Steuerelemente werden zur Anzeige und Änderung von Daten verwendet.
  • Master-Detail-Formate. Dies ist ein Modell für Kommunikationsprotokolle, bei denen ein Gerät oder Prozess ein anderes steuert. Bei diesen Formaten können zwei Datentabellen miteinander verbunden sein.

Tools für Datenbindung

Datenbindungs-Tools sind unter anderem:

  • Visual Studio ist ein Microsoft-Produkt, das Design-Tools für die Arbeit mit benutzerdefinierten Objekten als Datenquelle in Anwendungen bietet. Visual Studio wird auch zum Binden von UI-Steuerelementen verwendet. An Objekten vorgenommene Änderungen werden automatisch in einer Datenbank vorgenommen.
  • Data Binding Library ist eine Support Library für Android-Entwickler, die UI-Komponenten an Datenquellen bindet.
  • Google Web Toolkit ist ein Open Source Tool von Google, mit dem Webentwickler browserbasierte Java-Anwendungen erstellen und pflegen können, die als JavaScript bereitgestellt werden. Google Web Toolkit hat eine Funktion namens UiBinder, die die Erstellung von Benutzeroberflächen ermöglicht.
  • AngularJS ist ein Open-Source-JavaScript-Web-Framework, das die Entwicklung von Single-Page-Anwendungen erleichtert. Das Framework verwendet HTML und Zwei-Wege-Datenbindung, um Datenanbieter oder Datenkonsumenten automatisch zu synchronisieren. Seit dem 1. Januar 2022 gibt Google keine Updates mehr für AngularJS heraus und hat den langfristigen Support eingestellt.

Die Datenbindung kann einfach oder komplex sein. Microsoft definiert einfache Datenbindung als die Fähigkeit, an ein einzelnes Datenelement zu binden. Eine komplexe Datenbindung liegt vor, wenn mehrere Elemente miteinander verbunden sind.