Table des matières:
- Chargement de vos données
- Line 1 importe la bibliothèque qui vous permet de diviser l'ensemble de données en deux parties.
- array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> y_test
- True], dtype = bool)
Vidéo: Vidéo 9 - Arbres de Décision (principes et inférence) 2024
Le modèle de forêt aléatoire est un modèle d'ensemble être utilisé dans l'analyse prédictive; il faut un ensemble (sélection) d'arbres de décision pour créer son modèle. L'idée est de prendre un échantillon aléatoire d'apprenants faibles (un sous-ensemble aléatoire des données d'apprentissage) et de les faire voter pour sélectionner le modèle le plus fort et le meilleur. Le modèle de forêt aléatoire peut être utilisé pour la classification ou la régression. Dans l'exemple suivant, le modèle de forêt aléatoire est utilisé pour classer les espèces d'iris.
Chargement de vos données
Cette liste de code chargera le jeu de données
iris
dans votre session: >>>> à partir de sklearn. datasets import load_iris >>>> iris = load_iris ()
Création d'une instance du classificateur
Les deux lignes de code suivantes créent une instance du classificateur. La première ligne importe la bibliothèque de forêt aléatoire. La deuxième ligne crée une instance de l'algorithme de la forêt aléatoire:
>>>> de sklearn. ensemble import RandomForestClassifier >>>> rf = RandomForestClassifier (n_estimators = 15,
random_state = 111)
Le paramètre
n_estimators
dans le constructeur est un paramètre d'accord couramment utilisé pour le modèle de forêt aléatoire. La valeur est utilisée pour construire le nombre d'arbres dans la forêt. Il s'agit généralement de 10 à 100% de l'ensemble de données, mais cela dépend des données que vous utilisez. Ici, la valeur est fixée à 15, soit 10% des données. Plus tard, vous verrez que changer la valeur du paramètre à 150 (100%) produit les mêmes résultats.
Le n
_estimators
est utilisé pour régler les performances du modèle et le surajustement. Plus la valeur est élevée, meilleure est la performance, mais au prix d'un surapprentissage. Plus la valeur est faible, plus les chances de ne pas être surpeuplées sont grandes, mais au détriment de la performance. En outre, il y a un point où l'augmentation du nombre va généralement se dégrader dans l'amélioration de la précision et peut augmenter considérablement la puissance de calcul nécessaire. Le paramètre par défaut est 10 s'il est omis dans le constructeur.
Vous devez diviser l'ensemble de données en ensembles d'entraînement et de test avant de pouvoir créer une instance du classificateur forestier aléatoire. Le code suivant accomplira cette tâche: >>>> à partir de sklearn import cross_validation >>>> X_train, X_test, y_train, y_test =
cross_validation. train_test_split (données d'iris,
iris. target, test_size = 0, 10, random_state = 111) >>>> rf = rf. fit (X_train, y_train)
Line 1 importe la bibliothèque qui vous permet de diviser l'ensemble de données en deux parties.
La ligne 2 appelle la fonction de la bibliothèque qui divise l'ensemble de données en deux parties et affecte les ensembles de données maintenant divisés à deux paires de variables.
La ligne 3 prend l'instance du classificateur de forêt aléatoire que vous venez de créer, puis appelle la méthode d'ajustement pour entraîner le modèle avec l'ensemble de données d'apprentissage.
Exécution des données de test
Dans le code suivant, la première ligne envoie le jeu de données de test au modèle, puis la troisième ligne affiche la sortie: >>>> prédit = rf. prédire (X_test) >>>> prédiction
tableau ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) > Évaluation du modèle
Vous pouvez faire une référence croisée entre la sortie de la prédiction et le tableau
- y_test
- . En conséquence, vous pouvez voir qu'il a prédit deux points de données de test incorrectement. La précision du modèle de forêt aléatoire était donc de 86,67%.
- Voici le code: >>>> de sklearn import metrics >>>> prédit
array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> y_test
tableau ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>>> métriques. precision_score (y_test, prédit)
0. 8666666666666667 # 1. 0 est 100% exactitude >>>> prédit == y_test
tableau ([Vrai, Vrai, Vrai, Vrai, Faux, Vrai, Vrai,
Vrai, Vrai, Vrai, Vrai, Vrai, True, False, True,
True], dtype = bool)
Comment fonctionne le modèle de forêt aléatoire si vous modifiez le paramètre
n_estimators
à 150? Il semble que cela ne fera pas de différence pour ce petit jeu de données. Il produit le même résultat: >>>> rf = RandomForestClassifier (n_estimators = 150, random_state = 111) >>>> rf = rf. fit (X_train, y_train) >>>> prédit = rf. prédire (X_test) >>>> prédiction
tableau ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >