Clasificador de bosque aleatorio usando Scikit-learn

En este artículo, veremos cómo construir un clasificador de bosque aleatorio usando la biblioteca Scikit-Learn del lenguaje de programación Python y para hacer esto, usamos el conjunto de datos IRIS , que es un conjunto de datos bastante común y famoso. El bosque aleatorio o el bosque de decisiones aleatorias es un algoritmo de aprendizaje automático supervisado que se utiliza para la clasificación, la regresión y otras tareas mediante árboles de decisión.
El clasificador de bosque aleatorio crea un conjunto de árboles de decisión a partir de un subconjunto seleccionado al azar del conjunto de entrenamiento. Es básicamente un conjunto de árboles de decisión (DT) de un subconjunto seleccionado al azar del conjunto de entrenamiento y luego recopila los votos de diferentes árboles de decisión para decidir la predicción final.
En este algoritmo de clasificación, utilizaremos conjuntos de datos de flores de IRIS para entrenar y probar el modelo. Construiremos un modelo para clasificar el tipo de flor.

Código: Cargando conjunto de datos

# importing required libraries
# importing Scikit-learn library and datasets package
from sklearn import datasets 
 
# Loading the iris plants dataset (classification)
iris = datasets.load_iris()   

Código: verificar el contenido de nuestro conjunto de datos y los nombres de las características presentes en él.

print(iris.target_names)

Producción:

[‘setosa’ ‘versicolor’ ‘virginica’]

Código:

print(iris.feature_names)

Producción:

[‘sepal length (cm)’, ’sepal width (cm)’, ’petal length (cm)’, ’petal width (cm)’]

Código:

# dividing the datasets into two parts i.e. training datasets and test datasets
X, y = datasets.load_iris( return_X_y = True)
 
# Spliting arrays or matrices into random train and test subsets
from sklearn.model_selection import train_test_split
# i.e. 70 % training dataset and 30 % test datasets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30)

Código: Importación de bibliotecas requeridas y módulo clasificador de bosque aleatorio.

# importing random forest classifier from assemble module
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
# creating dataframe of IRIS dataset
data = pd.DataFrame({‘sepallength’: iris.data[:, 0], ’sepalwidth’: iris.data[:, 1],
                     ’petallength’: iris.data[:, 2], ’petalwidth’: iris.data[:, 3],
                     ’species’: iris.target})

Código: mirar un conjunto de datos

# printing the top 5 datasets in iris dataset
print(data.head())

Producción:

     sepallength   sepalwidth   petallength     petalwidth   species

0          5.1             3.5               1.4                0.2           0

1          4.9             3.0               1.4                0.2           0

2          4.7             3.2               1.3                0.2           0

3          4.6             3.1               1.5               0.2            0

4          5.0             3.6               1.4               0.2            0

Código:

# creating a RF classifier
clf = RandomForestClassifier(n_estimators = 100) 
 
# Training the model on the training dataset
# fit function is used to train the model using the training sets as parameters
clf.fit(X_train, y_train)
 
# performing predictions on the test dataset
y_pred = clf.predict(X_test)
 
# metrics are used to find accuracy or error
from sklearn import metrics 
print()
 
# using metrics module for accuracy calculation
print("ACCURACY OF THE MODEL: ", metrics.accuracy_score(y_test, y_pred))

Producción:

ACCURACY OF THE MODEL: 0.9238095238095239

 

Código: predecir el tipo de flor a partir del conjunto de datos

# predicting which type of flower it is.
clf.predict([[3, 3, 2, 2]])

Producción:

array([0])

Esto implica que es del tipo de flor setosa ya que obtuvimos las tres especies o clases en nuestro conjunto de datos: Setosa, Versicolor y Virginia. Ahora también descubriremos las características importantes o la selección de características en el conjunto de datos IRIS usando las siguientes líneas de código.

Código:

# importing random forest classifier from assemble module
from sklearn.ensemble import RandomForestClassifier
# Create a Random forest Classifier
clf = RandomForestClassifier(n_estimators = 100)
 
# Train the model using the training sets
clf.fit(X_train, y_train)

Código: Cálculo de la importancia de la característica

# using the feature importance variable
import pandas as pd
feature_imp = pd.Series(clf.feature_importances_, index = iris.feature_names).sort_values(ascending = False)
feature_imp

Producción:

petal width (cm)     0.458607
petal length (cm)    0.413859
sepal length (cm)    0.103600
sepal width (cm)     0.023933
dtype: float64

Publicación traducida automáticamente

Artículo escrito por amandp13 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *