Tomó 3 semanas comprender el principio del algoritmo xgboost

proceso de algoritmo

Primero aprenda el árbol de decisiones , luego aprenda el bosque aleatorio y finalmente llegue a xgboost. Pensé que sería más fácil hacer una transición tan fluida, pero no esperaba que fuera tan difícil. Me tomó más de 3 semanas dispersas y dispersas, y después de leer las explicaciones y elaboraciones de muchos artículos, apenas entendí el principio del algoritmo de xgboost.

Entre ellas, hay dos fuentes de referencia, que personalmente recomiendo: una es texto y la otra es video .

El diagrama de flujo del algoritmo de xgboost se proporciona directamente aquí, lo cual es conveniente para que entendamos xgboost de manera intuitiva. Para un conjunto de entrenamiento, xgboost primero usa el entrenamiento del árbol CART para obtener un modelo, que generará un valor de desviación para cada muestra; luego usa el valor de desviación de la muestra como un nuevo conjunto de entrenamiento, continúa usando el entrenamiento del árbol CART para obtener un nuevo modelo; repetir, hasta que se cumpla una condición de salida.

El modelo xgboost final es la suma de todos los modelos anteriores. Supongamos que hay un total de M modelos, y la salida de cada modelo se define como fi f_iFyo, luego la salida final del modelo xgboost y ^ i \hat y_iy^yo
y ^ i = ∑ i = 1 METRO fi ( xi ) \hat y_i=\sum_{i=1}^Mf_i(x_i)y^yo=yo = 1mFyo( Xyo)

Obviamente, xgboost, como el bosque aleatorio, también es una integración de múltiples modelos, pero todavía hay muchas diferencias entre ellos. Para describirlo en términos técnicos, xgboost es un método de impulso cuya función principal es reducir la desviación y la lógica es en serie, mientras que el bosque aleatorio es un método de embolsado cuya función principal es reducir la varianza y la lógica es paralela.

Después de descubrir el proceso del algoritmo, también debemos prestar atención a los detalles del proceso. Hay dos cosas que deben entenderse: (1) ¿Qué es un árbol CART? (2) ¿Cómo obtener el modelo de árbol CART?

árbol CARRITO

Simplemente comprenda, el árbol CART es primero un árbol; sobre esta base, cada nodo hoja jjj se le asignará un valor de nodowj w_jwj

Asumiendo iii muestrasxi x_iXyoy jjLa relación de mapeo entre j
nodos es j = q ( xi ) j=q(x_i)j=q ( ​​xyo)
Tome la siguiente figura como ejemplo:q ( x 1 ) = 2 , q ( x 2 ) = 1 , q ( x 3 ) = 2 q(x_1)=2,q(x_2)=1,q(x_3) =2q ( ​​x1)=2 ,q ( ​​x2)=1 ,q ( ​​x3)=2 .

entonces eliiEl valor del nodo de i muestras es
wq (xi) w_{q(x_i)}wq ( ​​xyo)
Por otro lado, el jjConjunto de muestra I j I_j de j nodosIjSe puede expresar como
I j = { xi ∣ q ( xi ) = j } I_j= \{x_i|q(x_i)=j \}Ij={ xyoq ( xyo)=j }
O la imagen de arriba como ejemplo:I 1 = { 2 } , I 2 = { 1 , 3 } I_1=\{2\}, I_2=\{1,3\}I1={ 2 } ,I2={ 1 ,3 }

A partir del concepto de árbol CART, podemos encontrar fácilmente que se necesitan dos tipos de datos para determinar un árbol CART: estructura de árbol y valor de nodo. A continuación, primero estudiamos claramente la estrategia óptima de optimización del valor del nodo cuando la estructura de árbol es fija; sobre esta base, volvemos a tratar de determinar la estructura de árbol óptima.

mejor valor de nodo

