Eu sei como implementar a função objetivo linear e os reforços lineares no XGBoost. Minha pergunta concreta é: quando o algoritmo se encaixa no residual (ou no gradiente negativo) ele está usando um recurso em cada etapa (ou seja, modelo univariado) ou todos os recursos (modelo multivariado)?
Qualquer referência à documentação sobre os aumentos lineares no XGBoost será apreciada.
EDIT: Os reforços lineares podem ser implementados no XGBoost, definindo o parâmetro 'booster' como 'gblinear'. Consulte: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/ para obter informações úteis sobre reforço linear. Note que eu não estou falando sobre a função objetivo (que também pode ser linear), mas sobre o aumento deles mesmos.
Obrigado!
regression
machine-learning
boosting
xgboost
Escachator
fonte
fonte
Respostas:
Resposta curta para sua pergunta:
O algoritmo está usando um recurso ou todos os recursos dependem da sua configuração. Na minha longa resposta listada abaixo, nos exemplos do toco de decisão e do aluno linear, eles usam todos os recursos, mas se você quiser, também pode ajustar um subconjunto de recursos. As colunas de amostra (recursos) são vistas como reduzindo a variação do modelo ou aumentando a "robustez" do modelo, especialmente se você tiver um grande número de recursos.
Em
xgboost
, para o aluno da base da árvore, você pode definircolsample_bytree
recursos de amostra para caber em cada iteração. Para o aluno de base linear, não existem essas opções, portanto, ele deve ser adequado a todos os recursos. Além disso, poucas pessoas usam o aprendiz linear no xgboost ou o aumento do gradiente em geral.Resposta longa para linear como aprendiz fraco para impulsionar:
Na maioria dos casos, não podemos usar o aluno linear como aluno de base. O motivo é simples: a adição de vários modelos lineares ainda será um modelo linear.
Ao impulsionar nosso modelo, há uma soma de alunos básicos:
onde é o número de iterações no aumento, é o modelo para iteração.M bm mth
Se o aluno base for linear, por exemplo, suponha que apenas executemos iterações e e ,2 b1=β0+β1x b2=θ0+θ1x
que é um modelo linear simples! Em outras palavras, o modelo de conjunto tem o "mesmo poder" do aluno básico!
Mais importante, se usarmos o modelo linear como aluno base, podemos fazer um passo resolvendo o sistema linear vez de passar por várias iterações no aumento.XTXβ=XTy
Portanto, as pessoas gostariam de usar outros modelos além do modelo linear como aluno básico. A árvore é uma boa opção, pois adicionar duas árvores não é igual a uma árvore. Vou demonstrá-lo com um caso simples: cepo de decisão, que é uma árvore com apenas 1 divisão.
Estou fazendo um ajuste de função, onde os dados são gerados por uma função quadrática simples, . Aqui está a verdade do terreno de contorno preenchido (à esquerda) e o encaixe de reforço do coto de decisão final (à direita).f(x,y)=x2+y2
Agora, verifique as quatro primeiras iterações.
Observe que, diferente do aluno linear, o modelo na 4ª iteração não pode ser alcançado por uma iteração (um único tronco de decisão) com outros parâmetros.
Até agora, expliquei, por que as pessoas não estão usando o aluno linear como aluno de base. No entanto, nada impede as pessoas de fazer isso. Se usarmos o modelo linear como aluno base e restringir o número de iterações, será igual à resolução de um sistema linear, mas limitaremos o número de iterações durante o processo de resolução.
O mesmo exemplo, mas no gráfico 3D, a curva vermelha são os dados e o plano verde é o ajuste final. Você pode ver facilmente, o modelo final é um modelo linear e
z=mean(data$label)
é paralelo ao plano x, y. (Você pode pensar por quê? Isso ocorre porque nossos dados são "simétricos", portanto, qualquer inclinação do plano aumentará a perda). Agora, verifique o que aconteceu nas primeiras 4 iterações: o modelo ajustado está subindo lentamente para o valor ótimo (média).Conclusão final, o aluno linear não é amplamente utilizado, mas nada impede as pessoas de usá-lo ou implementá-lo em uma biblioteca R. Além disso, você pode usá-lo e limitar o número de iterações para regularizar o modelo.
Post relacionado:
Reforço de gradiente para regressão linear - por que não funciona?
Um coto de decisão é um modelo linear?
fonte