[PYTHON] [Français] scikit-learn 0.18 Guide de l'utilisateur 2.7. Détection des nouveautés et des valeurs aberrantes

google traduit http://scikit-learn.org/0.18/modules/outlier_detection.html [scikit-learn 0.18 Guide de l'utilisateur 2. Apprendre sans enseignant](http://qiita.com/nazoking@github/items/267f2371757516f8c168#2-%E6%95%99%E5%B8%AB%E3%81%AA À partir de% E3% 81% 97% E5% AD% A6% E7% BF% 92)


2.7. Détection de la nouveauté et des valeurs aberrantes

De nombreuses applications doivent être en mesure de déterminer si une nouvelle observation appartient à la même distribution (inlier) qu'une observation existante ou si elle est différente (outlier). Cette fonctionnalité est souvent utilisée pour effacer le jeu de données réel. Deux distinctions importantes doivent être faites:

Le projet scikit-learn fournit un ensemble d'outils d'apprentissage automatique qui peuvent être utilisés à la fois pour la détection de nouveautés et de valeurs aberrantes. Cette stratégie est mise en œuvre avec des objets qui apprennent à partir des données sans surveillance.

estimator.fit(X_train)

Les nouvelles observations peuvent être classées comme valeurs aberrantes ou inliers à l'aide de méthodes prédictives.

estimator.predict(X_train)

La valeur inlier est étiquetée 1 et la valeur aberrante est étiquetée -1.

2.7.1. Détection de nouveauté

