Algoritmo de bosque aleatorio
/qq_16633405/article/details/61200502
/12199764/viewspace-1572056/
/colourful_sky/article/details/82082854
La aleatoriedad es el núcleo de los bosques aleatorios. Al seleccionar muestras y características al azar, se reduce la correlación entre los árboles de decisión. La aleatoriedad en el bosque aleatorio tiene principalmente dos significados: uno es reemplazar aleatoriamente los datos de entrenamiento originales y seleccionar una cantidad igual de datos como muestras de entrenamiento y el otro es seleccionar características al azar al construir un árbol de decisión y luego construir un árbol de decisión después de la selección. una parte de las características del árbol. Estos dos métodos aleatorios hacen que la correlación entre cada árbol de decisión sea muy pequeña, lo que mejora aún más la precisión del modelo.
El bosque aleatorio no utiliza la poda del árbol de decisión, entonces, ¿cómo controlar el sobreajuste del modelo? Principalmente controlando parámetros como la profundidad del árbol (max_profundidad) y el número mínimo de muestras para que un nodo deje de dividirse (min_size). Los bosques aleatorios también pueden manejar valores faltantes.
Suponiendo que hay n muestras en el conjunto de entrenamiento y que cada muestra tiene d características, es necesario entrenar un bosque aleatorio que contenga T árboles. El proceso del algoritmo específico es el siguiente:
. 1. Para T árboles de decisión, repita las siguientes operaciones: a. Utilice el método de muestreo Bootstrap para obtener un conjunto de entrenamiento D de tamaño n del conjunto de entrenamiento D. Seleccione aleatoriamente m características de d características (m
<); p> 2. Si es un problema de regresión, el resultado final es el promedio del resultado de cada árbol3. Si es un problema de clasificación, la categoría final se determina en función del principio de votación;
Cada árbol se genera aleatoriamente. En cuanto a la cantidad de características extraídas aleatoriamente, existen dos métodos principales para determinar la cantidad de características extraídas aleatoriamente. Uno es la validación cruzada y el otro es establecer empíricamente. m= log_2 d +1.
1. Intervalo de clasificación: el intervalo de clasificación se refiere a la proporción de árboles de decisión que clasifican correctamente las muestras en el bosque menos la proporción de árboles de decisión clasificados incorrectamente. El bosque aleatorio se calcula promediando la clasificación de cada muestra. Cuanto mayor sea el intervalo de clasificación, mejor. Cuanto mayor sea el intervalo de clasificación, más estable será el efecto de clasificación del modelo y mejor será el efecto de generalización. 2. Error fuera de la bolsa: para cada árbol, se dice que algunas muestras no se han extraído. Estas muestras se denominan muestras fuera de la bolsa. La tasa de error de predicción del bosque aleatorio para las muestras fuera de la bolsa. llamado error de bolsa (OOB) El método de cálculo es el siguiente:
(1) Para cada muestra, calcule la clasificación de la muestra como muestra fuera de bolsa
(2) Determinar la clasificación de la muestra mediante votación;
(3) Clasificar las muestras mal clasificadas. La relación entre el número y el número total de muestras se utiliza como valor fuera de la bolsa. error del bosque aleatorio.
3. Caracterización de importancia variable: De hecho, la caracterización de importancia variable no necesita ser considerada en la evaluación del desempeño del modelo, porque es necesario considerar algunas aplicaciones prácticas. Con tantas características, ¿qué parte de las características es más importante? En este momento, es particularmente importante caracterizar la importancia de las variables. Hay dos métodos principales para calcular la importancia:
(1) Calculando la. promedio de características. ganancia de información;
(2) Al alterar el orden de los valores de las características de una determinada característica en la muestra, se genera una nueva muestra y la nueva muestra se coloca en el aleatorio establecido. modelo de bosque, y se calcula cada modelo de par de características. El impacto de la precisión, y por lo tanto de la exactitud de los cálculos, es que incluso barajar el orden no tendrá un impacto significativo en los resultados de las características sin importancia, mientras que tendrá un impacto significativo en el resultados para características importantes
Ventajas:
1. Para la mayoría de los datos, su capacidad de clasificación es más fuerte
2. Puede manejar características de alta dimensión, es decir. no es propenso al sobreajuste y acelera el entrenamiento del modelo, especialmente adecuado para big data
3. Puede evaluar la importancia de las variables al decidir categorías. Gran adaptabilidad a conjuntos de datos: puede manejar tanto datos discretos como datos continuos, y el conjunto de datos no necesita normalizarse.
Desventajas:
1. El bosque aleatorio es propenso a sobreajustarse, especialmente cuando el conjunto de datos es relativamente pequeño o de baja dimensión.
2. La velocidad de cálculo es más lenta que la de un único árbol de decisión.
3. El bosque aleatorio no funciona bien cuando necesitamos inferir variables independientes o variables no independientes que están fuera de rango.
Problema de clasificación
Problema de regresión
Métodos comunes: consulte /w952470866/article/details/78987265
predict_proba(x) : Da el resultado con un valor de probabilidad.
predecir(x): predice el resultado de X. Internamente, todavía llama a predict_proba() para ver qué tipo tiene el valor predicho más alto según los resultados probabilísticos.
predict_log_proba(x): Básicamente lo mismo que predict_proba, excepto que los resultados se registran().
fit(X, y, sample_weight=None): construye un bosque de árbol de decisión basado en el conjunto de datos de entrenamiento (X, y). X es la muestra de entrenamiento e y es el valor objetivo (etiqueta de clase en clasificación, número real en regresión).
Parámetros
Por el contrario, GBDT tiene muchos más parámetros de marco, los más importantes de los cuales son el número máximo de iteradores, el tamaño del paso y la proporción de submuestras. Sin embargo, RandomForest es más simple porque en el marco de embolsado no hay dependencias entre estudiantes débiles, lo que reduce la dificultad de ajuste. En otras palabras, para lograr el mismo efecto de ajuste, RandomForest requiere menos tiempo que GBDT.
Parámetros del framework Bagging:
n_estimators: Número máximo de alumnos débiles (número de clasificadores de bosque (árboles) aleatorios que se construirán). Si es demasiado pequeño, fácilmente provocará un ajuste incompleto. Si es demasiado grande, fácilmente provocará un ajuste excesivo. Generalmente, elija un valor moderado. Aumentarlo reduce la varianza del modelo general y mejora la precisión del modelo, sin ningún impacto en el sesgo y la varianza de los submodelos. Dado que la reducción es el segundo término en la fórmula de varianza general del modelo, existe un límite superior para la mejora de la precisión.
n_job: El número de procesadores que el motor puede utilizar. Un valor de 1 significa que sólo se puede utilizar un procesador, un valor de -1 significa que no hay límite. Configurar n_jobs puede acelerar el cálculo del modelo;
oob_score: si se debe utilizar un error extracapsular para evaluar el modelo. El valor predeterminado es Falso. Se recomienda establecerlo en Verdadero, porque la puntuación extracapsular refleja la capacidad de generalización. del modelo después del ajuste. ;
Parámetros del árbol de decisión CART:
max_feeling: el número de procesadores permitidos por el motor;
max_feeling: el número de procesadores. permitido por el motor. p>
max_features: el número máximo de funciones consideradas para la partición de RF. Hay muchos tipos de valores que se pueden usar. El valor predeterminado es "ninguno", lo que significa que se consideran todas las características al segmentar; si es "log2", significa que se consideran hasta log2N características al segmentar; si es "sqrt" o "auto", Indica que durante la segmentación se consideran como máximo N?√N características. Si es un número entero, representa el número absoluto de características a considerar. Si es flotante, representa el porcentaje de características a considerar, es decir, la cantidad de características a considerar después del redondeo (porcentaje x N), donde N es la cantidad total de características en la muestra. En términos generales, si no hay muchas funciones en la muestra, como menos de 50, podemos usar el valor predeterminado "Ninguno". Si la cantidad de funciones es grande, podemos usar de manera flexible otros valores recién introducidos para controlar el máximo. característica considerada para la partición número para controlar el tiempo para generar el árbol de decisión.
max_ Depth: La profundidad máxima del árbol de decisión. El valor predeterminado es "Ninguno". Al construir el árbol de decisión, el árbol de decisión no limitará la profundidad del subárbol, por lo que cada nodo hoja tendrá solo una categoría o hasta min_samples_split. En términos generales, este valor se puede ignorar cuando hay menos datos o menos funciones. Si el modelo tiene muchas muestras y características, se recomienda limitar la profundidad máxima. El valor específico depende de la distribución de los datos. Generalmente, puedes tomar un valor entre 10 y 100.
min_samples_split (división mínima de muestra): el número mínimo de muestras necesarias para subdividir los nodos internos, el valor predeterminado es 2. Este valor limita las condiciones bajo las cuales el subárbol puede continuar dividiéndose, por lo que si el número de muestras en un nodo es menor que min_samples_split, no se realizarán más intentos para seleccionar las mejores características para dividir. El valor predeterminado es 2. Si el tamaño de la muestra no es grande, no es necesario considerar este valor. Si el tamaño de la muestra es de un orden de magnitud muy grande, se recomienda aumentar este valor.
min_samples_leaf: el número mínimo de muestras para los nodos de hoja. Este valor limita el número mínimo de muestras para un nodo hoja. Si un nodo hoja tiene menos de este valor, se podará junto con sus nodos hermanos. El valor predeterminado es 1 y puede ingresar un número entero para el número mínimo de muestras o un porcentaje del número total de muestras. Si el tamaño de la muestra no es grande, no es necesario considerar este valor. Si el tamaño de la muestra es de un orden de magnitud muy grande, se recomienda aumentar este valor.
min_weight_fraction_leaf: la suma mínima de pesos de muestra de nodos de hoja. Este valor limita el valor mínimo de la suma de todos los pesos de muestra de un nodo hoja. Si es menor que este valor, se podará junto con sus nodos hermanos. El valor predeterminado es 0, lo que significa que no se tiene en cuenta ninguna ponderación. En términos generales, si tenemos una gran cantidad de valores faltantes de muestra, o la distribución de las muestras del árbol de clasificación tiene una gran desviación de categoría, se introducirán pesos de muestra y debemos prestar atención a este valor.
max_leaf_nodes: el número máximo de nodos hoja. Limitar el número máximo de nodos de hoja evita el sobreajuste. El valor predeterminado es Ninguno, lo que significa que no hay límite en el número máximo de nodos hoja. Si se agregan restricciones, el algoritmo construirá un árbol de decisión óptimo dentro del número máximo de nodos hoja. Si no hay muchas características, este valor se puede ignorar, pero si el conjunto de características es grande, el valor se puede limitar y el valor exacto se puede obtener mediante validación cruzada.
min_impurity_split: la impureza mínima de la división del nodo. Si la impureza del nodo (según el coeficiente de Gini, desviación cuadrática media) es menor que este umbral, el nodo ya no generará nodos secundarios, es decir, se convertirá en un nodo hoja. Generalmente no se recomienda cambiar el valor predeterminado de 1e-7.
Los parámetros del árbol de decisión más importantes mencionados anteriormente incluyen el número máximo de características max_features, la profundidad máxima max_ Depth y el número mínimo de muestras necesarias para subdividir los nodos internos min_samples_split y min_samples_leaf.
Ajuste de parámetros: el ajuste aleatorio de parámetros del bosque también juega un papel en el análisis y la minería de datos. Aprender un buen método de ajuste puede lograr el doble de resultado con la mitad de esfuerzo. Referencia de ajuste /cherdw/article/details/54971771 .