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, 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 |
Aktuelle Version | 1.0.2[3] (25. Dezember 2021) |
Betriebssystem | Plattformunabhängig |
Programmiersprache | Python[4], C, C++, Cython |
Lizenz | 3-Klausel-BSD-Lizenz |
scikit-learn.org |
Diese Library 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 Januar 2010.
Weblinks
Einzelnachweise
- github.com.
- github.com. (abgerufen am 16. August 2021).
- Release 1.0.2. 25. Dezember 2021 (abgerufen am 28. Januar 2022).
- The scikit-learn Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 14. Juli 2018).
- Andreas C. Müller, Sarah Guido: Einführung in Machine Learning mit Python. O’Reilly-Verlag, Heidelberg 2017, ISBN 978-3-96009-049-6.
- Sebastian Raschka: Machine Learning mit Python. mitp-Verlag, Frechen 2017, ISBN 978-3-95845-422-4.
- Matthias Parbel: Oliver Zeigermann: Interaktive Einführung in Machine Learning mit Scikit-Learn. heise Developer, abgerufen am 28. August 2018 (deutsch).
- Oliver Zeigermann: Jupyter Notebook zum Vortrag: Machine Learning mit Scikit-Learn. Abgerufen am 28. August 2018.
- 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).