Considérons un ensemble de données de $ n $ observations avec la même distribution que celle décrite par $ p $ features. Pensez maintenant à ajouter une autre observation à cet ensemble de données. Les nouvelles observations sont-elles si différentes des autres observations? (C'est-à-dire, vient-il de la même distribution?) Ou, au contraire, est-il si semblable aux autres qu'il est impossible de le distinguer de l'observation originale? C'est un problème résolu par les outils et méthodes de détection de nouveauté. En général, il essaie d'apprendre les limites approximatives et proches qui définissent la distribution d'observation initiale, tracée en incorporant l'espace de dimension $ p $. Ensuite, si d'autres observations se trouvent dans le sous-espace délimité par la frontière, elles sont considérées comme appartenant à la même population que la première observation. Sinon, s'ils se trouvent en dehors de la frontière, nous pouvons dire qu'ils sont anormaux avec une certaine confiance dans notre évaluation. La SVM à une classe a été introduite par Schölkopf et al. À cette fin, les machines vectorielles de support de l'objet svm.OneClassSVM (http://scikit-learn.org/0.18/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM). http://qiita.com/nazoking@github/items/2b16be7f7eac940f2e6a) Il est implémenté dans le module. Pour définir la frontière, vous devez sélectionner les paramètres noyau et scalaire. Les noyaux RBF n'ont généralement pas de formule ou d'algorithme exact pour définir les paramètres de bande passante, mais ils sont choisis. Il s'agit de la valeur par défaut pour l'implémentation scicit-learn. Le paramètre $ \ nu $, également appelé marge SVM One-Class, correspond à la probabilité de trouver des observations nouvelles mais régulières en dehors de la frontière.

2.7.2. Détection des valeurs aberrantes

La détection hors valeur est similaire à la détection de nouveauté en ce qu'elle sépare le noyau des observations normales de certains matériaux contaminés (appelés «valeurs aberrantes»). Cependant, dans le cas de la détection des valeurs aberrantes, nous n'avons pas de jeu de données propre qui représente une population d'observations régulières pouvant être utilisées pour entraîner n'importe quel outil.

2.7.2.1. Installer l'enveloppe ovale

Une manière courante d'effectuer la détection des valeurs aberrantes consiste à supposer que les données normales proviennent d'une distribution connue (par exemple, les données sont une distribution gaussienne). À partir de cette hypothèse, nous essayons généralement de définir la «forme» des données, et la valeur de l'écart peut être définie comme une valeur d'observation bien éloignée de la forme d'ajustement. scikit-learn fournit la co-distribution d'objets. L'enveloppe elliptique ajuste une estimation de covariance robuste aux données et ajuste l'ellipse au point de données central, en ignorant les points autres que le mode central. Par exemple, en supposant que les données initiales sont gaussiennes, la position initiale et la covariance sont estimées de manière robuste (c'est-à-dire non affectées par la valeur aberrante). La distance maharanobis obtenue à partir de cette estimation est utilisée pour dériver une mesure de l'exogène. Cette stratégie est illustrée ci-dessous.

2.7.2.2. Forêt d'isolement

Un moyen efficace de détecter les valeurs aberrantes dans les ensembles de données de grande dimension consiste à utiliser une forêt aléatoire. ensemble.IsolationForest sélectionne au hasard les caractéristiques et maximise les caractéristiques sélectionnées. «Séparez» les observations en choisissant au hasard une répartition entre la valeur et le minimum. Les fractionnements récursifs peuvent être représentés dans une structure arborescente, de sorte que le nombre de fractionnements requis pour séparer les échantillons correspond à la longueur du chemin du nœud racine au nœud final. La longueur de ce chemin, moyennée sur une forêt d'arbres aussi aléatoire, est une mesure de normalité et de jugement. La division aléatoire produit un chemin significativement plus court pour les anomalies. Par conséquent, si une forêt d'arbres aléatoires produit de manière générique des chemins plus courts pour un échantillon particulier, ils sont susceptibles d'être anormaux. Cette stratégie est illustrée ci-dessous.

2.7.2.3.1 Classe SVM vs enveloppe elliptique vs forêt d'isolement

Strictement parlant, un SVM à une classe est une nouvelle méthode de détection, pas une méthode de détection des valeurs aberrantes: l'ensemble d'apprentissage ne doit pas être contaminé car il est ajusté par les valeurs aberrantes. En bref, il est très difficile de détecter les valeurs aberrantes dans des dimensions plus élevées, ou de ne faire aucune hypothèse sur la distribution des données sous-jacentes, et les SVM à classe unique fournissent des résultats utiles dans ces situations. L'exemple suivant montre comment les performances co-distribuées se dégradent avec moins de données et moins.

svm.OneClassSVM fonctionne bien avec des données avec plusieurs modes et ensembles. IsolationForest fonctionne bien dans tous les cas.

Comparaison de l'approche SVM 1 classe et de l'enveloppe elliptique

Pour un mode inlier ovale bien centré, svm.OneClassSVM Vous ne pouvez pas bénéficier de la symétrie de rotation de la population inlier. De plus, il s'inscrit légèrement dans les valeurs aberrantes présentes dans l'ensemble d'apprentissage. Inversement, covariance.EllipticEnvelope basé sur l'ajustement de la covariance est une distribution inlier. Apprenez une ellipse qui ressemble beaucoup à. ensemble.IsolationForest fonctionne également.

L'enveloppe elliptique ne s'adapte pas bien aux inliers lorsque la distribution inlier devient bimodale. Cependant, covariance.EllipticEnvelope et [svm.OneClassSVM](http: // scikit) -Learn.org/0.18/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM) ont tous deux des difficultés à détecter les deux modes, [svm.OneClassSVM](http: // scikit) Vous pouvez voir que -learn.org/0.18/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM) a tendance à se substituer. Puisqu'il n'y a pas de modèle d'inliers, la zone dans laquelle certaines valeurs aberrantes sont regroupées est interprétée comme une valeur d'entrée.

Si la distribution initiale est forte et non gaussienne, svm.OneClassSVM est [ensemble.IsolationForest] ](Http://scikit-learn.org/0.18/modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.ensemble.IsolationForest) peut restaurer une approximation raisonnable, mais covariance.EllipticEnvelope échoue complètement.


[scikit-learn 0.18 Guide de l'utilisateur 2. Apprendre sans enseignant](http://qiita.com/nazoking@github/items/267f2371757516f8c168#2-%E6%95%99%E5%B8%AB%E3%81%AA À partir de% E3% 81% 97% E5% AD% A6% E7% BF% 92)

© 2010 --2016, développeurs scikit-learn (licence BSD).

Recommended Posts

[Français] scikit-learn 0.18 Guide de l'utilisateur 2.7. Détection des nouveautés et des valeurs aberrantes
[Français] scikit-learn 0.18 Guide de l'utilisateur 4.1. Union des pipelines et des fonctionnalités: combinaison d'estimateurs
[Français] scikit-learn 0.18 Guide de l'utilisateur 1.12. Algorithme multi-classes et algorithme multi-étiquettes
[Français] scikit-learn 0.18 Guide de l'utilisateur 4.5. Projection aléatoire
[Français] scikit-learn 0.18 Guide de l'utilisateur 1.11. Méthode Ensemble
[Français] scikit-learn 0.18 Guide de l'utilisateur 1.15. Régression isotonique
[Français] scikit-learn 0.18 Guide de l'utilisateur 1.16. Étalonnage des probabilités
[Français] scikit-learn 0.18 Guide de l'utilisateur 1.13 Sélection des fonctionnalités
[Français] scikit-learn 0.18 Guide de l'utilisateur 3.4. Persistance du modèle
[Français] scikit-learn 0.18 Guide de l'utilisateur 2.8. Estimation de la densité
[Français] scikit-learn 0.18 Guide de l'utilisateur 4.3. Prétraitement des données
[Français] scikit-learn 0.18 Guide de l'utilisateur 3.1. Validation croisée: évaluer les performances de l'estimateur
[Français] scikit-learn 0.18 Guide de l'utilisateur 4.4. Réduction de dimension non supervisée
[Français] scikit-learn 0.18 Guide de l'utilisateur 1.4. Support Vector Machine
[Français] scikit-learn 0.18 Guide de l'utilisateur 4.8. Convertir la cible de prédiction (y)
[Français] Table des matières du didacticiel scikit-learn 0.18
Guide de l'utilisateur de Pandas "Formatage de tableau et tableau croisé dynamique" (Document officiel traduction japonaise)
[Français] scikit-learn 0.18 Guide de l'utilisateur 3.5. Courbe de vérification: tracez le score pour évaluer le modèle
[Français] scikit-learn 0.18 Guide de l'utilisateur 2.5. Décomposer les signaux en composants (problème de décomposition de la matrice)
Comparaison d'exemples d'implémentation de k-means de scikit-learn et pyclustering