[PYTHON] [Apprentissage automatique] Essayez d'étudier une forêt aléatoire

Qu'est-ce que Random Forest?

Random Forest est un algorithme d'ensemble souvent utilisé dans l'apprentissage automatique. Il s'agit d'une méthode d'apprentissage d'ensemble qui améliore la précision en combinant le modèle d'apprentissage supervisé ** arbre de décision **. Comme le montre la figure ci-dessous, on l'appelle une forêt aléatoire car elle possède une structure semblable à une forêt qui combine les résultats de plusieurs arbres. L'une des caractéristiques de l'arbre de décision est qu'il est facile de surapprendre **. Les forêts aléatoires peuvent réduire les effets du surentraînement sur cet arbre décisionnel.

Screenshot 2019-11-25 at 14.23.23.png

Algorithme de forêt aléatoire

  1. Sélectionnez aléatoirement k entités dans un exemple de jeu de données avec m entités.
  2. Créez un arbre de décision en utilisant les fonctionnalités k.
  3. Répétez les étapes 1 et 2 n fois tout en changeant la combinaison des quantités de caractéristiques (ou en changeant aléatoirement le sous-ensemble utilisé ** boosttrap ample **) pour créer n arbres de décision.
  4. Pour le problème de classification, la valeur la plus fréquente des résultats de tous les arbres de décision est sortie, et pour le problème de régression, la valeur moyenne des résultats de tous les arbres de décision est sortie comme résultat final.

Avantages et inconvénients de la forêt aléatoire

Avantages

--Peut être utilisé à la fois pour la régression et la classification.

Désavantages

Scikit-learn Random Forest

import sklearn.ensemble
rf = sklearn.ensemble.RandomForestClassifier()
rf.fit(train_X, train_y)

Paramètres RandomForest

Paramètres- Aperçu option Défaut
criterion Critères de partage "gini", "entropy" "gini"
splitter Stratégie de sélection fractionnée "best", "random" "best"
max_depth La profondeur la plus profonde de l'arbre int None
min_samples_split Taille minimale de l'échantillon du nœud post-fractionné(S'il est petit, il a tendance à être surappris.) int(Le nombre d'échantillons)/float(Rapport à tous les échantillons) 2
min_samples_leaf feuille(Dernier nœud)Taille minimale de l'échantillon requise pour(S'il est petit, il a tendance à être surappris.) int/float 2
max_features Nombre d'entités utilisées pour la division(Plus grand a tendance à surapprendre) int/float, auto, log2 None
class_weight Poids de la classe "balanced", none none
presort Pré-tri des données(La vitesse de calcul change en fonction de la taille des données) bool False
min_impurity_decrease Limiter l'impureté et contrôler l'allongement des nœuds float 0.
boostrap Utiliser ou non un sous-ensemble d'échantillons lors de la création d'un arbre de décision bool 1
oob_score Utiliser ou non des échantillons non utilisés dans le bootstrap pour l'évaluation de l'exactitude bool False
n_jobs S'il faut paralléliser le processeur avec prédire et ajuster(-1)Utiliser tout à la fois 0,1,-1 0
random_state Graine utilisée lors de la génération de nombres aléatoires int none
verbose Verbalisation des résultats 1/0 0

Recommended Posts

[Apprentissage automatique] Essayez d'étudier une forêt aléatoire
[Apprentissage automatique] Comprendre la forêt aléatoire
Apprentissage automatique: forêt supervisée - aléatoire
[Apprentissage automatique] Étudions l'arbre de décision
Essayez le machine learning à la légère avec Kaggle
Forêt aléatoire (2)
[Apprentissage automatique] Résumons la forêt aléatoire de manière simple à comprendre
Forêt aléatoire
Les débutants en apprentissage automatique essaient la régression linéaire
Apprentissage automatique
SVM essayant l'apprentissage automatique avec scikit-learn
Recherche de semences aléatoires dans l'apprentissage automatique
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Exemple d'apprentissage automatique
Essayez de prédire la demande de puissance par l'apprentissage automatique
Essayez d'utiliser le bloc-notes Jupyter à partir d'Azure Machine Learning
Résumé du didacticiel d'apprentissage automatique
Apprentissage automatique sur le surapprentissage
Apprentissage automatique: supervisé - AdaBoost
Régression logistique d'apprentissage automatique
Essayez de prédire le taux de change (FX) avec un apprentissage automatique non approfondi
Machine de vecteur de support d'apprentissage automatique
Étudier l'apprentissage automatique - Édition Pandas -
Régression linéaire d'apprentissage automatique
Mémo du cours d'apprentissage automatique
Bibliothèque d'apprentissage automatique dlib
Apprentissage automatique (TensorFlow) + Lotto 6
Les débutants en apprentissage automatique essaient de créer un arbre de décision
Apprenez en quelque sorte le machine learning
[Apprentissage automatique] Essayez de détecter des objets à l'aide de la recherche sélective
Bibliothèque d'apprentissage automatique Shogun
Défi de lapin d'apprentissage automatique
Introduction à l'apprentissage automatique
Apprentissage automatique: k-voisins les plus proches
Qu'est-ce que l'apprentissage automatique?
[Apprentissage automatique] Démarrez Spark avec iPython Notebook et essayez MLlib
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
Les débutants en apprentissage automatique tentent de contacter Naive Bayes (2) - Mise en œuvre
Les débutants en apprentissage automatique tentent de contacter Naive Bayes (1) - Théorie
Modèle d'apprentissage automatique prenant en compte la maintenabilité
L'apprentissage automatique appris avec Pokemon
Ensemble de données pour l'apprentissage automatique
Essayez l'apprentissage en profondeur avec TensorFlow
Apprentissage automatique dans Delemas (s'entraîner)
Une introduction à l'apprentissage automatique
Techniques liées à l'apprentissage automatique / à la classification
Machine Learning: Supervision - Régression linéaire
Bases de l'apprentissage automatique (mémoire)
Essayez de désactiver IPv6 au hasard
Un débutant en apprentissage automatique a essayé la RBM
J'ai essayé d'utiliser RandomForest
Apprentissage automatique avec Python! Préparation
Arbre de décision et forêt aléatoire
Apprentissage par renforcement 5 Essayez de programmer CartPole?
Bloc-notes de ressources d'étude d'apprentissage automatique
Apprentissage automatique ② Résumé Naive Bayes
Utiliser Random Forest avec Python