Cuando se fija la estructura de árbol, el nodo en el que cae cada muestra se determina inmediatamente. En este punto, defina la siguiente función objetivo para medir el error de xgboost en la muestra general
obj = ∑ i = 1 nl ( yi , y ^ i ( M ) ) + ∑ m = 1 M Ω ( fm ) \text{obj }=\ sum_{i=1}^nl(y_i,\hat y_i^{(M)})+\sum_{m=1}^M\Omega{(f_m)}objeto=yo = 1nyo _ _yo,y^i( M ))+metro = 1moh _ _m)
Entre ellos, el significado del primer ítem es el error de la propia muestra,nnn representa el tamaño de la muestra,l ( ⋅ ) l(·)yo ( ) es una función para medir el error de muestra, como MSE, etc.,yi y_iyyopor segundoEl verdadero valor de i muestra,y ^ i ( M ) \hat y_i^{(M)}y^i( M )por segundoEl valor predicho de i muestras; el segundo término es el término regular, que se hautilizado en la optimización de modelos lineales: regresión de cresta y regresión de Lasso antes. El objetivo principal es reducir el riesgo de sobreajuste, y el objetivo aquí también es reducir riesgo conjunto de sobreajuste.

El segundo elemento es simple, primero trate con
∑ m = 1 M Ω ( fm ) = ∑ m = 1 M − 1 Ω ( fm ) + Ω ( f M ) \sum_{m=1}^M\Omega{(f_m ) }=\sum_{m=1}^{M-1}\Omega{(f_m)}+\Omega{(f_M)}metro = 1moh _ _m)=metro = 1METRO 1oh _ _m)+oh _ _m)
Desde el flujo del algoritmo, podemos ver que el árbol CART se construye uno por uno. Cuando queremos optimizar elMMCuando hay M árboles, los primerosM − 1 M-1METRO1 árbol ha completado el cálculo, es decir, se ha determinado el valor del término regular de estos árboles, por lo que podemos ignorarlo al optimizar; para elMMthM árboles,Ω \OmegaΩflujo Ω
( f METRO ) = γ T + 1 2 λ ∑ j = 1 T wj 2 \Omega(f_M)=\gamma T+\frac{1}{2}\lambda\sum_{j=1}^ Tw_j^2oh _ _m)=γ T+21yoj = 1Twj2
Aquí, γ \gammaγ yλ \lambdaλ es un ítem de penalización,TTT es el número total de nodos de hoja del árbol. Esta definición se puede entender de la siguiente manera: Por un lado,TTSi el valor de T es grande, significa que la profundidad del árbol es relativamente profunda, y la probabilidad de sobreajuste será mayor, así que useγ \gammaγ castiga; por otro lado,wwEl valor de w es grande, lo que indica que el árbol ocupará una gran proporción en todo el modelo, es decir, el resultado de la predicción depende principalmente del árbol, y el riesgo de sobreajuste también aumentará en este momento, por lo que es necesario utilizar λ \lambdaλ es castigado.

Ahora volvamos al primer elemento. Luego de tener la expresión específica del segundo ítem, si se da l ( ⋅ ) l(·)yo ( ) expresión, parece que el extremo se puede obtener directamente a través de la derivación de gradiente. Pero en la práctica, este método no es factible. Esto se debe principalmente a quey ^ \hat yy^Se obtiene a través del modelo de árbol, por lo que el valor no es continuo, por lo que no es derivable.

Siendo ese el caso, necesitamos otras soluciones. Afortunadamente, porque el antiguo M − 1 M-1METROSe ha determinado 1 árbol CART, por lo que solo debe prestar atención alMMLos valores de nodo de M árboles son suficientes, por lo que el primer elemento se puede transformar en
∑ i = 1 nl ( yi , y ^ i ( M ) ) = ∑ j = 1 T ∑ i ∈ I jl ( yi , y ^ i ( M ) ) \sum_{i=1}^nl(y_i,\hat y_i^{(M)})=\sum_{j=1}^T\sum_{i\in I_j}l(y_i,\ sombrero y_i^ {(M)})yo = 1nyo _ _yo,y^i( M ))=j = 1Tyo yojyo _ _yo,y^i( M ))
El valor de esta conversión es convertir la lógica estadística de errores de la suma de muestras a la suma de nodos, para que pueda compararse conΩ \OmegaΩ utiliza la misma variable, lo que facilita las operaciones de combinación de expresiones.

