2. Analyse multivariée expliquée dans Python 7-3. Arbre de décision [arbre de retour]

⑴ Bibliothèque d'importation

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

from sklearn.tree import DecisionTreeRegressor #Classe pour créer un modèle d'arbre de régression

⑵ Acquisition et lecture de données

from sklearn.datasets import load_boston
boston_dataset = load_boston()

** Construisez un modèle d'arbre de régression qui prédit le prix d'une maison en utilisant les 13 variables explicatives qui caractérisent la maison. ** **

#Stocker les variables explicatives dans DataFrame
boston = pd.DataFrame(boston_dataset.data, columns=boston_dataset.feature_names)

print(boston.head()) #Afficher les 5 premières lignes
print(boston.columns) #Afficher le nom de la colonne
print(boston.shape) #Vérifiez la forme

2_7_3_01.PNG

#Ajouter une variable d'objectif
boston['MEDV'] = boston_dataset.target

print(boston.head()) #Afficher les 5 premières lignes
print(boston.shape) #Reconfirmez la forme

2_7_3_02.PNG

⑶ Division des données

#Convertir l'ensemble de données en tableau Numpy
array = boston.values

#Diviser en variables explicatives et variables objectives
X = array[:,0:13]
Y = array[:,13]
#Importer un module qui divise les données
from sklearn.model_selection import train_test_split

#Diviser les données
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=1234)

⑷ Construction d'un modèle d'arbre de régression

#Instanciation du modèle
reg = DecisionTreeRegressor(max_leaf_nodes = 20)

#Génération de modèles par apprentissage
model = reg.fit(X_train, Y_train)
print(model)

2_7_3_03.PNG

⑸ Évaluation du modèle d'arbre de régression

➀ Confirmer la validité de la prédiction

#Importer le module de nombres pseudo aléatoires standard de Python
import random
random.seed(1)

#Sélectionnez un identifiant au hasard
id = random.randrange(0, X.shape[0], 1)
print(id)

2_7_3_04.PNG

#Extraire l'échantillon pertinent de l'ensemble de données d'origine
x = X[id]
x = x.reshape(1,13)

#Prédire les prix des logements à partir de variables explicatives
YHat = model.predict(x)

#Convertir la variable explicative de l'id en DataFrame
df = pd.DataFrame(x, columns = boston_dataset.feature_names)
#Valeur prédite ajoutée y
df["Predicted Price"] = YHat

2_7_3_05.PNG

boston.iloc[id]

2_7_3_06.PNG

➁ Vérifiez le coefficient de décision comme un indice de polyvalence

#Importez la fonction pour calculer le coefficient de décision
from sklearn.metrics import r2_score
YHat = model.predict(X_test)

2_7_3_07.PNG

r2 = r2_score(Y_test, YHat)
print("R^2 = ", r2)

2_7_3_08.PNG

⑹ Visualisation du modèle d'arbre de régression

#Importer le module d'arborescence sklearn
from sklearn import tree

#Module pour afficher des images dans Notebook
from IPython.display import Image

#Module de visualisation du modèle d'arbre de décision
import pydotplus
#Convertir le modèle d'arbre de décision en données DOT
dot_data = tree.export_graphviz(model,
                                out_file = None,
                                feature_names = boston_dataset.feature_names,
                                class_names = 'MEDV',
                                filled = True)

#Dessinez un diagramme
graph = pydotplus.graph_from_dot_data(dot_data)  

#Afficher le diagramme
Image(graph.create_png())

2_7_3_09.PNG

Recommended Posts

2. Analyse multivariée expliquée dans Python 7-3. Arbre de décision [arbre de retour]
2. Analyse multivariée décrite dans Python 7-1. Arbre de décision (scikit-learn)
2. Analyse multivariée expliquée dans Python 7-2. Arbre de décision [différence de critères de division]
2. Analyse multivariée définie dans Python 1-1. Analyse de régression simple (scikit-learn)
2. Analyse multivariée décrite dans Python 2-1. Analyse de régression multiple (scikit-learn)
2. Analyse multivariée décrite dans Python 1-2. Analyse de régression simple (algorithme)
2. Analyse multivariée expliquée dans Python 5-3. Analyse de régression logistique (modèles statistiques)
2. Analyse multivariée définie dans Python 6-2. Régression Ridge / Régression Lasso (scikit-learn) [Régression Ridge vs régression Lasso]
2. Analyse multivariée détaillée dans Python 2-3. Analyse de régression multiple [taux d’infection au COVID-19]
2. Analyse multivariée décrite dans Python 3-2. Analyse en composantes principales (algorithme)
2. Analyse multivariée décrite dans Python 6-1. Régression de crête / Régression de lasso (scikit-learn) [régression multiple vs régression de crête]
2. Analyse multivariée expliquée dans Python 8-2. Méthode de voisinage k [méthode de pondération] [modèle de retour]
2. Analyse multivariée expliquée dans Python 3-1. Analyse en composantes principales (scikit-learn)
2. Analyse multivariée décrite dans Python 6-3. Régression Ridge / Régression Lasso (scikit-learn) [Fonctionnement de la régularisation]
2. Analyse multivariée expliquée dans Python 8-1. Méthode de voisinage k (scikit-learn)
2. Analyse multivariée énoncée dans Python 8-3. Méthode de voisinage K [vérification d'intersection]
Analyse de régression avec Python
Analyse de régression simple avec Python
Première analyse de régression simple en Python
Analyse d'association en Python
Expression de régression multiple en Python
Analyse des contraintes symétriques axiales avec Python
[Python] Tutoriel personnel sur l'arbre de décision
Régression linéaire en ligne en Python
Analyse des ondes cérébrales avec Python: tutoriel Python MNE
[Python] PCA scratch dans l'exemple de "Introduction à la méthode d'analyse multivariée"
[Test statistique 2e année / quasi 1e année] Formation à l'analyse régressive avec Python (2)
Compilateur en Python: arborescence de syntaxe PL / 0
[Test statistique 2e année / quasi 1e année] Formation à l'analyse régressive avec Python (1)
Analyse du squelette planaire dans Python (2) Hotfix
Algorithme (arborescence de segments) en Python (s'entraîner)
Implémentation simple de l'analyse de régression avec Keras
Analyse de régression logistique Self-made avec python
Régression linéaire en Python (statmodels, scikit-learn, PyMC3)
Arborescence de sortie des fichiers en Python
Régression linéaire en ligne en Python (estimation robuste)
J'ai essayé d'implémenter la régression logistique de Cousera en Python
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Arborescence de segments retardée en Python (demande de débogage)
Manipuler XML avec des espaces de noms en Python (arbre des éléments)
Analyse résiduelle en Python (Supplément: règles Cochrane)
Implémenté en Python PRML Chapitre 3 Régression linéaire bayésienne
Analyse de survie apprise avec Python 2 - Estimation Kaplan-Meier
Effectuer une analyse d'entité à l'aide de spaCy / GiNZA en Python
Analyse de données en Python: une note sur line_profiler
[Construction de l'environnement] Analyse des dépendances à l'aide de CaboCha avec Python 2.7
Compilateur en Python: Arbre de syntaxe abstraite PL / 0 (AST)
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Environnement enregistré pour l'analyse des données avec Python
Sortie d'une courte chaîne de caractères de type URL en Python
Analyse de régression LASSO facile avec Python (pas de théorie)