Suchen

Definition Was ist Scikit-learn?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Die freie Software-Bibliothek Scikit-learn ist plattformunabhängig und für das maschinelle Lernen mit der Programmiersprache Python konzipiert. Sie arbeitet mit wissenschaftlichen Python-Bibliotheken wie SciPy oder NumPy zusammen. Verfügbar ist die Software über GitHub.

(Bild: © aga7ta - stock.adobe.com)

Bei Scikit-learn handelt es sich um eine Software-Bibliothek für maschinelles Lernen (Machine Learning). Die Software ist unter 3-Klausel-BSD-Lizenz frei über GitHub erhältlich und für die Programmiersprache Python vorgesehen. Für das maschinelle Lernen stehen verschiedene Algorithmen wie Clustering-, Regressions- oder Klassifizierungsalgorithmen zur Verfügung. Scikit-learn wird zusammen mit den wissenschaftlichen Python-Bibliotheken SciPy und NumPy eingesetzt. Die Bibliothek zeichnet sich durch ihre robusten und gut dokumentierten Funktionen aus. Geschrieben ist Scikit-learn überwiegend in Python.

Für einige Kernalgorithmen wurde Cython verwendet, um eine höhere Performance zu erzielen. Ursprünglich geht Scikit-learn auf das von David Cournapeau durchgeführte Google Summer of Code Projekt scikits.learn zurück. Der Name „Scikit“ leitet sich von der SciPy-Erweiterung „SciPy Toolkit“ ab. Der Original-Code aus dem Projekt wurde später von Entwicklern neu geschrieben. Das erste öffentliche Release von Scikit-learn erschien im Jahr 2010. Die aktuelle Version von Scikit-learn aus dem Jahr 2017 trägt die Bezeichnung 0.19.1.

Die Algorithmen von Scikit-learn eignen sich sowohl für überwachtes als auch für unüberwachtes Lernen. Da die Machine-Learning-Bibliothek auf wissenschaftlichen Python-Bibliotheken basiert und ein konsistentes Interface innerhalb der Programmiersprache bereitstellt, lässt sich Scikit-learn relativ einfach in Applikationen integrieren. Einzelne Methoden und Algorithmen sind als Bausteine für unterschiedliche Anwendungsfälle nutzbar. Mit Scikit-learn entwickelte Anwendungen für maschinelles Lernen kommen sowohl in der Wissenschaft als auch im kommerziellen Umfeld zum Einsatz.

Die Ziele in der Entwicklung von Scikit-learn und die wichtigsten Merkmale der Bibliothek

Bei der Entwicklung von Scikit-learn stand das Ziel im Vordergrund, eine solide Implementierung für maschinelles Lernen bereitzustellen, die sich auf die wesentlichen Funktionen konzentriert. Es wurde auf eine konsistente Benennung der Funktionen und Parameter geachtet, die sich strikt an die Konventionen der Programmiersprache Python und ihre wissenschaftlichen Bibliotheken hält. Scikit-learn soll frei verfügbar sein und steht daher unter BSD-Lizenz. Die Weiterentwicklung von Scikit-learn treibt eine aktive Community voran. Ein wichtiges Merkmal von Scikit-learn ist die gute Dokumentation der Bibliothek und ihrer Funktionen und Parametern. Den Entwicklern und Anwendern stehen detaillierte User-Guides, Klassen-Referenzen, Tutorien, Installationsanleitungen und viele ausführlich beschriebene Beispiele zur Verfügung.

Eine saubere, einheitliche und einfach gehaltene API zeichnet die Bibliothek aus. Hat man die Grundsätze der Anwendung von Scikit-learn für eine bestimmtes Modell verstanden, ist es relativ einfach, Scikit-learn auf andere Modelle anzuwenden.

Vorteile von Scikit-learn sind unter anderem:

  • einfache und effiziente Tools für das maschinelles Lernen, Data Mining und Datenanalysen
  • für jeden frei verfügbar
  • für verschiedene Anwendungsbereiche einsetzbar
  • basierend auf NumPy und SciPy

Zugrunde liegende Technologien

Scikit-learn basiert in Teilen auf den wissenschaftlichen Python-Bibliotheken SciPy und NumPy und auf der Programmiersprache Cython. Es wird die Datenstruktur von NumPy für die Parameter der Datenmodelle verwendet. Die Daten sind durch NumPy-Arrays repräsentiert, wodurch eine einfache Integration in andere wissenschaftliche Python-Bibliotheken möglich ist. NumPy stellt zudem die grundlegenden Funktionen für arithmetische Berechnungen bereit.

SciPy sorgt für effiziente Algorithmen der linearen Algebra und Matrixfunktionen. Darüber hinaus liefert die Bibliothek statistische Funktionen. Cython gestattet die Nutzung von C in Python. Mithilfe von Cython ist die Performance des Codes für verschiedene High-Level-Operationen verbessert.

Die Features von Scikit-learn

Der Fokus von Scikit-learn liegt auf der Modellierung von Daten. Mit der Bibliothek lassen sich Daten clustern und gruppieren, Datasets erzeugen, Attribute für Bilder und Texte erzeugen, Methoden für maschinelles Lernen kombinieren, Lernmodelle aufstellen, multidimensionale Daten zusammenfassen und vieles mehr.

Typische Funktionen von Scikit-learn sind:

  • Clustering
  • Cross Validation
  • Reduktion
  • Feature-Extraktion
  • Parameter-Tuning
  • Zusammenfassen und Darstellen von Daten

Datenrepräsentation in Scikit-learn mithilfe von Tabellen

Maschinelles Lernen benötigt auf Daten basierende Modelle. In Scikit-learn lassen sich Daten in Form von Tabellen für die weitere Verarbeitung durch Algorithmen bereitstellen. Eine einfache Tabelle ist zweidimensional und besteht aus Zeilen und Spalten. Die Zeilen repräsentieren die einzelnen Elemente und die Spalten verschiedene Eigenschaften dieser Elemente beispielsweise Mengen oder Größen. Ausgehend von diesen Tabellen entstehen durch die Anwendung von Funktionen und Algorithmen die Modelle für maschinelles Lernen.

(ID:45498618)

Über den Autor