Para tratar con este término, tomaremos una expansión de Taylor y mantendremos el término de segundo orden.

Primero revise la fórmula de Taylor
f ( x + δ x ) = f ( x ) + f ′ ( x ) δ x + 1 2 f ′ ′ ( x ) δ x 2 f(x+\delta x)=f(x)+ f '(x)\delta x+\frac{1}{2}f''(x)\delta x^2f ( x+dx ) _=f ( x )+F (x)δx+21F′′ (x)δx2
Aquí pony ^ i ( M − 1 ) \hat y_i^{(M-1)}y^i( METRO - 1 )definido como xxx , entoncesδ x \delta xδ x eswj w_jwj,我们照葫芦画瓢进行泰勒展开
l ( yi , y ^ i ( METRO ) ) = l ( yi , y ^ i ( METRO − 1 ) + wj ) = l ( yi , y ^ i ( METRO − 1 ) ) + l ′ ( yi , y ^ yo ( METRO − 1 ) ) wj + 1 2 l ′ ′ ( yi , y ^ yo ( METRO − 1 ) ) wj 2 l(y_i, \hat y_i^{(M)}) =l(y_i, \hat y_i^{(M-1)}+w_j)=l(y_i, \hat y_i^{(M-1)})+l'(y_i, \hat y_i^{(M- 1)})w_j+\frac{1}{2}l''(y_i, \hat y_i^{(M-1)})w_j^2yo _ _yo,y^i( M ))=yo _ _yo,y^i( METRO - 1 )+wj)=yo _ _yo,y^i( METRO - 1 ))+yo (yyo,y^i( METRO - 1 )) wj+21yo′′ (yyo,y^i( METRO - 1 )) wj2
El primero es una constante y puede ignorarse. Sea gi = l ′ ( yi , y ^ i ( METRO − 1 ) ) g_i=l'(y_i, \hat y_i^{(M-1)})gramoyo=yo (yyo,y^i( METRO - 1 )) ,hola = l ′ ′ ( yi , y ^ yo ( METRO − 1 ) ) h_i=l''(y_i, \hat y_i^{(M-1)})hyo=yo′′ (yyo,y^i( METRO - 1 ))

La función objetivo general se convierte en

obj = ∑ j = 1 T ∑ yo ∈ yo j [ giwj + 1 2 hiwj 2 ] + γ T + 1 2 λ ∑ j = 1 T wj 2 \text{obj}=\sum_{j=1}^T\ suma_{i\en I_j}[g_iw_j+\frac{1}{2}h_iw_j^2]+\gamma T+\frac{1}{2}\lambda\sum_{j=1}^Tw_j^2objeto=j = 1Tyo yoj[ gramoyowj+21hyowj2]+γ T+21yoj = 1Twj2
debido a wj w_jwjsuma iii无关,所以可以调整为
obj = ∑ j = 1 T [ wj ∑ i ∈ I jgi + 1 2 wj 2 ∑ i ∈ I jhi ] + γ T + 1 2 λ ∑ j = 1 T wj 2 \text{obj }=\sum_{j=1}^T[w_j\sum_{i\in I_j}g_i+\frac{1}{2}w_j^2\sum_{i\in I_j}h_i]+\gamma T+\frac{ 1}{2}\lambda\sum_{j=1}^Tw_j^2objeto=j = 1T[ wjyo yojgramoyo+21wj2yo yojhyo]+γ T+21yoj = 1Twj2
combinar wj 2 w_j ^ 2wj2项,得到
obj = ∑ j = 1 T [ wj ∑ i ∈ I jgi + 1 2 wj 2 ( λ + ∑ i ∈ I jhi ) ] + γ T \text{obj}=\sum_{j=1}^T [w_j\sum_{i\in I_j}g_i+\frac{1}{2}w_j^2(\lambda+\sum_{i\in I_j}h_i)]+\gamma Tobjeto=j = 1T[ wjyo yojgramoyo+21wj2( yo+yo yojhyo)]+γ T

