Website-Suche

Python SciKit Learn Tutorial


Scikit Learn

Scikit-learn ist eine Bibliothek für maschinelles Lernen in Python. Sie bietet mehrere Regressions-, Klassifikations- und Clustering-Algorithmen, darunter SVMs, gradient boosting, k-means, Random Forests und DBSCAN. Sie ist so konzipiert, dass sie mit Python Numpy und SciPy funktioniert. Das Scikit-learn-Projekt startete als ein Google Summer of Code (auch bekannt als GSoC) Projekt von David Cournapeau als scikits.learn. Es erhielt seinen Namen von „Scikit“, einer separaten, von Drittanbietern entwickelten Erweiterung für SciPy.

Python Scikit-learn

Scikit ist überwiegend in Python geschrieben, und einige seiner Kernalgorithmen sind in Cython geschrieben, um eine noch bessere Leistung zu erzielen. Scikit-learn wird verwendet, um Modelle zu erstellen, und es wird nicht empfohlen, es zum Lesen, Bearbeiten und Zusammenfassen von Daten zu verwenden, da es dafür bessere Frameworks gibt. Es ist Open Source und wird unter der BSD-Lizenz veröffentlicht.

Scikit Learn installieren

Scikit geht davon aus, dass Sie eine laufende Python-Plattform 2.7 oder höher mit NumPY (1.8.2 und höher) und SciPY (0.13.3 und höher) Paketen auf Ihrem Gerät haben. Sobald wir diese Pakete installiert haben, können wir mit der Installation fortfahren. Für die pip-Installation führen Sie den folgenden Befehl im Terminal aus:

pip install scikit-learn

Wenn Sie conda mögen, können Sie auch conda für die Paketinstallation verwenden. Führen Sie den folgenden Befehl aus:

conda install scikit-learn

Scikit-Learn verwenden

Sobald Sie mit der Installation fertig sind, können Sie scikit-learn ganz einfach in Ihrem Python-Code verwenden, indem Sie es wie folgt importieren:

import sklearn

Scikit Learn Laden des Datensatzes

Lassen Sie uns mit dem Laden eines Datensatzes beginnen, mit dem wir spielen können. Lassen Sie uns einen einfachen Datensatz namens Iris laden. Es handelt sich um einen Datensatz einer Blume, der 150 Beobachtungen über verschiedene Maße der Blume enthält. Lassen Sie uns sehen, wie wir den Datensatz mit scikit-learn laden können.

Import scikit learn
from sklearn import datasets
Load data
iris= datasets.load_iris()
Print shape of data to confirm data is loaded
print(iris.data.shape)

Wir drucken die Form der Daten zur Vereinfachung aus, Sie können auch die gesamten Daten drucken, wenn Sie möchten. Das Ausführen des Codes ergibt eine Ausgabe wie diese:

Scikit Learn SVM - Lernen und Vorhersagen

Jetzt haben wir die Daten geladen, lassen Sie uns daraus lernen und Vorhersagen für neue Daten treffen. Zu diesem Zweck müssen wir einen Schätzer erstellen und dann seine Fit-Methode aufrufen.

from sklearn import svm
from sklearn import datasets
Load dataset
iris = datasets.load_iris()
clf = svm.LinearSVC()
learn from the data
clf.fit(iris.data, iris.target)
predict for unseen data
clf.predict([[ 5.0,  3.6,  1.3,  0.25]])
Parameters of model can be changed by using the attributes ending with an underscore
print(clf.coef_ )

Hier ist, was wir erhalten, wenn wir dieses Skript ausführen:

Scikit Learn lineare Regression

Das Erstellen verschiedener Modelle ist mit scikit-learn recht einfach. Lassen Sie uns mit einem einfachen Beispiel für Regression beginnen.

#import the model
from sklearn import linear_model
reg = linear_model.LinearRegression()
use it to fit a data
reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
Let's look into the fitted data
print(reg.coef_)

Das Ausführen des Modells sollte einen Punkt zurückgeben, der auf derselben Linie plottiert werden kann:

k-nächste Nachbarn Klassifikator

Lass uns einen einfachen Klassifikationsalgorithmus versuchen. Dieser Klassifikator verwendet einen Algorithmus, der auf Ball-Bäumen basiert, um die Trainingsmuster darzustellen.

from sklearn import datasets
Load dataset
iris = datasets.load_iris()
Create and fit a nearest-neighbor classifier
from sklearn import neighbors
knn = neighbors.KNeighborsClassifier()
knn.fit(iris.data, iris.target)
Predict and print the result
result=knn.predict([[0.1, 0.2, 0.3, 0.4]])
print(result)

Lass uns den Klassifikator ausführen und die Ergebnisse überprüfen, der Klassifikator sollte 0 zurückgeben. Lass uns das Beispiel versuchen:

K-means-Clustering

Dies ist der einfachste Clustering-Algorithmus. Die Menge wird in 'k' Cluster unterteilt und jede Beobachtung wird einem Cluster zugewiesen. Dies geschieht iterativ, bis die Cluster konvergieren. Wir werden ein solches Clustering-Modell im folgenden Programm erstellen:

from sklearn import cluster, datasets
load data
iris = datasets.load_iris()
create clusters for k=3
k=3
k_means = cluster.KMeans(k)
fit data
k_means.fit(iris.data)
print results
print( k_means.labels_[::10])
print( iris.target[::10])

Beim Ausführen des Programms werden wir separate Cluster in der Liste sehen. Hier ist die Ausgabe für den obigen Codeausschnitt:

Schlussfolgerung

In diesem Tutorial haben wir gesehen, dass Scikit-Learn die Arbeit mit mehreren Machine-Learning-Algorithmen erleichtert. Wir haben Beispiele für Regression, Klassifikation und Clustering gesehen. Scikit-Learn befindet sich noch in der Entwicklungsphase und wird von Freiwilligen entwickelt und gewartet, ist aber in der Community sehr beliebt. Probieren Sie Ihre eigenen Beispiele aus.