Suchen

Data Science

IoT-Basics: Die Technologie-Basis von Big Data

Seite: 4/5

Wenn ein Google AlphaGo den weltbesten Go-Spieler deklassiert oder wenn ein Google Car den Passagier ohne aktive Fahrerunterstützung hoffentlich sicher an sein Ziel bringt, dann ist immer auch Maschinelles Lernen (engl.: Machine Learning) mit im Spiel. Ein solcher Learning-Algorithmus durchsucht Daten nach zuvor erlernten Mustern und führt dann die dazu passenden Aktionen automatisch aus.

Machine-Learning-Algorithmen müssen dazu erst trainiert werden, d.h., das System muss lernen, mit bestimmten Eingangsdaten bestimmte Ausgangsaktionen zu verknüpfen. Man unterscheidet dabei verschiedene Kategorien des Lernens:

  • Beim überwachten Lernen soll das System aus einem Satz von beispielhaften Eingangs- und dazugehörigen bekannten Ausgangswerten Regeln ableiten, die dann aus beliebigen Eingangswerten die passenden Ausgangswerte berechnen.
  • Beim unüberwachten Lernen gibt es keine Unterscheidung von Eingangs- und Ausgangswerten; der Algorithmus soll vielmehr in den Daten bestimmte Muster und Strukturen erkennen und daraus neues Wissen ableiten, z.B. indem er die Daten in bestimmte Cluster gruppiert, sodass bestimmte Zusammenhänge sichtbar werden.
  • Beim bestärkenden Lernen versucht das System Aufgaben zu meistern und lernt aus den dabei gemachten positiven und negativen Erfahrungen weiter hinzu.

Bei der Realisierung dieser Lernverfahren kommen verschiedenste Methoden zum Einsatz, deren Erklärungen aber den Rahmen dieses Beitrags sprengen würden. Die bekanntesten Vertreter dieser Verfahren sind Künstliche Neuronale Netze, Regressionsalgorithmen, Entscheidungsbäume, Bayesian-Methoden und Clustering-Algorithmen. Der Reiz des Maschinellen Lernens liegt auch darin, dass dafür häufig keine riesigen Datenmengen benötigt werden. Viel wichtiger ist, dass die Qualität der Eingangsdaten sorgfältig untersucht und gegebenenfalls bereinigt wird, damit die Algorithmen nicht falsch trainiert werden.

Programmiersprachen für Data Scientists

Big-Data-Lösungen sind auch Softwarelösungen, und man benötigt zu deren Implementierung entsprechende Programmiersprachen. Die Spannbreite der im Umfeld von Big Data eingesetzten Programmiersprachen und entsprechender integrierter Entwicklungsumgebungen (IDE) ist groß. Die Hadoop-Plattform selbst ist in der Programmiersprache Java implementiert, und auch individuelle MapReduce-Funktionen werden standardmäßig in Java erstellt. Die verbreitetste Standardumgebung zur Entwicklung von Java-Anwendungen allgemein ist nach wie vor die Open-Source-Lösung Eclipse IDE; dies gilt auch für Big-Data-Lösungen.

Es gibt aber inzwischen auch für viele andere Programmiersprachen entsprechende Software Development Kits (SDK), um damit MapReduce-Funktionen zu implementieren. Auch in Visual Studio von Microsoft lassen sich komfortabel MapReduce-Funktionen in der Programmiersprache C# implementieren und dann nach HDInsight deployen, der kommerziellen Bereitstellung der Hadoop-Plattform auf Microsoft Azure.

Oft eingesetzt wird auch R, eine besonders bei Statistikern beliebte Open-Source-Sprache. Da es eine riesige Anzahl an öffentlich zugänglichen Bibliotheken gibt, wird R besonders gern für das explorative Arbeiten verwendet, bei dem den Daten ihre Geheimnisse entlockt werden sollen. Mit der ebenfalls freien RStudio IDE kann man sich Schritt für Schritt in die Besonderheiten der Sprache einarbeiten und alle Bibliotheken und Funktionen interaktiv ausprobieren.

Ähnlich beliebt wie R ist Python. Für diese auch in Web-Anwendungen sehr häufig verwendete Skriptsprache gibt es inzwischen auch viele Bibliotheken zur Unterstützung bei der Datenanalyse. Python wird bevorzugt von Data Scientists eingesetzt, die eher aus dem Informatikumfeld kommen. Gegenüber R hat Python vor allem Stärken bei der Implementierung robuster Anwendungen, die in dauerhaft betriebene IT-Lösungen integriert sein müssen. Bei Python gibt es keine einzelne dominierende IDE wie bei R, aber durch entsprechende Erweiterungen lassen sich IDEs wie Eclipse oder Visual Studio auch leicht für die Programmierung mit Python nutzen.

Die objektorientierte Programmiersprache Scala wird vor allem im Umfeld von Spark eingesetzt, hier kann jedoch auch mit Java oder Python gearbeitet werden.

3.10 Interaktive Werkzeuge für Data Scientists und Power-User Ein großer Anteil der Arbeit eines Data Scientists ist explorativer Natur. Er stellt eine These auf und versucht sie anhand der vorliegenden Daten zu belegen oder er versucht anhand entdeckter statistischer Abhängigkeiten entsprechende Erklärungsmodelle aufzustellen. Neben leistungsfähigen kommerziellen Produkten gibt es auch eine Vielzahl bewährter Open-Source-Werkzeuge, die dieses explorative Arbeiten des Data Scientists unterstützen. Neben dem bereits erwähnten RStudio sind hier besonders KNime und RapidMiner zu erwähnen.

Data Scientists sind sehr gefragt, und dank des Booms um Big Data gibt es wohl zu wenige davon. Deshalb gibt es neben diesen Werkzeugen für den ausgebildeten Data Scientist auch mehr und mehr interaktive und stark grafisch orientierte Visualisierungswerkzeuge für den ambitionierten Power-User. Diese unterstützen ihn dabei, Informationen aus den vorhandenen Datenquellen herauszuziehen, ohne selbst ein ausgebildeter Statistiker zu sein. Prominente kommerzielle Beispiele dieses Genres sind Tableau, Qlikview oder Microsoft Excel.

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45181763)