Scikit-learn

Scikit-learn (ehemals scikits.learn) ist eine freie Software-Bibliothek zum maschinellen Lernen für die Programmiersprache Python. Es bietet verschiedene Klassifikations-, Regressions- und Clustering-Algorithmen, darunter Support-Vektor-Maschinen, Random Forest, Gradient Boosting (wie XGBoost), k-means und DBSCAN. Sie basiert als SciKit (Kurzform für SciPy Toolkit), wie beispielsweise auch Scikit-image, auf den numerischen und wissenschaftlichen Python-Bibliotheken NumPy und SciPy.

scikit-learn
Basisdaten
Entwickler David Cournapeau[1], Olivier Grisel[2], Gaël Varoquaux[2], Alexandre Gramfort, Andreas Mueller
Aktuelle Version 1.4.1[3]
(14. Februar 2024)
Betriebssystem Plattformunabhängig
Programmiersprache Python[4], C, C++, Cython
Lizenz 3-Klausel-BSD-Lizenz
scikit-learn.org

Diese Bibliothek wird in mehreren 2017 erschienenen deutschsprachigen Lehrbüchern benutzt.[5][6]

Implementierung

Scikit-learn ist weitgehend in Python geschrieben. Einige Kernalgorithmen wurden aus Performancegründen in Cython realisiert. Support-Vektor-Maschinen werden durch einen Cython-Wrapper um LIBSVM implementiert; logistische Regressions- und lineare Support-Vektor-Maschinen durch einen ähnlichen Wrapper um LIBLINEAR.

Scikit-learn lässt sich gut in viele andere Python-Bibliotheken integrieren, wie Matplotlib und plotly zum Plotten, NumPy zur Array-Vektorisierung, Pandas Dataframes, SciPy und viele mehr.[5]

Beispiele

Klassifikation mit dem k-Nearest-Neighbor-Algorithmus

Als Trainingsdatensatz dient hier der Iris flower-Datensatz bestehend aus jeweils 50 Beobachtungen dreier Arten von Schwertlilien (Iris) (Iris Setosa, Iris Virginica und Iris Versicolor), an denen jeweils vier Attribute der Blüten erhoben wurden: die Länge und die Breite des Sepalum (Kelchblatt) und des Petalum (Kronblatt).

from sklearn import neighbors, datasets
iris = datasets.load_iris()
X, y = iris.data, iris.target
knn = neighbors.KNeighborsClassifier(n_neighbors=1)

knn.fit(X, y)

print("Welche Art von Schwertlilie (Iris Setosa, Iris Virginica oder Iris Versicolor)")
print("hat ein 3cm x 5cm Sepalum (Kelchblatt) und ein 4cm x 2cm Petalum (Kronblatt)")
print("Antwort: ", iris.target_names[knn.predict([[3, 5, 4, 2]])])

Eine tiefe Analyse dieses Datensatzes mit scikit-learn wurde mehrfach ausführlich beschrieben.[7][8][9]

Versionsverlauf

Scikit-learn wurde ursprünglich 2007 von David Cournapeau als Google-Summer-of-Code-Projekt entwickelt. Später trat Matthieu Brucher dem Projekt bei und begann es im Rahmen seiner Diplomarbeit zu verwenden. Im Jahr 2010 beteiligte sich das INRIA (French Institute for Research in Computer Science and Automation) und die erste öffentliche Version (v0.1 Beta) wurde Ende des Jahres veröffentlicht.

Einzelnachweise

  1. github.com.
  2. github.com. (abgerufen am 16. August 2021).
  3. Release 1.4.1. 14. Februar 2024 (abgerufen am 20. Februar 2024).
  4. The scikit-learn Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 14. Juli 2018).
  5. Andreas C. Müller, Sarah Guido: Einführung in Machine Learning mit Python. O’Reilly-Verlag, Heidelberg 2017, ISBN 978-3-96009-049-6.
  6. Sebastian Raschka: Machine Learning mit Python. mitp-Verlag, Frechen 2017, ISBN 978-3-95845-422-4.
  7. Matthias Parbel: Oliver Zeigermann: Interaktive Einführung in Machine Learning mit Scikit-Learn. In: heise Developer. Abgerufen am 28. August 2018 (deutsch).
  8. Oliver Zeigermann: Jupyter Notebook zum Vortrag: Machine Learning mit Scikit-Learn. Abgerufen am 28. August 2018.
  9. Gael Varoquaux: 3.6. scikit-learn: machine learning in Python — Scipy lecture notes. In: Tutorials on the scientific Python ecosystem: a quick introduction to central tools and techniques. Abgerufen am 28. August 2018 (englisch).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.