Scikit-learn
# 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.
Diese Bibliothek wird in mehreren 2017 erschienenen deutschsprachigen Lehrbüchern benutzt.

## 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.

## 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).
Eine tiefe Analyse dieses Datensatzes mit scikit-learn wurde mehrfach ausführlich beschrieben.

## 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.