Comprenez l'algorithme de forêt aléatoire et essayez-le avec scicit-learn.
La forêt aléatoire est un type d'apprentissage d'ensemble appelé ensachage qui combine plusieurs arbres de décision.
Le théorème du déjeuner non gratuit signifiait à l'origine qu'en optimisation combinée, si l'algorithme de recherche était appliqué à tous les problèmes possibles, les performances moyennes seraient similaires pour tous les algorithmes.
En effet, chaque algorithme a ses propres conditions préalables qui doivent être remplies, et tous les problèmes possibles ne satisfont pas à ces conditions préalables, donc un problème peut bien fonctionner, un autre. Cela montre qu'aucun algorithme n'est meilleur que les autres pour tous les problèmes, car il sera moins performant que les autres algorithmes.
Il est cité pour affirmer qu'il n'y a pas d'apprenant unique qui évolue à partir de cela et donne les meilleurs résultats pour tout problème d'apprentissage automatique.
Le théorème du déjeuner non gratuit mentionné ci-dessus montre qu'aucun apprenant universel n'est idéal pour un problème. Par conséquent, il est naturel de proposer une méthode de combinaison de plusieurs dispositifs d'apprentissage.
La méthode d'apprentissage consistant à prendre la majorité des extrants de plusieurs apprenants et à en faire le résultat final est appelée apprentissage d'ensemble. Les classificateurs individuels utilisés pour l'apprentissage d'ensemble sont appelés classificateurs faibles car ils n'ont besoin que de fonctionner un peu mieux que l'aléatoire.
L'ensachage (Boostrap AGGregatING) est une méthode typique d'apprentissage d'ensemble. Dans l'ensachage, comme le montre la figure ci-dessous, plusieurs classificateurs sont entraînés à l'aide de l'échantillon bootstrap des données d'entraînement, et pour les nouvelles données, la catégorie est sortie par décision majoritaire dans la classification, et la valeur estimée est sortie par la moyenne dans la régression.
Le bagging permet aux classificateurs individuels d'être formés indépendamment et en parallèle, mais l'échantillonnage bootstrap permet la duplication, donc l'utilisation d'un arbre de décision comme classificateur faible augmente la corrélation entre les arbres de décision, et ils sont tous similaires. Il est possible que cela devienne un gâchis.
La forêt aléatoire a amélioré ce problème.
Dans l'apprentissage aléatoire des forêts, lors de l'apprentissage d'un arbre de décision avec un échantillon bootstrap, au lieu d'utiliser toutes les quantités de caractéristiques, un nombre spécifié de quantités de caractéristiques est sélectionné au hasard et l'arbre de détermination est utilisé. Construire.
Dans l'ensachage, l'arbre de décision a été construit à partir de l'échantillon de sangle de démarrage, mais dans la forêt aléatoire, la quantité de caractéristiques utilisée dans l'échantillon de sangle de démarrage est sélectionnée au hasard et l'arbre de décision est construit comme indiqué dans la figure ci-dessous.
En randomisant les caractéristiques utilisées dans chaque échantillon bootstrap de cette manière, chaque arbre de décision devient diversifié et on peut s'attendre à ce qu'il réduise la corrélation entre les arbres de décision, ce qui était un problème lors du bagging.
Dans scikit-learn, l'argument n_estimators peut spécifier le nombre de classificateurs faibles, et l'argument max_features peut spécifier le nombre de fonctionnalités à utiliser. Par défaut, le nombre d'entités utilisées est le nombre de racines carrées des entités.
・ Processeur Intel (R) Core (TM) i7-6700K 4,00 GHz
・ Windows 10 Professionnel 1909 ・ Python 3.6.6 ・ Matplotlib 3.3.1 ・ Numpy 1.19.2 ・ Scikit-learn 0.23.2
Le programme implémenté est publié sur GitHub.
random_forest.py
Les résultats de l'application d'une forêt aléatoire à l'ensemble de données sur le cancer du sein utilisé jusqu'à présent sont présentés ci-dessous.
Accuracy 92.98%
Precision, Positive predictive value(PPV) 94.03%
Recall, Sensitivity, True positive rate(TPR) 94.03%
Specificity, True negative rate(TNR) 91.49%
Negative predictive value(NPV) 91.49%
F-Score 94.03%
La figure ci-dessous montre les limites discriminantes lors de l'exécution de la multiclassification sur un ensemble de données d'iris.
Pour les données du problème de régression, un nombre aléatoire a été ajouté à l'onde sinusoïdale. Dans la régression, la valeur moyenne est la valeur de sortie finale.
1.11.2. Forests of randomized trees
Recommended Posts