Data Science und Machine Learning Scikit-learn – KI, Statistik, Mathematik, Analyse oder Data Mining mit Python

Von Thomas Joos |

Anbieter zum Thema

Wer sich mit Künstlicher Intelligenz (KI) und Machine Learning (ML) oder auch mit Programmen im Bereich Statistik, Mathematik, Analyse oder Data Mining beschäftigt, sollte sich die Möglichkeiten der Python-Library scikit-learn anschauen. Der Beitrag gibt einen Überblick.

Machine Learning mit scikit-learn in Python umsetzen
Machine Learning mit scikit-learn in Python umsetzen
(Bild: scikit-learn.org)

Bei scikit-learn handelt es sich um eine freie Software-Bibliothek für Python. Die Library scikit-learn leitet sich von SciPy Toolkit ab und baut auf der Programmiersprache Python auf. Im Fokus der Bibliothek stehen Möglichkeiten zur Programmierung von Anwendungen im Bereich von Machine Learning und anderen Bereichen. Scikit-learn kann auch Pakete wie NumPy, SciPy, oder Matplotlib einsetzen.

Scitcit-learn in eine aktuelle Python-Umgebung integrieren

Die Integration in einer 64-Bit-Installation von Python 3 ist sehr einfach über einen der Befehle „pip install -U scikit-learn“, „pip install scikit-learn“ oder „conda install scikit-learn“ möglich. Die Installation lässt sich danach mit den folgenden Befehlen überprüfen:

python -m pip show scikit-learnpython -m pip freezepython -c "import sklearn; sklearn.show_versions()"

Für die Einarbeitung finden sich im Internet auch zahlreiche Beispieldaten für das das Machine Learning.

Schlanke API, gute Dokumentation und Einheitlichkeit der Komponenten

Die Bibliothek bietet eine einheitliche und schlanke API, inklusive einer umfassenden Dokumentation. Das ist für das Schreiben von Programmen zum Thema mathematische, wissenschaftliche oder statistische Anwendungen mit Python ein wichtiger Faktor. Auch für das Data Mining und zur Datenanalyse kann scikit-learn genutzt werden, genauso wie für Anwendungen, die sich mit den Themen KI und ML beschäftigt.

Ein Vorteil dieser Einheitlichkeit ist, dass Entwickler und Analysten, sobald sie die grundlegende Verwendung und Syntax von scikit-learn für einen Modelltyp verstanden haben, sehr einfach zu einem neuen Modell oder Algorithmus wechseln können. Dadurch lassen sich mit scikit-learn entwickelte Komponenten auch in größere Programme einbinden. Die Library kann parallel zu PyTorch genutzt werden. PyTorch ist ein Machine Learning-Framework auf Basis von Open Source.

Bots, Sprachassistenten und andere KI/ML-Lösungen entwickeln

Scikit-learn steht unter der BSD-Lizenz kostenlos zur Verfügung. Die Library kommt auch zum Entwickeln von Bots oder für das Entwickeln von Apps für Sprachassistenten und anderer Lösungen zum Einsatz. Wenn Künstliche Intelligenz und Machine-Learning-Programme mit Python entwickelt werden sollen, ist es sinnvoll, sich die Möglichkeiten von scikit-learn genauer anzuschauen. Scikit-learn kann darüber hinaus von Computerprogrammen erstellte Nachrichten im Internet von menschlich erstellten Texten unterscheiden, da auch hier KI-Komponenten zum Einsatz kommen.

Die Entwickler von scikit-learn stellen auch verschiedene Tutorials bereit. Die Library kann auch gemeinsam mit Pandas oder TensorFlow zum Einsatz kommen. Das Open Source Framework TensorFlow wird von zahlreichen anderen KI-Programmen und -Tools genutzt. Mit den Bibliotheken können ML-Modelle entwickelt und trainiert werden. Scikit-Learn teilt dazu seine Teilbibliotheken auf:

  • Classification
  • Regression
  • Clustering
  • Dimensionality Reduction
  • Model Selection
  • Preprocessing

