Forêts aléatoires – description de la classification
Contenu
introduction
Aperçu
Caractéristiques des forêts aléatoires
Remarques
Comment fonctionnent les forêts aléatoires
L’estimation d’erreur oob
Importance variable
Importance de Gini
Les interactions
Proximité
Mise à l’échelle
Prototypes
Valeurs manquantes pour l’ensemble d’entraînement
Valeurs manquantes pour l’ensemble de test
Cas mal étiquetés
Valeurs aberrantes
Apprentissage non supervisé
Erreur de prédiction d’équilibrage
Détecter les nouveautés
Une étude de cas – données de puces à ADN
Mode de classification
Importance variable
Utiliser des variables importantes
Interactions variables
Mise à l’échelle des données
Prototypes
Valeurs aberrantes
Une étude de cas – Données ADN
Valeurs manquantes dans l’ensemble d’entraînement
Valeurs manquantes dans l’ensemble de test
Cas mal étiquetés
Études de cas pour l’apprentissage non supervisé
Regroupement des données de puces à ADN
Regroupement des données ADN
Regroupement des données de verre
Regroupement des données spectrales
Les références
introduction
Cette section donne un bref aperçu des forêts aléatoires et quelques commentaires sur les caractéristiques de la méthode.
Aperçu
Nous supposons que l’utilisateur connaît la construction d’arbres de classification uniques. Random Forests cultive de nombreux arbres de classification. Pour classer un nouvel objet à partir d’un vecteur d’entrée, placez le vecteur d’entrée vers le bas de chacun des arbres de la forêt. Chaque arbre donne une classification, et nous disons que l’arbre «vote» pour cette classe. La forêt choisit le classement ayant le plus de voix (sur tous les arbres de la forêt).
Chaque arbre est cultivé comme suit:
- Si le nombre d’observations dans l’ensemble d’apprentissage est N, échantillonnez N observations au hasard – mais avec remplacement, à partir des données d’origine. Cet échantillon sera l’ensemble de formation pour la croissance de l’arbre.
- S’il y a M variables d’entrée, un nombre m << M est spécifié de telle sorte qu'à chaque nœud, m variables sont sélectionnées au hasard parmi M et la meilleure répartition sur ces m est utilisée pour fractionner le nœud. La valeur de m est maintenue constante pendant la croissance de la forêt.
- Chaque arbre est cultivé dans la plus grande mesure possible. Il n’y a pas de taille.
Dans l’article original sur les forêts aléatoires, il a été montré que le taux d’erreur de la forêt dépend de deux choses:
- Le corrélation entre deux arbres quelconques de la forêt. L’augmentation de la corrélation augmente le taux d’erreur de la forêt.
- Le force de chaque arbre individuel de la forêt. Un arbre avec un faible taux d’erreur est un classificateur puissant. L’augmentation de la force des arbres individuels diminue le taux d’erreur forestier.
La réduction de m réduit à la fois la corrélation et la force. L’augmenter augmente les deux. Quelque part entre les deux se trouve une plage «optimale» de m – généralement assez large. En utilisant le taux d’erreur oob (voir ci-dessous), une valeur de m dans la plage peut être trouvée rapidement. C’est le seul paramètre ajustable auquel les forêts aléatoires sont quelque peu sensibles.
Caractéristiques des forêts aléatoires
- Il est d’une précision inégalée parmi les algorithmes actuels.
- Il fonctionne efficacement sur de grandes bases de données.
- Il peut gérer des milliers de variables d’entrée sans suppression de variable.
- Il donne des estimations des variables importantes dans la classification.
- Il génère une estimation interne non biaisée de l’erreur de généralisation à mesure que la construction de la forêt progresse.
- Il dispose d’une méthode efficace pour estimer les données manquantes et maintient l’exactitude lorsqu’une grande partie des données est manquante.
- Il a des méthodes pour équilibrer l’erreur dans les ensembles de données déséquilibrés de population de classe.
- Les forêts générées peuvent être enregistrées pour une utilisation future sur d’autres données.
- Des prototypes sont calculés qui donnent des informations sur la relation entre les variables et la classification.
- Il calcule les proximités entre les paires d’observations qui peuvent être utilisées dans le regroupement, la localisation des valeurs aberrantes ou (par mise à l’échelle) pour donner des vues intéressantes des données.
- Les capacités de ce qui précède peuvent être étendues aux données non étiquetées, conduisant à une mise en cluster non supervisée, des vues de données et une détection des valeurs aberrantes.
- Il propose une méthode expérimentale pour détecter les interactions variables.
Remarques
Les forêts aléatoires ne suraiment pas. Vous pouvez exécuter autant d’arbres que vous le souhaitez. C’est rapide.
Fonctionnant sur un ensemble de données avec 50000 observations et 100 variables, il a produit 100 arbres sur 11
minutes sur une machine 800Mhz. Pour les grands ensembles de données, la principale exigence de mémoire est le
stockage des données proprement dites et trois tableaux d’entiers avec les mêmes dimensions que les données.
Si les proximités sont calculées, les besoins de stockage augmentent à mesure que le nombre de cas multiplié par
nombre d’arbres.
Comment fonctionnent les forêts aléatoires
Pour comprendre et utiliser les différentes options, de plus amples informations sur leur fonctionnement
calculé est utile. La plupart des options dépendent de deux objets de données générés par des forêts aléatoires.
Wuand l’ensemble d’apprentissage pour l’arbre actuel est dessiné par échantillonnage avec remplacement, environ
un tiers des cas sont exclus de l’échantillon. Ce oob (hors sac)
Les données est utilisé pour obtenir une estimation non biaisée en cours d’exécution de l’erreur de classification lorsque les arbres sont
ajouté à la forêt. Il est également utilisé pour obtenir des estimations d’importance variable.
UNEaprès que chaque arbre est construit, toutes les données sont exécutées dans l’arbre,
et proximités sont calculés pour chaque paire d’observations.
Si deux cas occupent le même nœud terminal, leur proximité est augmentée de un. À la fin de
run, les proximités sont normalisées en divisant par le nombre d’arbres. Les proximités sont utilisées dans
remplacer les données manquantes, localiser les valeurs aberrantes et produire des vues éclairantes de faible dimension des données.
L’estimation de l’erreur hors sac (OOB)
Dans les forêts aléatoires, il n’est pas nécessaire de procéder à une validation croisée ou à un ensemble de test distinct pour
obtenir une estimation non biaisée de l’erreur de l’ensemble de tests. Il est estimé en interne, lors de la
exécuter, comme suit:
Chaque arbre est construit à l’aide d’un échantillon bootstrap différent des données d’origine.
Environ un tiers des cas sont exclus de l’échantillon bootstrap et ne sont pas utilisés dans le
construction du kième arbre.
Mettez chaque cas laissé de côté dans la construction du kème arbre en bas du kème arbre pour obtenir
une classification. De cette manière, une classification de l’ensemble de test est obtenue pour chaque cas
dans environ un tiers des arbres. À la fin de la course, prenez j pour être la classe qui a obtenu
la plupart des votes chaque fois que le cas n était oob. La proportion de fois où j n’est pas égal
à la vraie classe de n moyennée dans tous les cas est l’estimation d’erreur oob.
Cela s’est avéré impartial dans de nombreux tests.
Importance variable
Dans chaque arbre cultivé dans la forêt, posez les caisses et comptez
le nombre de votes exprimés pour la classe correcte. Maintenant permutez au hasard
les valeurs de la variable m dans les cas oob et notez ces cas
l’arbre. Soustrayez le nombre de voix pour la classe correcte dans le
données oob permutées à m variable à partir du nombre de votes pour la classe correcte dans le non touché
oob données. La moyenne de ce nombre sur tous les arbres de la forêt est
le score brut d’importance de la variable m.
Si les valeurs de ce score d’arbre en arbre sont indépendantes, alors
l’erreur standard peut être calculée par un calcul standard.
Les corrélations de ces scores entre les arbres ont été calculées pour
un certain nombre d’ensembles de données et s’est avérée assez faible, nous calculons donc
erreurs standard de manière classique, divisez le score brut par sa norme
erreur pour obtenir un score z et attribuer un niveau de signification au score z
en supposant la normalité.
Si le nombre de variables est très important, les forêts peuvent être exécutées une fois avec toutes les variables, puis réexécutées en utilisant uniquement les variables les plus importantes de la première exécution.
Pour chaque cas, considérez tous les arbres pour lesquels il est oob. Soustrayez le pourcentage de votes pour la classe correcte dans les données oob à permutation variable m du pourcentage de votes pour la classe correcte dans les données oob intactes. Il s’agit du score d’importance locale de la variable m pour ce cas, et il est utilisé dans le programme graphique RAFT.
Importance de Gini
Chaque fois qu’une division d’un nœud est faite sur la variable m l’impureté gini
le critère pour les deux nœuds descendants est inférieur au nœud parent.
L’addition des diminutions de Gini pour chaque variable individuelle dans l’ensemble
les arbres de la forêt donnent une importance variable rapide qui est souvent
très cohérent avec la mesure de l’importance de la permutation.
Les interactions
La définition opérationnelle de l’interaction utilisée est que les variables m et k
interagir si une division sur une variable, disons m, dans un arbre fait une division sur
k soit systématiquement moins possible ou plus possible. La mise en oeuvre
utilisé est basé sur les valeurs gini g (m) pour chaque arbre de la forêt. Ces
sont classés pour chaque arbre et pour chacune des deux variables, la différence absolue
de leurs rangs sont moyennés sur tous les arbres.
Ce nombre est également calculé sous l’hypothèse que les deux variables sont
indépendants les uns des autres et les derniers soustraits des premiers. Un grand
un nombre positif implique qu’une division sur une variable inhibe une division sur le
autre et inversement. Il s’agit d’une procédure expérimentale dont les conclusions
doivent être considérés avec prudence. Il n’a été testé que sur quelques ensembles de données.
Proximité
Ce sont l’un des outils les plus utiles dans les forêts aléatoires. Les proximités à l’origine
formé une matrice NxN. Après qu’un arbre ait poussé,
mettez toutes les données, à la fois formation et oob, dans l’arborescence. Si les cas k et n sont dans le
le même nœud terminal augmente leur proximité de un. A la fin, normalisez les proximités
en divisant par le nombre d’arbres.
Les utilisateurs ont noté qu’avec de grands ensembles de données, ils ne pouvaient pas insérer une matrice NxN dans une mémoire rapide.
Une modification a réduit la taille de mémoire requise à NxT où T est le nombre d’arbres dans
la forêt.
Pour accélérer la mise à l’échelle intensive en calcul et le remplacement itératif des valeurs manquantes, le
l’utilisateur a la possibilité de ne conserver que les plus grandes proximités de chaque cas.
Lorsqu’un ensemble de test est présent, les proximités de chaque cas dans l’ensemble de test avec chaque cas
dans l’ensemble d’apprentissage peuvent également être calculés. La quantité de calcul supplémentaire
est modéré.
Mise à l’échelle
Les proximités entre les cas n et k forment une matrice {prox (n, k)}. D’après leur définition,
il est facile de montrer que cette matrice est symétrique, définie positive et bornée au dessus par
1, avec les éléments diagonaux égaux à 1. Il s’ensuit que les valeurs 1-prox (n, k)
sont des distances au carré dans un espace euclidien de dimension non supérieure au nombre de
cas. Pour plus d’informations sur la mise à l’échelle, voir « Multidimensional Scaling » de T.F. Cox et M.A. Cox.
Soit prox (-, k) la moyenne de prox (n, k) sur la 1ère coordonnée, prox (n, -) la moyenne
de prox (n, k) sur la 2ème coordonnée, et prox (-, -) la moyenne sur les deux coordonnées. Puis la matrice
- cv (n, k) =. 5 * (prox (n, k) -prox (n, -) – prox (-, k) + prox (-, -))
est la matrice des produits internes des distances et est également symétrique définie positive.
Soit les valeurs propres de cv l(j)
et les vecteurs propres nj(n). Puis les vecteurs
x (n) = (Öl(1)
n1(n) , Öl(2) n2(n), …,)
ont des distances au carré entre elles égales à 1-prox (n, k). Les valeurs de Öl(j) nj(n) sont appelées la jième coordonnée de mise à l’échelle.
En mise à l’échelle métrique, l’idée est d’approximer les vecteurs x (n) par les premières coordonnées de mise à l’échelle. Cela se fait dans des forêts aléatoires en extrayant les quelques plus grandes valeurs propres de la matrice cv, et leurs vecteurs propres correspondants. Le tracé bidimensionnel de la ième coordonnée de mise à l’échelle par rapport à la jth donne souvent des informations utiles sur les données. Le plus utile est généralement le graphique du 2ème vs le 1er.
Puisque les fonctions propres sont les quelques premières d’une matrice NxN, la charge de calcul peut prendre du temps. Nous vous conseillons de prendre nrnn considérablement plus petit que la taille de l’échantillon pour accélérer ce calcul.
Il existe des moyens plus précis de projeter les distances dans de petites dimensions, par exemple l’algorithme de Roweis et Saul. Mais les bonnes performances, jusqu’à présent, de la mise à l’échelle métrique nous ont empêchés de mettre en œuvre des algorithmes de projection plus précis. Une autre considération est la vitesse. La mise à l’échelle métrique est l’algorithme actuel le plus rapide pour la projection vers le bas.
En général, trois ou quatre coordonnées de mise à l’échelle sont suffisantes pour donner de bonnes images des données. Le tracé de la deuxième coordonnée de mise à l’échelle par rapport à la première donne généralement la vue la plus éclairante.
Prototypes
Les prototypes sont un moyen de se faire une idée de la relation entre les variables et la classification.
Pour la classe jth, nous trouvons le cas qui a le
le plus grand nombre de cas de classe j parmi ses k voisins les plus proches, déterminé en utilisant les proximités.
Parmi ces k cas, on trouve la médiane, 25e
centile et 75e centile pour chaque variable. Le
les médianes sont le prototype de la classe j et les quartiles donnent une estimation de is
stabilité.
Pour le deuxième prototype, nous
répétez la procédure mais ne considérez que les cas qui ne font pas partie des k originaux, et ainsi de suite.
Lorsque nous demandons que des prototypes soient affichés à l’écran ou enregistrés dans un fichier, les prototypes
les variables sont normalisées en soustrayant le 5e centile et en divisant par la différence entre
les 95e et 5e centiles.
Pour les variables catégorielles, le prototype est la valeur la plus fréquente.
Lorsque nous demandons que des prototypes soient affichés à l’écran ou enregistrés dans un fichier, toutes les fréquences sont données pour des variables catégorielles.
Remplacement de la valeur manquante pour l’ensemble de formation
Les forêts aléatoires peuvent remplacer les valeurs manquantes de deux manières. Le premier moyen est rapide. Si la mième variable n’est pas catégorique, la méthode calcule la médiane de toutes les valeurs de cette variable dans la classe j, puis elle utilise cette valeur pour remplacer toutes les valeurs manquantes de la mième variable dans la classe j. Si la mième variable est catégorique, le remplacement est la valeur non manquante la plus fréquente de la classe j.
Ces valeurs de remplacement sont appelées remplissages.
La deuxième façon de remplacer les valeurs manquantes est plus coûteuse en calcul, mais a donné de meilleures performances que la première, même avec de grandes quantités de données manquantes. Il remplace les valeurs manquantes uniquement dans l’ensemble d’apprentissage. Cela commence par un remplissage grossier et inexact des valeurs manquantes. Ensuite, il exécute une forêt et calcule les proximités.
Si x (m, n) est une valeur continue manquante, estimez son remplissage comme une moyenne sur les valeurs non manquantes des mèmes variables pondérées par les proximités entre le nième cas et le cas de valeur non manquante. S’il s’agit d’une variable catégorielle manquante, remplacez-la par la valeur non manquante la plus fréquente où la fréquence est pondérée par la proximité.
Maintenant, itérez-construisez à nouveau une forêt en utilisant ces valeurs nouvellement remplies, trouvez de nouveaux remplissages et répétez l’itération. Notre expérience est que 4 à 6 itérations suffisent.
Remplacement de la valeur manquante pour l’ensemble de test
Lorsqu’il existe un ensemble de test, il existe deux méthodes de remplacement différentes selon que des étiquettes existent pour l’ensemble de test.
Si c’est le cas, les remplissages dérivés de l’ensemble d’apprentissage sont utilisés comme remplacements. Si les étiquettes n’existent pas, alors chaque cas de l’ensemble de test est répliqué nclass fois (nclass = nombre de classes). La première réplique d’un cas est supposée être de classe 1 et la classe un remplit est utilisée pour remplacer les valeurs manquantes. La deuxième réplique est supposée de classe 2 et les remplissages de classe 2 sont utilisés dessus.
Cet ensemble de test augmenté est exécuté dans l’arborescence. Dans chaque ensemble de répliques, celui qui reçoit le plus de votes détermine la classe du cas d’origine.
Cas mal étiquetés
Les ensembles de formation sont souvent formés en utilisant le jugement humain pour attribuer des étiquettes. Dans certaines régions, cela conduit à une fréquence élevée de mauvais étiquetage. De nombreux cas mal étiquetés peuvent être détectés à l’aide de la mesure des valeurs aberrantes. Un exemple est donné dans l’étude de cas ADN.
Valeurs aberrantes
Les valeurs aberrantes sont généralement définies comme des observations supprimées du corps principal des données. Traduisez cela comme suit: les valeurs aberrantes sont des cas dont la proximité avec tous les autres cas dans les données est généralement faible. Une révision utile consiste à définir les valeurs aberrantes par rapport à leur classe. Ainsi, une valeur aberrante de la classe j est un cas dont les proximités avec tous les autres cas de classe j sont petites.
Définissez la proximité moyenne entre le cas n de la classe j et le reste de la classe de données d’apprentissage j comme suit:
La mesure aberrante brute pour le cas n est définie comme
Ce sera grand si la proximité moyenne est petite. Dans chaque classe, trouvez la médiane de ces mesures brutes et leur écart absolu par rapport à la médiane. Soustrayez la médiane de chaque mesure brute et divisez par l’écart absolu pour obtenir la mesure aberrante finale.
Apprentissage non supervisé
Dans l’apprentissage non supervisé, les données consistent en un ensemble de X -vecteurs de même dimension sans étiquettes de classe ni variables de réponse. Il n’y a pas de chiffre de mérite à optimiser, laissant le champ ouvert à des conclusions ambiguës. L’objectif habituel est de regrouper les données – pour voir si elles tombent en différentes piles, chacune pouvant se voir attribuer une signification.
L’approche dans les forêts aléatoires est de considérer les données d’origine comme de la classe 1 et de créer une seconde classe synthétique de même taille qui sera étiquetée comme classe 2. La seconde classe synthétique est créée en échantillonnant au hasard à partir des distributions univariées de l’original. Les données. Voici comment un seul membre de la classe deux est créé – la première coordonnée est échantillonnée à partir des N valeurs {x (1, n)}. La deuxième coordonnée est échantillonnée indépendamment des N valeurs {x (2, n)}, et ainsi de suite.
Ainsi, la classe deux a la distribution de variables aléatoires indépendantes, chacune ayant la même distribution univariée que la variable correspondante dans les données d’origine. La classe 2 détruit ainsi la structure de dépendance dans les données d’origine. Mais maintenant, il existe deux classes et ce problème artificiel à deux classes peut être exécuté à travers des forêts aléatoires. Cela permet d’appliquer toutes les options de forêts aléatoires à l’ensemble de données d’origine non étiqueté.
Si le taux d’erreur de classification oob dans le problème à deux classes est, disons, de 40% ou plus, cela implique que le X -Les variables ressemblent trop à des variables indépendantes pour des forêts aléatoires. Les dépendances n’ont pas un grand rôle et il n’y a pas beaucoup de discrimination. Si le taux d’erreurs de classification est inférieur, les dépendances jouent un rôle important.
Le formuler comme un problème à deux classes a un certain nombre de bénéfices. Les valeurs manquantes peuvent être remplacées efficacement. Des valeurs aberrantes peuvent être trouvées. Une importance variable peut être mesurée. La mise à l’échelle peut être effectuée (dans ce cas, si les données d’origine avaient des étiquettes, la mise à l’échelle non supervisée conserve souvent la structure de la mise à l’échelle d’origine). Mais le gain le plus important est la possibilité de clustering.
Erreur de prédiction d’équilibrage
Dans certains ensembles de données, l’erreur de prédiction entre les classes est fortement déséquilibrée. Certaines classes ont une faible erreur de prédiction, d’autres une haute. Cela se produit généralement lorsqu’une classe est beaucoup plus grande qu’une autre. Ensuite, les forêts aléatoires, essayant de minimiser le taux d’erreur global, maintiendront le taux d’erreur bas sur la grande classe tout en laissant les classes plus petites avoir un taux d’erreur plus élevé. Par exemple, dans la découverte de médicaments, où une molécule donnée est classée comme active ou non, il est courant d’avoir les actifs dépassés en nombre de 10 à 1, jusqu’à 100 à 1. Dans ces situations, le taux d’erreur sur la classe intéressante (actifs) sera très élevé.
L’utilisateur peut détecter le déséquilibre en sortant les taux d’erreur pour les classes individuelles. Pour illustrer 20 données synthétiques dimensionnelles sont utilisées. La classe 1 se produit dans une gaussienne sphérique, la classe 2 dans une autre. Un ensemble de formation de 1000 classes 1 et 50 classes 2 est généré, ainsi qu’un ensemble de test de 5000 classes 1 et 250 classes 2.
Le résultat final d’une forêt de 500 arbres sur ces données est:
500 3.7 0.0 78.4
Il y a une faible erreur globale de l’ensemble de tests (3,73%), mais la classe 2 a plus de 3/4 de ses cas mal classés.
L’équilibrage des erreurs peut être effectué en définissant des poids différents pour les classes.
Plus le poids attribué à une classe est élevé, plus son taux d’erreur diminue. Un guide quant aux poids à donner est de les rendre inversement proportionnels aux populations de classe. Réglez donc les poids à 1 sur la classe 1 et 20 sur la classe 2, et recommencez. La sortie est:
500 12.1 12.7 0.0
Le poids de 20 sur la classe 2 est trop élevé. Réglez-le sur 10 et réessayez, en obtenant:
500 4.3 4.2 5.2
C’est assez proche de l’équilibre. Si un équilibre exact est souhaité, le poids de la classe 2 pourrait être un peu plus secoué.
Notez qu’en obtenant ce solde, le taux d’erreur global a augmenté. C’est le résultat habituel – pour obtenir un meilleur équilibre, le taux d’erreur global sera augmenté.
Détecter les nouveautés
La mesure des valeurs aberrantes pour l’ensemble de tests peut être utilisée pour trouver de nouveaux cas qui ne correspondent pas bien à des classes précédemment établies.
Les données satimage sont utilisées pour illustrer. Il y a 4435 cas de formation, 2000 cas de test, 36 variables et 6 classes.
Dans l’expérience, cinq cas ont été sélectionnés à intervalles égaux dans l’ensemble de test. Chacun de ces cas s’est vu attribuer une «nouveauté» en remplaçant chaque variable du cas par la valeur de la même variable dans un cas d’apprentissage sélectionné au hasard. La course se fait en utilisant plus tôt = 2, nprox = 1. La sortie de l’analyse est représentée ci-dessous:
Cela montre qu’en utilisant un ensemble d’apprentissage établi, les ensembles de tests peuvent être exécutés et vérifiés pour de nouveaux cas, plutôt que d’exécuter l’ensemble d’apprentissage à plusieurs reprises. Les résultats de l’ensemble d’apprentissage peuvent être stockés afin que les ensembles de test puissent être exécutés dans la forêt sans la reconstruire.
Cette méthode de vérification de la nouveauté est expérimentale. Il peut ne pas distinguer les nouveaux cas sur d’autres données. Par exemple, il ne distingue pas les nouveaux cas dans les données de test ADN.
Une étude de cas – données de puces à ADN
Pour donner une idée des capacités des forêts aléatoires, nous les illustrons sur un ensemble de données précoces sur le lymphome microarray avec 81 cas, 3 classes et 4682 variables correspondant à des expressions génétiques.
Mode de classification
Pour effectuer une analyse de classification directe, utilisez les paramètres:
parameter( c DESCRIBE DATA 1 mdim=4682, nsample0=81, nclass=3, maxcat=1, 1 ntest=0, labelts=0, labeltr=1, c c SET RUN PARAMETERS 2 mtry0=150, ndsize=1, jbt=1000, look=100, lookcls=1, 2 jclasswt=0, mdim2nd=0, mselect=0, iseed=4351, c c SET IMPORTANCE OPTIONS 3 imp=0, interact=0, impn=0, impfast=0, c c SET PROXIMITY COMPUTATIONS 4 nprox=0, nrnn=5, c c SET OPTIONS BASED ON PROXIMITIES 5 noutlier=0, nscale=0, nprot=0, c c REPLACE MISSING VALUES 6 code=-999, missfill=0, mfixrep=0, c c GRAPHICS 7 iviz=1, c c SAVING A FOREST 8 isaverf=0, isavepar=0, isavefill=0, isaveprox=0, c c RUNNING A SAVED FOREST 9 irunrf=0, ireadpar=0, ireadfill=0, ireadprox=0)
Remarque: comme la taille de l’échantillon est petite, pour la fiabilité, 1000 arbres sont cultivés en utilisant mtry0 = 150. Les résultats ne sont pas sensibles à mtry0 sur la plage 50-200. Puisque look = 100, les résultats oob sont affichés tous les 100 arbres en termes de pourcentage mal classifié
100 2.47 200 2.47 300 2.47 400 2.47 500 1.23 600 1.23 700 1.23 800 1.23 900 1.23 1000 1.23
(Remarque: un taux d’erreur de 1,23% implique que l’un des 81 cas a été mal classé,)
Importance variable
Les importances variables sont essentielles.
L’importance du run computing se fait en commutant lutin = 0 à
lutin = 1 dans la liste de paramètres ci-dessus. La sortie comporte quatre colonnes:
gene number the raw importance score the z-score obtained by dividing the raw score by its standard error the significance level.
Les 25 importances de gènes les plus élevées sont répertoriées triées par leurs scores z. Pour obtenir la sortie sur un fichier disque, mettez imputer = 1, et donnez un nom au fichier de sortie correspondant. Si imputer est mis égal à 2, les résultats sont écrits à l’écran et vous verrez un affichage similaire à celui ci-dessous:
gene raw z-score significance number score 667 1.414 1.069 0.143 689 1.259 0.961 0.168 666 1.112 0.903 0.183 668 1.031 0.849 0.198 682 0.820 0.803 0.211 878 0.649 0.736 0.231 1080 0.514 0.729 0.233 1104 0.514 0.718 0.237 879 0.591 0.713 0.238 895 0.519 0.685 0.247 3621 0.552 0.684 0.247 3529 0.650 0.683 0.247 3404 0.453 0.661 0.254 623 0.286 0.655 0.256 3617 0.498 0.654 0.257 650 0.505 0.650 0.258 645 0.380 0.644 0.260 3616 0.497 0.636 0.262 938 0.421 0.635 0.263 915 0.426 0.631 0.264 669 0.484 0.626 0.266 663 0.550 0.625 0.266 723 0.334 0.610 0.271 685 0.405 0.605 0.272 3631 0.402 0.603 0.273
Utiliser des variables importantes
Une autre option utile consiste à effectuer une réexécution automatique en utilisant uniquement les variables les plus importantes lors de l’exécution d’origine. Supposons que nous souhaitons utiliser uniquement les 15 variables les plus importantes trouvées dans la première exécution de la deuxième exécution. Puis dans les options changent mdim2nd = 0 à mdim2nd = 15 , garder imp = 1 et compilez. En dirigeant la sortie vers l’écran, vous verrez la même sortie que ci-dessus pour la première exécution plus la sortie suivante pour la deuxième exécution. Ensuite, les importances sont sorties pour les 15 variables utilisées dans la 2ème exécution.
gene raw z-score significance number score 3621 6.235 2.753 0.003 1104 6.059 2.709 0.003 3529 5.671 2.568 0.005 666 7.837 2.389 0.008 3631 4.657 2.363 0.009 667 7.005 2.275 0.011 668 6.828 2.255 0.012 689 6.637 2.182 0.015 878 4.733 2.169 0.015 682 4.305 1.817 0.035 644 2.710 1.563 0.059 879 1.750 1.283 0.100 686 1.937 1.261 0.104 1080 0.927 0.906 0.183 623 0.564 0.847 0.199
Interactions variables
Une autre option consiste à examiner les interactions entre les variables. Si la variable m1 est corrélée à la variable m2, alors une division sur m1 diminuera la probabilité d’une division proche sur m2. La distance entre les divisions sur deux variables quelconques est comparée à leur différence théorique si les variables étaient indépendantes. Ce dernier est soustrait du premier – une grande valeur résultante est une indication d’une interaction répulsive. Pour obtenir cette sortie, modifiez interagir = 0 à interagir = 1 en quittant lutin = 1 et mdim2nd = 10.
La sortie consiste en une liste de codes: nous indiquant les numéros des gènes correspondant à id. 1-10. Les interactions sont arrondies à l’entier le plus proche et données dans la matrice suivant la liste de deux colonnes qui indique quel numéro de gène est le numéro 1 dans le tableau, etc.
1 2 3 4 5 6 7 8 9 10 1 0 13 2 4 8 -7 3 -1 -7 -2 2 13 0 11 14 11 6 3 -1 6 1 3 2 11 0 6 7 -4 3 1 1 -2 4 4 14 6 0 11 -2 1 -2 2 -4 5 8 11 7 11 0 -1 3 1 -8 1 6 -7 6 -4 -2 -1 0 7 6 -6 -1 7 3 3 3 1 3 7 0 24 -1 -1 8 -1 -1 1 -2 1 6 24 0 -2 -3 9 -7 6 1 2 -8 -6 -1 -2 0 -5 10 -2 1 -2 -4 1 -1 -1 -3 -5 0
Il existe de grandes interactions entre le gène 2 et les gènes 1,3,4,5 et entre 7 et 8.
Mise à l’échelle des données
Le souhait de chaque analyste de données est de se faire une idée de ce à quoi ressemblent les données. Il existe un excellent moyen de le faire dans les forêts aléatoires.
En utilisant la mise à l’échelle métrique, les proximités peuvent être projetées vers le bas sur un espace euclidien de faible dimension en utilisant des « coordonnées canoniques ». Les coordonnées canoniques D seront projetées sur un espace D-dimensionnel. Pour obtenir 3 coordonnées canoniques, les options sont les suivantes:
parameter( c DESCRIBE DATA 1 mdim=4682, nsample0=81, nclass=3, maxcat=1, 1 ntest=0, labelts=0, labeltr=1, c c SET RUN PARAMETERS 2 mtry0=150, ndsize=1, jbt=1000, look=100, lookcls=1, 2 jclasswt=0, mdim2nd=0, mselect=0, iseed=4351, c c SET IMPORTANCE OPTIONS 3 imp=0, interact=0, impn=0, impfast=0, c c SET PROXIMITY COMPUTATIONS 4 nprox=1, nrnn=50, c c SET OPTIONS BASED ON PROXIMITIES 5 noutlier=0, nscale=3, nprot=0, c c REPLACE MISSING VALUES 6 code=-999, missfill=0, mfixrep=0, c c GRAPHICS 7 iviz=1, c c SAVING A FOREST 8 isaverf=0, isavepar=0, isavefill=0, isaveprox=0, c c RUNNING A SAVED FOREST 9 irunrf=0, ireadpar=0, ireadfill=0, ireadprox=0)
Notez que lutin et mdim2nd ont été remis à zéro et nscale mis égal à 3. nrnn est fixé à 50, ce qui ordonne au programme de calculer les 50 plus grandes proximités pour chaque cas. Ensemble iscaleout= 1. La compilation donne une sortie avec nsample lignes et ces colonnes donnant l’ID de cas, la vraie classe, la classe prédite et 3 colonnes donnant les valeurs des trois coordonnées de mise à l’échelle. Tracer la 2e coordonnée canonique par rapport à la première donne:
Les trois classes sont très distinctes. Remarque: si l’on essaie d’obtenir ce résultat par l’un des algorithmes de clustering actuels, on est confronté à la tâche de construire une mesure de distance entre des paires de points dans un espace de 4682 dimensions – une entreprise à faible gain. Le graphique ci-dessus, basé sur les proximités, illustre leur connexion intrinsèque aux données.
Prototypes
Deux prototypes sont calculés pour chaque classe dans les données des puces à ADN
Les paramètres sont mdim2nd = 15, nprot = 2, imp = 1, nprox = 1, nrnn = 20. Les valeurs des variables sont normalisées entre 0 et 1. Voici le graphique
Valeurs aberrantes
Une valeur aberrante est un cas dont la proximité avec tous les autres cas est faible. En utilisant cette idée, une mesure de la périphérie est calculée pour chaque cas dans l’échantillon d’apprentissage. Cette mesure est différente pour les différentes classes. En règle générale, si la mesure est supérieure à 10, le boîtier doit être soigneusement inspecté. D’autres utilisateurs ont trouvé un seuil inférieur plus utile. Pour calculer la mesure, définissez nout = 1 et toutes les autres options à zéro. Voici un graphique de la mesure:
Il y a deux valeurs aberrantes possibles: l’un est le premier cas de la classe 1, le second est le premier cas de la classe 2.
Une étude de cas-données ADN
Il existe d’autres options dans les forêts aléatoires que nous illustrons à l’aide de l’ensemble de données ADN. Il y a 60 variables, toutes catégorielles à quatre valeurs, trois classes, 2000 cas dans l’ensemble d’apprentissage et 1186 dans l’ensemble de test.
Il s’agit d’un ensemble de données d’apprentissage automatique classique et est décrit plus en détail dans le livre de 1994 « Machine learning, Neural and Statistical Classification », éditeurs Michie, D., Spiegelhalter, D.J. et Taylor, C.C.
Cet ensemble de données est intéressant comme étude de cas car la nature catégorielle des variables de prédiction rend difficile l’application de nombreuses autres méthodes, comme les plus proches voisins.
Valeurs manquantes dans l’ensemble d’entraînement
Pour illustrer les options de remplissage des valeurs manquantes, des analyses ont été effectuées sur les données ADN après avoir supprimé 10%, 20%, 30%, 40% et 50% des données définies au hasard. Les deux méthodes manquer= 1 et mfixrep= 5 ont été utilisés. Les résultats sont donnés dans le graphique ci-dessous.
Il est remarquable de voir à quel point le mfixrep processus est. Des résultats tout aussi efficaces ont été obtenus sur d’autres ensembles de données. Ici nrnn= 5 est utilisé. Des valeurs plus élevées de nrnn ne donne pas de si bons résultats.
À la fin du processus de remplacement, il est conseillé de télécharger l’ensemble de formation terminé en définissant idataout = 1.
Valeurs manquantes dans l’ensemble de test
Dans la version 5, le seul moyen de remplacer les valeurs manquantes dans l’ensemble de test est de définir manquer = 2 avec rien d’autre. Selon que le jeu de test a des étiquettes ou non, missfill utilise différentes stratégies. Dans les deux cas, il utilise les valeurs de remplissage obtenues par l’exécution sur l’ensemble d’apprentissage.
Nous mesurons la qualité du remplissage de l’ensemble de test en observant le taux d’erreur qu’il attribue à l’ensemble d’apprentissage (qui ne manque pas). Si l’ensemble de test est tiré de la même distribution que l’ensemble d’apprentissage, cela donne un taux d’erreur de 3,7%. Au fur et à mesure que la proportion de données manquantes augmente, l’utilisation d’un remplissage dérive la distribution de l’ensemble de test de l’ensemble d’apprentissage et le taux d’erreur de l’ensemble de test augmente.
Nous pouvons vérifier la précision du remplissage pour aucune étiquette en utilisant les données ADN, en définissant labelts = 0, mais en vérifiant ensuite le taux d’erreur entre les classes remplies et les vraies étiquettes.
missing% labelts=1 labelts=0 10 4.9 5.0 20 8.1 8.4 30 13.4 13.8 40 21.4 22.4 50 30.4 31.4
Il y a seulement une petite perte à ne pas avoir d’étiquettes pour aider au remplissage.
Cas mal étiquetés
La base de données ADN contient 2000 cas dans l’ensemble d’apprentissage, 1186 dans l’ensemble de test et 60 variables, qui sont toutes des variables catégorielles à quatre valeurs. Dans l’ensemble d’apprentissage, cent cas sont choisis au hasard et leurs étiquettes de classe sont changées de manière aléatoire. La mesure aberrante est calculée et est représentée graphiquement ci-dessous avec les carrés noirs représentant les cas de commutation de classe
Sélectionnez le seuil sur 2,73. Ensuite, 90 des 100 cas avec des classes modifiées ont une mesure aberrante dépassant ce seuil. Sur les 1900 cas non modifiés, 62 dépassent le seuil.
Études de cas pour l’apprentissage non supervisé
Regroupement des données de puces à ADN
Nous donnons quelques exemples de l’efficacité du clustering non supervisé pour conserver la structure des données non étiquetées. La mise à l’échelle des données de la puce a cette image:
Supposons que dans les 81 cas, les étiquettes de classe soient effacées. Mais si nous voulons regrouper les données pour voir s’il y avait une conglomération naturelle. Encore une fois, avec une approche standard, le problème consiste à essayer d’obtenir une mesure de distance entre 4681 variables. Les forêts aléatoires utilisent comme point de départ différent.
Ensemble labeltr = 0 . Un ensemble de données synthétiques est construit qui comprend également 81 observations et 4 681 variables, mais qui n’a aucune dépendance entre les variables. L’ensemble de données d’origine est étiqueté classe 1, la classe synthétique 2.
S’il y a une bonne séparation entre les deux classes, c’est-à-dire si le taux d’erreur est faible, alors nous pouvons obtenir des informations sur les données d’origine. Ensemble nprox= 1, et iscale = D-1. Ensuite, les proximités de l’ensemble de données d’origine sont calculées et projetées vers le bas via des coordonnées d’échelle sur un espace de faible dimension. Voici l’intrigue du 2e par rapport au premier.
Les trois clusters obtenus à l’aide des étiquettes de classe sont toujours reconnaissables en mode non supervisé. L’erreur oob entre les deux classes est de 16,0%. Si un deux étapes est fait avec mdim2nd = 15, le taux d’erreur tombe à 2,5% et les clusters non supervisés sont plus serrés.
Regroupement des données ADN
Les images de mise à l’échelle des données ADN, à la fois supervisées et non supervisées, sont intéressantes et apparaissent ci-dessous:
La structure de la mise à l’échelle supervisée est conservée, bien qu’avec une rotation et une mise à l’échelle des axes différentes. L’erreur entre les deux classes est de 33%, signe d’un manque de forte dépendance.
Regroupement des données de verre
Un exemple plus spectaculaire de rétention de structure est donné en utilisant le jeu de données de verre – un autre banc d’essai classique d’apprentissage automatique. Il y a 214 cas, 9 variables et 6 classes. La mise à l’échelle étiquetée donne cette image:
L’effacement des étiquettes entraîne cette projection:
Regroupement des données spectrales
Un autre exemple utilise des données gracieusement fournies par Merck qui se composent des 468 premières intensités spectrales dans les spectres de 764 composés. Le défi présenté par Merck était de trouver de petits groupes cohésifs de cas périphériques dans ces données. Utiliser les forêts avec labeltr= 0, il y avait une excellente séparation entre les deux classes, avec un taux d’erreur de 0,5%, indiquant de fortes dépendances dans les données d’origine.
Nous avons examiné les valeurs aberrantes et généré ce graphique.
Ce graphique ne donne aucune indication des valeurs aberrantes. Mais les valeurs aberrantes doivent être assez isolées pour apparaître dans l’affichage des valeurs aberrantes. Pour rechercher des groupes périphériques, des coordonnées d’échelle ont été calculées. L’intrigue du 2ème vs le 1er est ci-dessous:
Cela montre, tout d’abord, que les spectres se répartissent en deux groupes principaux. Il y a une possibilité d’un petit groupe périphérique dans le coin supérieur gauche. Pour obtenir une autre image, la troisième coordonnée de mise à l’échelle est tracée par rapport à la première.
Le groupe en question est maintenant dans le coin inférieur gauche et sa séparation du corps principal des spectres est devenue plus apparente.
Les références
Les fondements théoriques de ce programme sont exposés dans le document «Random Forests». Il est disponible sur la même page Web que ce manuel. Il a été récemment publié dans le Machine Learning Journal.
Source de l’article