Scikit-learn

aus Wikipedia, der freien Enzyklopädie
scikit-learn
Basisdaten

Betriebssystem Plattformunabhängig
Lizenz 3-Klausel-BSD-Lizenz

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.

Diese Library wird in mehreren 2017 erschienenen deutschsprachigen Lehrbüchern benutzt.[1][2]

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.[1]

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.[3][4][5]

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

  1. a b Andreas C. Müller, Sarah Guido: Einführung in Machine Learning mit Python. O’Reilly-Verlag, Heidelberg 2017, ISBN 978-3-96009-049-6.
  2. Sebastian Raschka: Machine Learning mit Python. mitp-Verlag, Frechen 2017, ISBN 978-3-95845-422-4.
  3. Matthias Parbel: Oliver Zeigermann: Interaktive Einführung in Machine Learning mit Scikit-Learn. heise Developer, abgerufen am 28. August 2018 (deutsch).
  4. Oliver Zeigermann: Jupyter Notebook zum Vortrag: Machine Learning mit Scikit-Learn. Abgerufen am 28. August 2018.
  5. 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).