Das Importieren der Teilbibliotheken erfolgt zum Beispiel mit:

import sklearn.cluster as cl# Neuronales Netz zur Klassifikationfrom sklearn.neural_network import MLPClassifier# Neuronales Netz zur Regressionfrom sklearn.neural_network import MLPRegressor

Um einen Überblick zu den verfügbaren Modellen zu erhalten, kann der folgende Code zum Einsatz kommen:

from sklearn import tree

Wichtig ist dabei, das Modell zu initialisieren. Danach lässt sich es trainieren (fit). Im Anschluss können zum Beispiel sich Prädiktionen (predict) und die Genauigkeit (score) ausgegeben werden. Mit scikit-learn ist es möglich eine Vielzahl von Modellarten und Anwendungen umzusetzen. Der komplette Datenvorverarbeitungs- und Trainingsprozess kann zum Beispiel auch in Pipelines zusammengefasst werden.

Klassifikation mit scikit-learn
Klassifikation mit scikit-learn
(Bild: scikit-learn.org)

Integration von Python-Komponenten in andere Anwendungen

Anwendungen, die mit scikit-learn geschrieben werden, lassen sich auch in andere Programme integrieren. Dadurch können Programme KI-Funktionen erhalten, die mit scikit-learn entwickelt wurden. Im Bereich von ML arbeitet scikit-learn auch mit Funktionen von Cloud-Lösungen aus dem Bereich KI/ML zusammen, zum Beispiel auch mit Azure Databricks. Die Microsoft-Cloud-Lösung vereint verschiedene Big Data Use Cases auf einer einzigen Plattform. Auch das maschinelle Lernen und Data Science lassen sich einbinden.

Azure Databricks enthält viele maschinelle Lernbibliotheken, unterstützt aber auch die einfache Interaktion mit vielen anderen gängigen maschinellen Lernframeworks wie XGBoost, scikit-learn, TensorFlow, Keras und Horovod. Mit Azure Machine Learning können Modelle auf Basis von scikit-learn auch im großen Stil trainiert werden. Beispiele dafür beschreibt Microsoft in der Dokumentation zu Azure Machine Learning.

Der Markt für automatisiertes Machine Learning ist hart umkämpft. Angebote gibt es unter anderem. von DataRobot, Google (AutoML Tables), H2O (Driverless AI), IBM (AutoAI), Microsoft (Azure Automated ML) und als Open-Source-Bibliotheken wie Auto-Weka, Auto-sklearn oder TPOT. Viele dieser Systeme nutzen dafür scikit-learn als ML-Bibliothek für Python.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Daten mit scikit-learn darstellen

Beim maschinellen Lernen geht es vor allem darum, Modelle aus Daten zu erstellen. Dazu ist die Darstellung der Daten wichtig, damit diese auch richtig verarbeitet werden können. Daten in scikit-learn lassen sich zum Beispiel mit Datentabellen darstellen. Eine Tabelle ist dabei generell ein zweidimensionales Gitter, in dem die Zeilen einzelne Elemente des Datensatzes darstellen und die Spalten Mengen, die mit jedem dieser Elemente verbunden sind. Informationen lassen sich dadurch als zweidimensionales numerisches Array oder als Matrix betrachten. Hier lassen sich zum Beispiel noch NumPy-Arrays oder Pandas DataFrame nutzen und scikit-Learn-Modelle akzeptieren auch SciPy-sparse-Matrizen.

Die Stichproben in den Zeilen können sich dabei auf die einzelnen Objekte beziehen, die durch den Datensatz beschrieben werden. Die Stichprobe kann zum Beispiel eine Person, ein Dokument, ein Bild, eine Tondatei, ein Video, ein astronomisches Objekt oder etwas anderes sein, das mit einer Reihe von quantitativen Messungen beschrieben werden kann. Die Merkmale in den Spalten beziehen sich wiederum auf die einzelnen Beobachtungen, die jede Stichprobe auf quantitative Weise beschreiben.

(ID:48631109)