Classificação com aumento de gradiente: como manter a previsão em [0,1]


17

A questão

Estou lutando para entender como a previsão é mantida dentro do intervalo ao fazer a classificação binária com o Gradient Boosting.[0,1]

Assumir que estamos a trabalhar sobre um problema de classificação binária, e a função objectiva é a perda de registo, , onde y é a variável de destino { 0 , 1 } e H é o nosso modelo atual.yilog(Hm(xi))+(1yi)log(1Hm(xi))y{0,1}H

Ao treinar a próxima fraco aluno tal que o nosso novo modelo é H i = H i - 1 + h i , que é o mecanismo que é suposto para manter H i[ 0 , 1 ] ? Ou, talvez uma pergunta mais relevante, exista esse mecanismo?hiHi=Hi1+hiHi[0,1]


Mais informações sobre o que estou fazendo

Estou tentando implementar o aumento de gradiente, usando árvores de regressão. O que faço para evitar isso é que uma multiplicação por um fator c [ 0 , c max ] , de modo que H + c max h não fique abaixo de zero ou acima de um, e eu seleciono c nesse intervalo que minimiza a função de perda.hic[0,cmax]H+cmaxhc

Isso traz o seguinte problema: Depois de algumas rodadas, tenho um ponto que está perfeitamente classificado, e a melhor divisão disponível para empurrar o classificador na direção do gradiente quer empurrar esse ponto para cima de um, o que asseguro que não aconteça por configuração . Portanto, toda a próxima iteração selecionará a mesma divisão e o mesmo cc=0 .c=0

Eu tentei práticas comuns de regularização

  • Diminuindo a taxa de aprendizagem multiplicando por μ =c . Isso apenas atrasa o problema.μ=0.01
  • Subamostrando o espaço do recurso, mas alguns dos pontos são muito fáceis de classificar, eles marcam quase todas as caixas no campo "isso é positivo?" forma, e quase toda "boa divisão" mostra esse comportamento.

Eu acho que isso não é um problema de parâmetros, e deve haver uma maneira mais sólida de corrigir isso. Não estou descartando a possibilidade de que minha implementação seja interrompida, mas não encontrei nada que resolvesse esse problema.

O que estamos manipulando, no contexto da perda logística, deve ser uma probabilidade; então, como evitamos isso?


Minha intuição seria colocar o modelo que estamos construindo, , em uma função sigmóide tal que seja limitada a [ 0 , 1 ] , e acho que funcionaria, mas quero saber se existem outras soluções. Como o aumento de gradiente parece ser usado com êxito nas tarefas de classificação, uma solução "correta" (isto é, com justificativa) deve existir.H[0,1]


Você pode exigir que seja multiplicativo, pois ln ( H ) se comporta de maneira aditiva com seus outros especialistas. Hln(H)
Alex R.

Respostas:


21

Eu gosto de pensar nisso em analogia com o caso dos modelos lineares e sua extensão aos GLMs (modelos lineares generalizados).

Em um modelo linear, ajustamos uma função linear para prever nossa resposta

y^=β0+β1x1+βnxn

Para generalizar para outras situações, introduzimos uma função de link, que transforma a parte linear do modelo na escala da resposta (tecnicamente, esse é um link inverso, mas acho que é mais fácil pensar dessa maneira, transformando o preditor linear em uma resposta, do que transformar a resposta em um preditor linear).

Por exemplo, o modelo logístico usa a função sigmóide (ou logit)

y^=11+exp((β0+β1x1+βnxn))

e regressão de Poisson usa uma função exponencial

y^=exp(β0+β1x1+βnxn)

Para construir uma analogia com o aumento de gradiente, substituímos a parte linear desses modelos pela soma das árvores aumentadas. Assim, por exemplo, o caso gaussiano (análogo à regressão linear) torna-se o bem conhecido

y^=ihi

onde é a sequência de alunos fracos. O caso binomial é análogo à regressão logística (como você observou na sua resposta)hi

y^=11+exp(ihi)

e aumento de poisson é análogo à regressão de poisson

y^=exp(ihi)

A questão permanece: como alguém se encaixa nesses modelos aprimorados quando a função de link está envolvida? Para o caso gaussiano, onde o link é a função de identidade, o mantra frequentemente ouvido de adequar alunos fracos aos resíduos do atual modelo de trabalho funciona, mas isso não generaliza realmente para os modelos mais complicados. O truque é escrever a função de perda que está sendo minimizada em função da parte linear do modelo (ou seja, o iβixi parte da formulação GLM).

Por exemplo, a perda binomial é geralmente encontrada como

iyilog(pi)+(1yi)log(1pi)

Aqui, a perda é uma função de , os valores previstos na mesma escala que a resposta, e p i é uma transformação não linear do preditor linear L i . Em vez disso, podemos re-expressar isso como uma função de L i (nesse caso, também conhecido como log odds)pipiLiLi

iyiLilog(1+exp(Li))

Então podemos pegar o gradiente disso em relação a e aumentar para minimizar diretamente essa quantidade.L

Somente no final, quando queremos produzir previsões para o usuário, aplicamos a função link à sequência final de alunos fracos para colocar as previsões na mesma escala da resposta. Ao ajustar o modelo, trabalhamos internamente na escala linear o tempo todo.


2
Concorde com "escreva a função de perda sendo minimizada em função da parte linear do modelo". Mas acho que uma maneira direta de entendê-lo sem derivar as probabilidades do log é: para a parte linear do modelo, ou seja, , pense na função de perda como - i ( y i log 1r(,), e o pseudo-residual é apenas para tornar a derivada da perda escritar. i(yilog11+er+(1yi)log(111+er))r
User2830451

@ matthew-drury Você pode adicionar alguma luz na seção multinomial da classe K do mesmo algoritmo em que idéias semelhantes são estendidas para trabalhar para isso?
MixCoded

6

Depois de alguma pesquisa, parece que minha intuição e Alex R. comentam estão certos.

[0,1]HHR

11+eH[0,1]
H

Isso foi sugerido no artigo Regressão logística aditiva: uma visão estatística de impulsionar , por Friedman, Hastie e Tibshirani, a construir o LogitBoost (Wikipedia) , uma adaptação do AdaBoost (Wikipedia) à perda logística.

Em termos muito básicos, se é possível passar da regressão linear para a regressão logística pela adição de um sigmóide, ele também trabalha para converter o aumento da regressão em aumento da classificação.

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.