Precisa de ajuda para entender a proposta aproximada de pontos de divisão do xgboost


12

fundo:

em xgboost os tentativas de iteração para caber uma árvore f t sobre todos os n exemplos que minimiza o seguinte objectivo:tftn

i=1n[gift(xi)+12hift2(xi)]

onde são de primeira ordem e segunda derivadas de ordem mais nosso anterior melhor estimativa y (de iteração t - 1 ):gi,hiy^t1

  • gi=dy^l(yi,y^)
  • hi=dy^2l(yi,y^)

e é a nossa função de perda.l


A questão (finalmente):

Ao construir e considerando uma característica específica k em uma fração específica, eles usam o seguinte heurística para avaliar única alguns candidatos divididos: eles ordenam todos os exemplos por sua x k , passar por cima da lista ordenada e soma sua segunda derivada h i . Eles consideram um candidato dividido apenas quando a soma muda mais de ϵ . Por que é que???ftkxkhiϵ

A explicação que eles dão me escapa:

Eles afirmam que podemos reescrever a equação anterior da seguinte forma:

i=1n12hi[ft(xi)gi/hi]2+constant

e não consigo seguir a álgebra - você pode mostrar por que é igual?

E eles alegam que "isso é exatamente perda quadrada ponderada com rótulos e pesos h i " - uma afirmação com a qual concordo, mas não entendo como isso se relaciona com o algoritmo de candidato a divisão que eles estão usando. ..gi/hihi

Obrigado e desculpe se isso for muito longo para este fórum.

Respostas:


8

Não vou entrar em detalhes, mas o seguinte deve ajudá-lo a entender a idéia.

Eles usam Quantiles (Wikipedia) para determinar onde dividir. Se você tiver 100 pontos de divisão possíveis, (classificados), poderá tentar os 10 pontos de divisão dos quantiles { x 10 , x{x1,,x100}10e já terá uma boa aproximação. Isto é o que oεparâmetro está fazendo. Eles consideram um ponto de divisão, quando a divisão tem~εNmais pontos sob ela que o último ponto de divisão. Seϵ=0,01{x10,x20,,x90}ϵϵNϵ=0.01, Você vai acabar com pontos de divisão, sendo maior do que { 1 % , 2 % , . . . , 99 % } dos outros pontos. Eles não consideram uma nova divisão quando "a soma muda mais de ϵ ", mas quando o número de pontos sob o ponto atual é maior em ϵ que o último.100{1%,2%,...,99%}ϵϵ

Agora, se você tiver muitos pontos contínuos que já estão bem classificados, pode ser inútil dividir entre eles. Você deseja dividir as partes do seu conjunto de dados que estão muito erradas, as que são difíceis de aprender. Para fazer isso, eles usam quantis ponderados. É aqui que os pesos desempenham um papel. O primeiro número não será o primeiro ponto maior que 10 % dos pontos, mas o primeiro ponto maior que 10 % dos pesos.1010%10%


Eu entrei apenas para lhe dar um voto positivo. Obrigado pela explicação fácil de entender.
Pakpoom Tiwakornkit 20/03/19

3

Basta adicionar a parte algébrica à resposta do @Winks:

A segunda equação deve ter seu sinal invertido, como em:

Eu=1n12hEu[ft(xEu)-(-gEu/hEu)]2+constumant=Eu=1n12hEu[ft2(xEu)+2ft(xEu)gEuhEu+(gEu/hEu)2]=Eu=1n[gEuft(xEu)+12hEuft2(xEu)+gEu22hEu]

O último termo é de fato constante: lembre-se de que o gEu e são determinados pela iteração anterior, portanto são constantes ao tentar definir f t .hEuft

Então, agora podemos reivindicar "isso é exatamente perda quadrada ponderada com rótulos pesos h i "-gEu/hEuhEu

O crédito é para Yaron e Avi, da minha equipe, por me explicar isso.


0

E então eles afirmam que "isso é exatamente perda quadrada ponderada com rótulos gi / higi / hi e pesos hihi" - uma afirmação com a qual concordo, mas não entendo como isso se relaciona com o algoritmo de candidato dividido que eles estão usando. .

  1. Se houver apenas uma amostra e você estiver otimizando W em t-th iteração, é fácil ver que o valor seria W=-gEu/hEu , explicando (ft(gi/hi))2

  2. wavg(gi)/constsigma(gi)/sigma(hi)whigiwhi

hi .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.