Abo
  • IT-Karriere:

Machine-Learning-Pakete für Python

Die Installation von Paketen erfolgt mit dem Python-Packet-Installation-Tool pip, das bei Python schon dabei ist. Alternativ kann die Installation mit dem Anaconda Navigator, einem Tool mit grafischer Oberfläche, erfolgen. Anaconda und die wichtigsten davon unterstützen integrierten Entwicklungsumgebungen (IDEs) werden später im Artikel vorgestellt.

Pandas - das Standardpaket für Datenverwaltung

Stellenmarkt
  1. Vodafone GmbH, Frankfurt am Main
  2. Bechtle Onsite Services GmbH, Hechingen

Pandas ist eigentlich kein Machine-Learning-Paket, sondern ein Paket für Datenhaltung und Datenverarbeitung. Es enthält mächtige Datencontainer und Methoden, um auf Daten zuzugreifen und sie performant zu verarbeiten. Zu den wichtigsten Datencontainern bei Pandas zählt der Data Frame, den wir schon bei R kennengelernt haben, wobei der Data Frame bei Pandas nicht identisch mit dem in R, sondern im Großen und Ganzen funktional mit ihm vergleichbar ist. Bei fast allen Data-Science- beziehungsweise Machine-Learning-Projekten wird man Pandas verwenden. Eine umfangreiche Dokumentation gibt es auf der Pandas-Webseite.

Pandas kann mit pip mit diesem Einzeiler installiert werden:

pip install pandas

Scikit-learn - das Allrounder-Paket für Machine Learning

Scikit-learn ist das wohl bekannteste und beliebteste Paket für Machine Learning für Python und für Anfänger oft ein hervorragender Einstieg. Es verfügt über eine große Anzahl von Algorithmen von klassischer Statistik bis zu Machine Learning, darunter auch beliebte Algorithmen wie Random Forest und Neural Networks. Scikit-learn ist exzellent geeignet, um unterschiedlichste Machine-Learning-Algorithmen auszuprobieren. Seine Schwäche ist jedoch, dass GPUs nicht unterstützt werden, das heißt, bei großen Datenmengen und anspruchsvollen Algorithmen wie Multi-Layer Neural Networks (Deep Learning) sollte man sich andere Pakete ansehen.

Scikit-learn kann mit pip mit folgendem Befehl installiert werden:

pip install scikit-learn

Keras mit Tensorflow, CNTK und Theano

Google Tensorflow, Microsoft CNTK und Theano sind mächtige Deep Learning (Multi-Layer Neural Networks) Frameworks, die auch GPUs unterstützen, was bei diesen Deep-Learning-Algorithmen die Performance im Vergleich zu der CPU um ein Vielfaches steigern kann. Leider unterstützen sie nur CUDA-kompatible GPUs von NVidia. OpenCL (AMD, Intel) wird aktuell noch nicht oder nur sehr eingeschränkt über experimentelle Versionen unterstützt. Wer GPUs sinnvoll mit diesen Frameworks nutzen will, ist aktuell auf NVidia GPUs angewiesen. Dies gilt auch für viele andere Deep-Learning-Frameworks: Ein Support von OpenCL ist oft gar nicht oder nur sehr eingeschränkt vorhanden. Zu den drei Frameworks:

  • Theano scheint in jüngster Zeit an Wichtigkeit zu verlieren, jedoch ist es historisch von Bedeutung.
  • Google Tensorflow ist aktuell wohl am bekanntesten und wird kontinuierlich weiterentwickelt.
  • Microsoft CNTK ist ein Herausforderer von Google Tensorflow. CNTK ist zwar bislang weniger bekannt, hat aber den Anspruch, eine höhere Ausführungsgeschwindigkeit erreichen zu können.

Wer sich auf keins der drei Frameworks festlegen will, kann Keras nutzen. Keras ist eine High-Level-API, die im Backend Theano, CNTK und Tensorflow verwenden kann. Mit einer einfachen Umschaltung mittels einer Konfigurationsdatei kann zwischen den drei Backend-Frameworks umgeschaltet werden, ohne am mit Keras entwickelten Quellcode etwas ändern zu müssen. Dies bedeutet aber nicht, dass nichts geändert werden darf, denn die Backend-Frameworks arbeiten nicht genau gleich, sodass das Design und die Parametrisierung des in Keras entwickelten neuronalen Netzes gegebenenfalls mit Erfahrung und Ausprobieren für das jeweilige Backend etwas angepasst werden sollte.

