Apprentissage statistique : le cadre et l'objet estimateur dans scikit-learn
Ensembles de données
Scikit-learn permet d'apprendre des informations à partir d'un ou plusieurs ensembles de données représentés sous forme de tableaux en 2 dimensions. Ils peuvent être compris comme une liste d'observations multidimensionnelles. Nous disons que le premier axe de ces tableaux est l'axe des échantillons, tandis que le second est l'axe des caractéristiques.
Voici un exemple simple fourni avec scikit (ensemble de données iris) :
>>> from sklearn import datasets >>> iris = datasets.load_iris() >>> data = iris.data >>> data.shape (150, 4) |
Il est constitué de 150 observations d'iris, chacune décrite par 4 caractéristiques : la longueur et la largeur de leurs sépales et pétales, comme détaillé dans iris.DESCR.
Lorsque les données ne sont pas initialement sous la forme (n_samples, n_features), elles doivent être prétraitées pour pouvoir être utilisées par scikit-learn.
Un exemple de remodelage des données serait l'ensemble de données de chiffres
L'ensemble de données de chiffres est constitué de 1797 images 8x8 de chiffres manuscrits :
>>> digits = datasets.load_digits() >>> digits.images.shape (1797, 8, 8) >>> import pylab as pl >>> pl.imshow(digits.images[-1], cmap=pl.cm.gray_r) <matplotlib.image.AxesImage object at ...> |
Pour utiliser cet ensemble de données avec le scikit, nous transformons chaque image 8x8 en un vecteur de caractéristiques de longueur 64 :
>>> data = digits.images.reshape((digits.images.shape[0], -1)) |
Objets estimateurs
Données d'ajustement : l'API principale implémentée par scikit-learn est celle de l'estimateur. Un estimateur est un objet apprenant à partir de données; il peut s'agir d'un algorithme de classification, de régression ou de clustering ou d'un transformateur extractant/filtrant des caractéristiques utiles à partir de données brutes.
Tous les objets estimateurs exposent une méthode d'ajustement prenant un ensemble de données (généralement un tableau en 2 dimensions) :
>>> estimator.fit(data) |
Paramètres de l'estimateur : Tous les paramètres d'un estimateur peuvent être définis lors de son instanciation ou en modifiant l'attribut correspondant :
>>> estimator = Estimator(param1=1, param2=2) >>> estimator.param1 1 |
Paramètres estimés : lorsque les données sont ajustées à l'aide d'un estimateur, les paramètres sont estimés à partir des données disponibles. Tous les paramètres estimés sont des attributs de l'objet estimateur se terminant par un trait de soulignement :
>>> estimator.estimated_param_ |