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.
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.
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?
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.
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 c .
Eu tentei práticas comuns de regularização
- Diminuindo a taxa de aprendizagem multiplicando por μ = . Isso apenas atrasa o problema.
- 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.
fonte
Respostas:
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
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)
e regressão de Poisson usa uma função exponencial
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
onde é a sequência de alunos fracos. O caso binomial é análogo à regressão logística (como você observou na sua resposta)hi
e aumento de poisson é análogo à regressão de poisson
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
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)pi pi Li 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.
fonte
Depois de alguma pesquisa, parece que minha intuição e Alex R. comentam estão certos.
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.
fonte