Wichtigste Vorteile von Keras im Vergleich zum Programmmieren direkt mit den Backend-Frameworks sind:

  • Der Quellcode ist mit relativ geringen Anpassungen bei einem Austausch des Backend-Frameworks weitgehend wiederverwendbar.
  • Keras ist relativ simpel, die Programmierung ist einfacher als mit den Backend-Frameworks.

Wichtigste Nachteile von Keras im Vergleich zum Programmmieren direkt mit den Backend-Frameworks sind:

  • Keras unterstützt nicht alle speziellen Features der jeweiligen Backend-Frameworks oder ist zeitlich bei Updates der Backend-Frameworks etwas hinterher.
  • Es gibt einen gewissen Geschwindigkeitsverlust, weil Keras eine zusätzliche Schicht bildet.

Die Installation von Keras, Theano, Tensorflow und CNTK erfordert unter anderem die Installation von CUDA-Treibern und weiterer Pakete, insbesondere wenn GPUs eingesetzt werden sollen, was hier Sinn macht.

Eine Erleichterung stellt Anaconda dar, die das Paketmanagement und die Installation von integrierten Entwicklungsumgebungen vereinfacht. Mehr dazu später in diesem Artikel.

Seaborn - Menschen denken visuell

Oft sollen statistische Zusammenhänge auch visuell dargestellt werden. Dazu gibt es bei Python viele Pakete, von denen Seaborn zu den beliebtesten zählt. Seaborn ist eine komfortable High-Level-API, die im Backend mit Matplotlib arbeitet.

Mit Seaborn können Nutzer eine Vielzahl von Diagrammarten erstellen und auch ein visuell anspruchsvolles Publikum zufriedenstellen. Als Datenquelle für Seaborn kommt oft der Data Frame von Pandas zum Einsatz. Hier zeigt sich die Stärke von Python: Man setzt viele Pakete ein, und das Zusammenspiel bildet Synergievorteile.

Die Installation von Seaborn mit pip ist simpel:

pip install seaborn

Statt pip in der Kommandozeile aufzurufen, kann die Installation von Paketen und Frameworks auch mittels einer grafischen Entwicklungsumgebung erfolgen.

Integrierte Entwicklungsumgebungen (IDEs)

Auch mit einem Texteditor wie Notepad unter Windows oder Vi unter Linux lassen sich Python- und R-Programme entwickeln und mit der Kommandozeile deren Ausführung starten. Doch die meisten Programmierer werden wohl komfortable, integrierte Entwicklungsumgebungen (IDEs) präferieren, weil sie viele Vorteile bieten, etwa Syntax Highlighting (visuelles Hervorheben von Befehlen), Code Completion (automatisches Vervollständigen von Befehlen), elegante Debugging-Möglichkeiten, Variableneditoren und Paketmanagement.

Prinzipiell ließe sich mit jeder IDE, die in der klassischen Anwendungsentwicklung eingesetzt wird und Python beziehungsweise R unterstützt, auch bei Data-Science-Projekten arbeiten. Auch Eclipse konfiguriert für Python beziehungsweise R, Visual Studio IDE wäre also verwendbar. Viele Data Scientists nutzen jedoch lieber andere IDEs, die für Data-Science-Projekte besser geeignet sind und im Folgenden vorgestellt werden.

Die Unterschiede zwischen IDEs für klassische Anwendungsentwicklung und Data Science liegen hauptsächlich daran, dass bei klassischer Anwendungsentwicklung der Fokus auf dem Quellcode liegt (zum Beispiel Refactoring-Funktionalitäten, Visualisierung der Programmstruktur mit beispielsweise Klassendiagrammen, Code-Metrics-Berechnungen und Ähnliches) während bei Data-Science-Projekten der Augenmerk auf den Daten liegt (zum Beispiel Variablen- und Data-Frame-Editoren, Visualisierung von Daten und Dokumentation der Zwischenergebnisse, anfängliche Zeitersparnis wegen einiger oft verwendeter Machine-Learning-Pakete, die in der IDE schon vorinstalliert und vorkonfiguriert sind).

