Recherche de site Web

Tutoriel Python SciKit Learn


Scikit Learn

Scikit-learn est une bibliothèque d'apprentissage automatique pour Python. Elle comprend plusieurs algorithmes de régression, de classification et de clustering, notamment les SVM, le gradient boosting, le k-means, les forêts aléatoires et DBSCAN. Elle est conçue pour fonctionner avec Numpy et SciPy de Python. Le projet scikit-learn a été lancé en tant que projet Google Summer of Code (également connu sous le nom de GSoC) par David Cournapeau sous le nom de scikits.learn. Son nom provient de « Scikit », une extension tierce distincte de SciPy.

Python Scikit-learn

Scikit est écrit en Python (la plupart du temps) et certains de ses algorithmes principaux sont écrits en Cython pour des performances encore meilleures. Scikit-learn est utilisé pour construire des modèles et il n'est pas recommandé de l'utiliser pour lire, manipuler et résumer des données car il existe de meilleures frameworks disponibles à cet effet. Il est open source et publié sous la licence BSD.

Installer Scikit Learn

Scikit suppose que vous disposez d'une plateforme Python 2.7 ou supérieure avec les packages NumPY (1.8.2 et supérieur) et SciPY (0.13.3 et supérieur) installés sur votre appareil. Une fois que nous avons ces packages installés, nous pouvons procéder à l'installation. Pour installer avec pip, exécutez la commande suivante dans le terminal :

pip install scikit-learn

Si vous aimez conda, vous pouvez également utiliser conda pour l'installation de packages, exécutez la commande suivante :

conda install scikit-learn

Utiliser Scikit-Learn

Une fois que vous avez terminé l'installation, vous pouvez utiliser scikit-learn facilement dans votre code Python en l'important comme :

import sklearn

Chargement de jeu de données Scikit Learn

Commençons par charger un ensemble de données avec lequel jouer. Chargeons un ensemble de données simple nommé Iris. C'est un ensemble de données sur une fleur, il contient 150 observations concernant différentes mesures de la fleur. Voyons comment charger l'ensemble de données en utilisant scikit-learn.

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)

Nous imprimons la forme des données pour plus de facilité, vous pouvez également imprimer l'ensemble des données si vous le souhaitez, l'exécution des codes donne une sortie comme ceci :

Scikit Learn SVM - Apprentissage et Prédiction

Maintenant que nous avons chargé les données, essayons d'apprendre à partir de celles-ci et de prédire sur de nouvelles données. Pour cela, nous devons créer un estimateur puis appeler sa méthode fit.

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_ )

Voici ce que nous obtenons lorsque nous exécutons ce script :

Régression linéaire de Scikit Learn

Créer différents modèles est assez simple avec scikit-learn. Commençons par un exemple simple de régression.

#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_)

L'exécution du modèle devrait renvoyer un point qui peut être tracé sur la même ligne :

classificateur k-plus proches voisins

Essayons un simple algorithme de classification. Ce classificateur utilise un algorithme basé sur des arbres de balles pour représenter les échantillons d'entraînement.

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)

Exécutons le classificateur et vérifions les résultats, le classificateur devrait renvoyer 0. Essayons l'exemple :

Clustering K-means

C'est le plus simple des algorithmes de regroupement. L'ensemble est divisé en 'k' clusters et chaque observation est assignée à un cluster. Cela se fait de manière itérative jusqu'à ce que les clusters convergent. Nous allons créer un tel modèle de regroupement dans le programme suivant :

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])

En exécutant le programme, nous verrons des clusters séparés dans la liste. Voici la sortie pour le code ci-dessus :

Conclusion

Dans ce tutoriel, nous avons vu que Scikit-Learn facilite le travail avec plusieurs algorithmes d'apprentissage automatique. Nous avons vu des exemples de régression, de classification et de clustering. Scikit-Learn est encore en phase de développement et est développé et maintenu par des bénévoles, mais il est très populaire dans la communauté. Allez et essayez vos propres exemples.