G j = ∑ i ∈ I jgi G_j=\sum_{i\in I_j}g_iGRAMOj=yo yojgramoyoH j = ∑ yo ∈ yo jhi H_j=\sum_{i\in I_j}h_iHj=yo yojhyo, la fórmula anterior se puede simplificar como
obj = ∑ j = 1 T [ wj G j + 1 2 wj 2 ( λ + H j ) ] + γ T \text{obj}=\sum_{j=1}^T[ w_jG_j+\ frac{1}{2}w_j^2(\lambda+H_j)]+\gamma Tobjeto=j = 1T[ wjGRAMOj+21wj2( yo+Hj)]+γ T
es una expresión lineal binaria, la solución óptima es
wj ∗ = − G j λ + H j w_j^*=-\frac{G_j}{\lambda+H_j}wj=yo+HjGRAMOj
El valor de la función objetivo óptima correspondiente es
obj ∗ = − 1 2 ∑ j = 1 TG j 2 λ + H j + γ T \text{obj}^*=-\frac{1}{2}\sum_{j= 1 }^T\frac{G_j^2}{\lambda+H_j}+\gamma Tobjeto=21j = 1Tyo+HjGRAMOj2+γ T

Aquí también es necesario describir gi g_igramoyosuma hola h_ihyoEspecíficamente cómo se calcula. Por ejemplo, supongamos que estamos optimizando el árbol CART 11, lo que significa que se han determinado los primeros 10 árboles CART. Estos 10 árboles emparejan muestras ( xi , yi = 1 x_i,y_i=1Xyo,yyo=1 ) el valor predicho esyi = − 1 y_i=-1yyo=1 , asumiendo que estamos clasificando ahora, nuestra función de pérdida es
L ( θ ) = ∑ iyiln ( 1 + e − y ^ i ) + ( 1 − yi ) ln ( 1 + ey ^ i ) L(\theta) = \sum_i y_iln(1+e^{-\hat y_i})+(1-y_i)ln(1+e^{\hat y_i})L ( yo )=iyyon ( 1 _+miy^yo)+( 1yyo) n ( 1 _+miy^yo)
porqueyi = 1 y_i=1yyo=1 , la función de pérdida se convierte en
L ( θ ) = ln ( 1 + e − y ^ i ) L(\theta)=ln(1+e^{-\hat y_i})L ( yo )=n ( 1 _+miy^yo)
para encontrar el gradiente, el resultado es
e − y ^ i 1 − e − y ^ i \frac{e^{-\hat y_i}}{1-e^{-\hat y_i}}1miy^yomiy^yo
y ^ i = − 1 \hat y_i=-1y^yo=1 en la expresión del gradiente, entoncesg 11 = − 0,27 g_{11}=-0,27gramo11=0.27

Continúe derivando la expresión del gradiente y, después de obtener la expresión de la segunda derivada, llévela a y ^ i \hat y_iy^yoEl valor de h 11 h_{11} se puede obtenerh11

Entender wj ∗ w_j^* de nuevowj. Suponiendo que solo hay una muestra en el nodo, entonces
wj ∗ = ( 1 λ + hj ) ( − gj ) w_j^*=(\frac{1}{\lambda+h_j})(-g_j)wj=(yo+hj1) ( - gramoj)
− gj-g_j- gramojRepresenta la dirección del gradiente negativo, es decir, la dirección en la que el valor de la función objetivo cae más rápido, lo cual está en línea con nuestra cognición; 1 λ + hj \frac{1}{\lambda+h_j}l + hj1Puede verse como la tasa de aprendizaje, si hj h_jhjUn valor grande indica que el cambio de gradiente es relativamente grande, es decir, una pequeña perturbación provocará un gran cambio en la función objetivo.En este momento, la tasa de aprendizaje debe reducirse, por lo que también está en línea con nuestra cognición.