Im Falle von R gibt es de facto einen Marktstandard: RStudio. Die meisten Statistiker verwenden diese IDE, die es sowohl als kostenlose wie auch als kostenpflichtige Versionen für Linux, MacOS und Windows gibt.

Eine eher selten verwendete Alternative unter Windows ist Visual Studio IDE, das seit Version 2015 auch R unterstützt. Für Windows und MacOS existieren unterschiedliche Versionen. Des Weiteren gibt es auch eine kompakte und leichtgewichtige Version namens Visual Studio Code, die zudem auch für Linux verfügbar ist und mit installierbaren Erweiterungen ebenfalls R unterstützt.

Bei Python gibt es nicht die eine dominierende IDE. Je nach Vorliebe und Einsatzzweck haben sich mehrere IDEs etabliert. Auch hier gibt es Visual Studio IDE und Visual Studio Code, die aber unter Data Scientists eher seltener Einsatz finden. Visual Studio IDE bietet sich eher für die Entwicklung von Anwendungen und Visual Studio Code für das Skripten mit Python an.

Eine andere Alternative für die Anwendungsentwicklung mit Python ist PyCharm von Jetbrains, verfügbar für Linux, MacOS und Windows. Auch diese IDE ist bei Data Scientists eher selten in Einsatz.

Data Scientists verwenden viel lieber die IDE Jupyter Notebook. Diese IDE läuft im Browser, und man kann sie sich als interaktives Notiz- oder Forschungsheft vorstellen. In diesem kann man sowohl Beschreibungen und Kommentare mit einer sehr einfachen Formatierungssprache verfassen als auch Python-Quellcode schreiben, ausführen und die Ergebnisse im Heft persistent halten. Der große Nutzen für Data Scientists ist, dass sie sowohl den Weg, die Ergebnisse zu bekommen, nämlich die Formeln und den Quellcode, als auch die Ergebnisse selbst in Form von Beschreibungen, Ergebnistabellen, statistischen Werten und Diagrammen in einem sequenziellen Heft aufbewahren und ihren Kunden präsentieren können. Zudem sind die Ergebnisse so replizierbar, und bei Bedarf kann man einige Parameter im Python-Quellcode verändern und ausprobieren, ob man dadurch neue Erkenntnisse über die Daten bekommt beziehungsweise das Machine-Learning-Modell besser arbeitet.

Beispiele von Jupyter Noteboks bei Machine-Learning-Projekten werden auf Github gezeigt.

Will man jedoch nicht statistische Ergebnisse und Diagramme als Forschungsbericht präsentieren, sondern eine Machine-Learning-Anwendung entwickeln, dann ist oft Spyder (Scientific Python Development Environment) eine interessante IDE. Spyder zählt zu den beliebtesten Python-Entwicklungsumgebungen für Wissenschaftler. Sie ist relativ einfach, nicht überladen und verfügt über die wichtigsten Features wie einen komfortablen Debugger und einen Variablenmonitor.

Muss man sich unbedingt für eine bestimmte IDE entscheiden? Wenn man mehrere IDEs verwenden will, muss man jede einzeln installieren und sich um Updates kümmern? Muss man unterschiedliche Python-Versionen für unterschiedliche Projekte installieren und konfigurieren? Die Lösung all dieser Probleme ist der Anaconda Navigator.

Anaconda Navigator bietet die Installation von Jupyter Notebook, Spyder, Visual Studio Code, RStudio und einigen anderen IDEs an; und zwar alles unter einer Haube samt grafischer Benutzeroberfläche. Zudem enthält der Anaconda Navigator einen benutzerfreundlichen Paketmanager für Python, mit dem man Pakete suchen, installieren und updaten kann. Auch das Updaten der IDEs selbst wird angeboten. Zudem bietet der Anaconda Navigator die Konfiguration mehrerer Environments an. Das sind unterschiedliche Umgebungen, unter denen der Python- oder R-Code laufen soll.

