En este artículo veremos cómo construir un Clasificador de bosque aleatorio utilizando el Biblioteca Scikit-Learn de lenguaje de programación pitón y para ello utilizamos el Conjunto de datos IRIS que es un conjunto de datos bastante común y famoso.
Bosque aleatorio
El bosque aleatorio o Random Decision Forest es un algoritmo de aprendizaje automático supervisado que se utiliza para clasificación, regresión y otras tareas que utilizan árboles de decisión. Los bosques aleatorios son particularmente adecuados para manejar conjuntos de datos grandes y complejos, tratar con espacios de características de alta dimensión y proporcionar información sobre la importancia de las características. La capacidad de este algoritmo para mantener una alta precisión predictiva y al mismo tiempo minimizar el sobreajuste lo convierte en una opción popular en varios ámbitos, incluidos finanzas, atención médica y análisis de imágenes, entre otros.
decodificación javascript base64
Clasificador de bosque aleatorio
El clasificador de bosque aleatorio crea un colocar de árboles de decisión de un subconjunto seleccionado aleatoriamente del conjunto de entrenamiento. Es un conjunto de árboles de decisión (DT) de un subconjunto seleccionado aleatoriamente del conjunto de entrenamiento y luego recopila los votos de diferentes árboles de decisión para decidir la predicción final.
Clasificador de bosque aleatorio
Además, el clasificador de bosque aleatorio puede manejar tareas de clasificación y regresión, y su capacidad para proporcionar puntuaciones de importancia de características lo convierte en una herramienta valiosa para comprender la importancia de diferentes variables en el conjunto de datos.
Cómo funciona la clasificación aleatoria de bosques
La clasificación de bosque aleatorio es una técnica de aprendizaje conjunto diseñada para mejorar la precisión y solidez de las tareas de clasificación. El algoritmo construye una multitud de árboles de decisión durante el entrenamiento y genera el resultado. clase ese es el modo de las clases de clasificación. Cada árbol de decisión en el bosque aleatorio se construye utilizando un subconjunto de datos de entrenamiento y un subconjunto aleatorio de características que introducen diversidad entre los árboles, lo que hace que el modelo sea más robusto y menos propenso al sobreajuste.
El algoritmo de bosque aleatorio emplea una técnica llamada embolsado (Bootstrap Aggregating) para crear estos diversos subconjuntos.
Durante la fase de formación, cada árbol se construye dividiendo recursivamente los datos según las características. En cada dividir, el algoritmo selecciona la mejor característica del subconjunto aleatorio, optimizando la ganancia de información o la impureza de Gini. El proceso continúa hasta que se cumple un criterio de parada predefinido, como alcanzar una profundidad máxima o tener un número mínimo de muestras en cada nodo de hoja.
Una vez que se entrena el bosque aleatorio, puede hacer predicciones, utilizando los votos de cada árbol para una clase, y la clase con más votos se convierte en la clase predicha para los datos de entrada.
Selección de funciones en bosques aleatorios
Selección de características en Random Forests está inherentemente integrado en la construcción de árboles de decisión individuales y el proceso de agregación.
Durante la fase de entrenamiento, cada árbol de decisión se construye utilizando un subconjunto aleatorio de características, lo que contribuye a la diversidad entre los árboles. El proceso, conocido como embolsado de características, ayuda a prevenir el dominio de una sola característica y promueve un modelo más sólido.
El algoritmo evalúa varios subconjuntos de características en cada punto de división, seleccionando la mejor característica para la división de nodos en función de criterios como la ganancia de información o la impureza de Gini. En consecuencia, los bosques aleatorios incorporan naturalmente una forma de selección de características, asegurando que el conjunto se beneficie de un conjunto diverso de características para mejorar la generalización y reducir el sobreajuste.
Clasificador de bosque aleatorio en aprendizaje automático
Paso 1: cargar el conjunto de datos
python3
# importing required libraries> # importing Scikit-learn library and datasets package> from> sklearn> import> datasets> # Loading the iris plants dataset (classification)> iris> => datasets.load_iris()> |
>
>
Paso 2: verificar el contenido del conjunto de datos y los nombres de las características presentes en él.
python3
print> (iris.target_names)> |
>
>
Producción:
[‘setosa’ ‘versicolor’ ‘virginica’]>
python3
print> (iris.feature_names)> |
>
>
Producción:
lista de estados
[‘sepal length (cm)’, ’sepal width (cm)’, ’petal length (cm)’, ’petal width (cm)’]>
Paso 3: Dividir la prueba del tren
python3
# dividing the datasets into two parts i.e. training datasets and test datasets> X, y> => datasets.load_iris( return_X_y> => True> )> # Splitting 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> )> |
>
>
Paso 4: Importar el módulo Clasificador de bosque aleatorio.
python3
segmento de matriz java
# 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})> |
>
>
Descripción general del conjunto de datos
python3
# printing the top 5 datasets in iris dataset> print> (data.head())> |
cómo devolver una matriz java
>
>
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>
Paso 5: Entrenamiento del modelo
python3
# 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>
Paso 6: Predicciones
Python3
# predicting which type of flower it is.> clf.predict([[> 3> ,> 3> ,> 2> ,> 2> ]])> |
saira banú actor
>
>
Producción:
array([0])>
Esto implica que es sedoso tipo de flor ya que obtuvimos las tres especies o clases en nuestro conjunto de datos: Setosa, Versicolor y Virginia.
Verifique las características importantes
Ahora también descubriremos las características importantes o seleccionaremos características en el conjunto de datos IRIS utilizando las siguientes líneas de código.
python3
# 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 length (cm) 0.440050 petal width (cm) 0.423437 sepal length (cm) 0.103293 sepal width (cm) 0.033220 dtype: float64>
Bosques aleatorios en Python Scikit-Aprende La biblioteca viene con un conjunto de hiperparámetros que le permiten ajustar el comportamiento del modelo. Comprender y seleccionar los hiperparámetros apropiados es crucial para optimizar el rendimiento del modelo.
Parámetros del clasificador de bosque aleatorio
- n_estimadores: Número de árboles en el bosque.
- Por lo general, más árboles conducen a un mejor rendimiento, pero a costa de tiempo de cálculo.
- Comience con un valor de 100 y aumente según sea necesario.
- máxima profundidad: Profundidad máxima de cada árbol.
- Los árboles más profundos pueden capturar patrones más complejos, pero también corren el riesgo de sobreajustarse.
- Experimente con valores entre 5 y 15 y considere valores más bajos para conjuntos de datos más pequeños.
- características_max: Número de entidades consideradas para dividir en cada nodo.
- Un valor común es 'sqrt' (raíz cuadrada del número total de funciones).
- Ajuste según el tamaño del conjunto de datos y la importancia de las características.
- criterio: Función utilizada para medir la calidad dividida (“gini” o “entropía”).
- La impureza de Gini suele ser un poco más rápida, pero ambas tienen generalmente un rendimiento similar.
- min_samples_split: Muestras mínimas necesarias para dividir un nodo.
- Los valores más altos pueden evitar el sobreajuste, pero demasiado altos pueden dificultar la complejidad del modelo.
- Comience con 2 y ajuste según sea necesario.
- min_samples_leaf: Se requieren muestras mínimas para estar en un nodo de hoja.
- Similar a min_samples_split, pero centrado en los nodos hoja.
- Comience con 1 y ajuste según sea necesario.
- oreja: Si se debe utilizar el muestreo de arranque al construir árboles (Verdadero o Falso).
- El bootstrapping puede mejorar la varianza y la generalización del modelo, pero puede aumentar ligeramente el sesgo.
Ventajas del clasificador de bosque aleatorio
- La naturaleza de conjunto de los bosques aleatorios, que combinan varios árboles, los hace menos propensos al sobreajuste en comparación con los árboles de decisión individuales.
- Eficaz en conjuntos de datos con una gran cantidad de características y puede manejar bien variables irrelevantes.
- Random Forests puede proporcionar información sobre la importancia de las características, ayudando en la selección de características y la comprensión del conjunto de datos.
Desventajas del clasificador de bosque aleatorio
- Los bosques aleatorios pueden ser costosos desde el punto de vista computacional y pueden requerir más recursos debido a la construcción de múltiples árboles de decisión.
- La naturaleza del conjunto dificulta la interpretación del razonamiento detrás de las predicciones individuales en comparación con un único árbol de decisión.
- En conjuntos de datos desequilibrados, los bosques aleatorios pueden estar sesgados hacia la clase mayoritaria, lo que afecta el rendimiento predictivo de las clases minoritarias.
Conclusión
En conclusión, Random Forests, con su conjunto de árboles de decisión, se destaca como una solución sólida para diversas tareas de aprendizaje automático, lo que demuestra su versatilidad y eficacia.
Preguntas frecuentes (FAQ)
P. ¿Qué es el clasificador de bosque aleatorio?
Random Forest Classifier es un método de aprendizaje conjunto que utiliza múltiples árboles de decisión para tareas de clasificación, lo que mejora la precisión. Destaca en el manejo de datos complejos, mitigando el sobreajuste y proporcionando predicciones sólidas con características importantes.
P. ¿Se puede utilizar el bosque aleatorio para la regresión?
Random Forest se puede utilizar tanto para tareas de regresión como de clasificación, lo que lo convierte en un algoritmo de aprendizaje automático versátil.
P. ¿Cuál es el principio del bosque aleatorio?
Random Forest crea múltiples árboles de decisión utilizando subconjuntos aleatorios del conjunto de datos y combina sus resultados para mejorar la precisión.
P. ¿Cuáles son las aplicaciones del bosque aleatorio?
Las aplicaciones reales incluyen:
- Diagnostico medico: Identificación de enfermedades a partir de datos de pacientes.
- Finanzas: Calificación crediticia para la evaluación de riesgos en préstamos.