En resumen, siempre que se determine la estructura de árbol, el valor óptimo wi w_i de cada nodo se puede obtener mediante el método anteriorwyo, por lo que el valor de la función objetivo se minimiza. Ahora, nos quedamos solo con la estructura de árbol óptima.

estructura de árbol óptima

Para determinar la estructura de árbol óptima, esta sección presenta un método de uso común: el algoritmo voraz.

Como se muestra abajo. Para el nodo actual, hay tres muestras de A, B y C, y el valor óptimo de la función objetivo en este nodo se puede calcular como
obj 0 = γ − 1 2 ( GA + GB + GC ) 2 HA + HB + HC + λ \ text{obj}_0=\gamma-\frac{1}{2}\frac{(G_A+G_B+G_C)^2}{H_A+H_B+H_C+\lambda}objeto0=C21Hun+HB+Hc+yo( Gun+GRAMOB+GRAMOc)2

Intente dividir el nodo, suponiendo que puede haber tres situaciones, [A, BC], [C, AB] y [B, AC], los valores óptimos correspondientes de la función objetivo son obj 1 = 2 γ − 1 2
GA 2 HA + λ − 1 2 ( GB + GC ) 2 HB + HC + λ \text{obj}_1=2\gamma-\frac{1}{2}\frac{G_A^2}{H_A+\lambda}- \frac{1}{2}\frac{(G_B+G_C)^2}{H_B+H_C+\lambda}objeto1=2c _21Hun+yoGRAMOA221HB+Hc+yo( GB+GRAMOc)2
obj 2 = 2 γ − 1 2 ( GA + GB ) 2 HA + HB + λ − 1 2 ( GC ) 2 HC + λ \text{obj}_2=2\gamma-\frac{1}{2}\frac {(G_A+G_B)^2}{H_A+H_B+\lambda}-\frac{1}{2}\frac{(G_C)^2}{H_C+\lambda}objeto2=2c _21Hun+HB+yo( Gun+GRAMOB)221Hc+yo( Gc)2
obj 3 = 2 γ − 1 2 ( GA + GC ) 2 HA + HC + λ − 1 2 ( GB ) 2 HB + λ \text{obj}_3=2\gamma-\frac{1}{2}\frac {(G_A+G_C)^2}{H_A+H_C+\lambda}-\frac{1}{2}\frac{(G_B)^2}{H_B+\lambda}objeto3=2c _21Hun+Hc+yo( Gun+GRAMOc)221HB+yo( GB)2

Calcule el valor de cambio de la función objetivo en los tres casos, a saber: obj 1 − obj 0 \text{obj}_1-\text{obj}_0objeto1objeto0obj 2 − obj 0 \text{obj}_2-\text{obj}_0objeto2objeto0obj 3 − obj 0 \text{obj}_3-\text{obj}_0objeto3objeto0. Luego tome el resultado de división correspondiente al valor de cambio más grande como el mejor método de división para el nodo la próxima vez.

Por lo tanto, el proceso para determinar la estructura de árbol óptima es:
a partir de la profundidad del árbol en 0:
(1) enumerar todas las funciones disponibles para cada nodo hoja;
(2) para cada función, las muestras de entrenamiento que pertenecen al nodo de acuerdo con Los valores de las funciones se organizan en orden ascendente, y el mejor punto de división de la función se determina a través de la lógica codiciosa anterior, y se registra el beneficio dividido de la función; (3) La función con la mayor ganancia se selecciona
como se usa la función de división y se usa el mejor punto de división de la función. El punto de división se usa como la posición de división, y dos nuevos nodos de hoja izquierda y derecha se dividen en el nodo, y el conjunto de muestra correspondiente se asocia con cada nuevo nodo ; (4)
Vuelva al paso 1 y repita hasta que se cumplan las condiciones específicas hasta que;

En este punto, finalmente descubrí el principio del algoritmo de xgboost.

Supongo que te gusta

Origin blog.csdn.net/taozibaby/article/details/131372688
Recomendado
Clasificación