Man stelle sich zum Beispiel vor, dass man eine bestimmte Umgebung mit Tensorflow und einer bestimmten Python-Version benötigt, weil vielleicht die aktuelle Version von Tensorflow nicht mit jeder Python-Version läuft; dagegen braucht man vielleicht für CNTK eine andere Python-Version oder man möchte unterschiedliche Cuda-Versionen ausprobieren. Statt Anaconda Navigator mehrmals zu installieren, installiert man ihn nur einmal und erstellt unter ihm mehrere Environments.

 Programmiersprachen, Pakete, IDEs: So steigen Entwickler in Machine Learning einEin kleines Programmierbeispiel 
  1.  
  2. 1
  3. 2
  4. 3
  5.  


Anzeige
Spiele-Angebote
  1. 7,99€
  2. 59,99€ für PC/69,99€ für PS4, Xbox (Release am 4. Oktober)
  3. 3,99€
  4. 0,49€

Frankenwein 22. Nov 2018

Das klingt interessant. Du gibst historische stündliche Daten zu Umgebungsvariablen und...

henryanki 15. Nov 2018

Schleifen sind auch ein "Anti-Pattern" in R. Für fast alle "iterativen" Prozesse sollte...

0110101111010001 13. Nov 2018

Tensorflow am verbreitetsten, CNTK am schnellsten. PyTorch am Facebookgsten...

Bruto 13. Nov 2018

Psst, das ist zu symbolisch für die NNler ;) Oder es hat einfach zu viele Klammern.

Frankenwein 13. Nov 2018

Super, danke für den Hinweis. Es gibt so viel Bewegung auf dem Gebiet, da ist es schwer...


Folgen Sie uns
       


Amazon Basics PC-Peripherie ausprobiert

Amazons Basics-Reihe beinhaltet eine Reihe von PC-Peripheriegeräten. Wir haben uns alles nötige bestellt und überprüft, ob sich ein Kauf der Produkte lohnt.

Amazon Basics PC-Peripherie ausprobiert Video aufrufen
Bug Bounty Hunter: Mit Hacker 101-Tutorials zum Millionär
Bug Bounty Hunter
Mit "Hacker 101"-Tutorials zum Millionär

Santiago Lopez hat sich als Junge selbst das Hacken beigebracht und spürt Sicherheitslücken in der Software von Unternehmen auf. Gerade hat er damit seine erste Million verdient. Im Interview mit Golem.de erzählt er von seinem Alltag.
Ein Interview von Maja Hoock

  1. White Hat Hacking In unter zwei Stunden in Universitätsnetzwerke gelangen

Oneplus 7 Pro im Hands on: Neue Konkurrenz für die Smartphone-Oberklasse
Oneplus 7 Pro im Hands on
Neue Konkurrenz für die Smartphone-Oberklasse

Parallel zum Oneplus 7 hat das chinesische Unternehmen Oneplus auch das besser ausgestattete Oneplus 7 Pro vorgestellt. Das Smartphone ist mit seiner Kamera mit drei Objektiven für alle Fotosituationen gewappnet und hat eine ausfahrbare Frontkamera - das hat aber seinen Preis.
Ein Hands on von Ingo Pakalski

  1. Oneplus Upgrade auf Android 9 für Oneplus 3 und 3T wird verteilt
  2. Smartphones Android-Q-Beta für Oneplus-7-Modelle veröffentlicht
  3. Oneplus 7 Pro im Test Spitzenplatz dank Dreifachkamera

Bundestagsanhörung: Beim NetzDG drohen erste Bußgelder
Bundestagsanhörung
Beim NetzDG drohen erste Bußgelder

Aufgrund des Netzwerkdurchsetzungsgesetzes laufen mittlerweile über 70 Verfahren gegen Betreiber sozialer Netzwerke. Das erklärte der zuständige Behördenchef bei einer Anhörung im Bundestag. Die Regeln gegen Hass und Hetze auf Facebook & Co. entzweien nach wie vor die Expertenwelt.
Ein Bericht von Justus Staufburg

  1. NetzDG Grüne halten Löschberichte für "trügerisch unspektakulär"
  2. NetzDG Justizministerium sieht Gesetz gegen Hass im Netz als Erfolg
  3. Virtuelles Hausrecht Facebook muss beim Löschen Meinungsfreiheit beachten

    •  /