• Nenhum resultado encontrado

4 Machine Learning e o XGBoost

4.2 XGBoost : eXtreme Gradient Boosting

4.2.3 Complexidade e modelagem

Na etapa de treinamento é necessário definir a função prazo de regularização Ω, uma vez que é ela que controla a complexidade de cada árvore no modelo, o que contribui para evitar superposição de árvores (overfitting). Para tanto, refina-se a definição da árvore f(x) como expressa na Eq. 4.14 para torná-la mais específica

ft(x) =wq(x), wRT, q: Rd→ {1,2,· · ·, T}. (4.14) Aquiw é o vetor de pontuações, os scores nas folhas, q é uma função que atribui a cada dado a folha correspondente, γ e λ são constantes de peso (weight) que medem o quão boa é uma estrutura de árvore e T é o número total de folhas. No XGBoost, define-se a complexidade como

Esta maneira específica de definir a complexidade foi escolhida, em detrimento de outras, baseada unicamente em critérios de funcionalidade prática. A regularização da complexidade é uma etapa do processo que outras bibliotecas de árvores dão menos atenção, ou apenas ignoram. Isso porque a forma tradicional de tratamento da aprendizagem de árvores enfatiza a otimização dos modelos apenas pelo descarte das árvores menos promissoras, enquanto o processo de controle da complexidade era deixado para a heurística do algoritmo. Ao definir a complexidade formalmente, o XGBoost torna possível obter uma ideia mais clara e objetiva do que se está aprendendo e com isso originar modelos que possuam um bom desempenho no trato de problemas reais (CHEN; GUESTRIN, 2016).

A parte interessante da derivação é que após reformular o modelo de árvore é

Capítulo 4. Machine Learning e o XGBoost 78

possível calcular o valor objetivo da t-ésima árvore como:

obj(t)

Na Eq. 4.16 observa-se que a alteração do índice do somatório denota que todos os dados que compartilham a mesma folha, compartilham do mesmo modo a mesma pontuação do score.

A Eq. 4.16 pode ser ainda mais compacta definindo-se Gj = X

i∈Ij

gi e Hj = X

i∈Ij

hi, para escrever na forma da Eq. 4.17:

obj(t)

Na Eq. 4.17 cadawj é independente em relação à anterior e posterior, na expressão Gjwj+1

2(Hj +λ)w2j, é quadrática e o melhor wj para uma dada estruturaq(x) e a melhor redução objetiva que é possível obter é:

wi = − Gj

A Eq. 4.18 mede o quão boa é uma estrutura de árvoreq(x), como ilustrado na Figura 13, na qual se pode verificar de que maneira as pontuações podem ser calculadas.

Para uma dada estrutura de árvore, hi, usa-se as estatísticas gi e hi para as folhas a que pertencem e a Eq. 4.18 para calcular se a árvore deve ser descartada. Essa pontuação é como uma medida de certeza para uma árvore de decisão, exceto que também leva em conta a complexidade do modelo.

A partir da existência de meios objetivos para mensurar a qualidade de uma árvore, teoricamente pode-se enumerar todas as árvores possíveis e escolher a melhor dentre todas.

Na prática, computacionalmente o problema se torna intratável e por este motivo, a solução é otimizar um nível da árvore de cada vez. Especificamente, divide-se uma folha em duas novas folhas e a pontuação que lhe é atribuída é definida na função ganho Eq. 4.19

Gain= 1

Figura 13 – Ilustração do score da estrutura da Equação 4.18.

Fonte: Adaptado de Chen e Guestrin (2016).

onde GL é a pontuação na nova folha esquerda,GR é a pontuação na nova folha direita.

O termo (GL+GR)2

HL+HR+λ dá a pontuação na folha original e γ, a regularização na folha adicional. Se o valor da função ganho for menor que γ, o novo ramo criado não será adicionado na árvore.

Estas são exatamente as mesmas técnicas de poda (pruning) em modelos baseados em árvores. Usando os princípios do aprendizado supervisionado é possível naturalmente descobrir o motivo pelo qual essas técnicas funcionam.

Para dados reais, via de regra se deseja encontrar a melhor divisão. Para fazer isso com eficiência examinam-se todas as instâncias que já tiverem sido geradas pelo modelo na ordem de classificação, como na Figura 14.

Figura 14 – Esquema para decidir a melhor divisão da folha.

Fonte: Adaptado de Chen e Guestrin (2016).

Dispostas em sequência ordenada, uma inspeção da esquerda para a direita é suficiente para calcular a pontuação da estrutura de todas as possíveis soluções de divisão, além de encontrar a forma de dividir de maneira mais eficiente.

Capítulo 4. Machine Learning e o XGBoost 80

4.3 Discussão

O limitado número de pesquisas em Astronomia e Astrofísica que utilizaram o XGBoost decorre do fato deste ser um método recente no cenário da X-informatics.

Entretanto, os trabalhos realizados tendo-o por método relatam resultados promissores e recomendam seu uso em outros temas de pesquisa (MIRABAL et al., 2016; TAMAYO et al., 2016; TAMAYO et al., 2018; BETHAPUDI; DESAI, 2018; SAHA et al., 2018a).

Como se pode perceber na descrição do método e do funcionamento do algoritmo, a performance computacional alcança boas marcas comparadas com outras técnicas de Machine Learning em geral ou mesmo deGradient Boosting Machines, mais especificamente.

Devido às caracerísticas das boosted trees incorporadas em seus algoritmos de regressão baseado em árvores, o XGBoost oferece a possibilidade de ser usado para tratar séries temporais com resultados mais efetivos do que os métodos como splines ou smoothing, mais conhecidos. Caso se deseje um algoritmo classificador, capaz de fornecer resultados segundo algum critério prefixado, o XGBoost apresenta bom desempenho devido ao uso do CART.

A característica mais atraente do XGBoost para um pesquisador está na ideia básica de construir features que capturem informação de um conjunto de dados a partir de funções ou processos algorítmicos, por exemplo a média e variância, para diferentes intervalos de tempo que se deseja estudar. Cada features com diferentes atrasos (lags) temporais podem ser reunidos a outras informações consideradas relevantes e pertinentes, por exemplo, eventos que possam intervir na regularidade (caso exista) do comportamento dos dados. Potencialmente, qualquer informação pode ser agregada como feature e passada como variável para o modelo que se esteja implementando. Por este motivo, a experiância, a expertise e até a criatividade do pesquisador na criação de novos features pode fazer grande diferença na performance dos resultados alcançados pelo modelo.

Finalmente, mas não menos importante há que se considerar dois outros aspectos:

o custo financeiro e a portabilidade. XGBoost é distribuído nos termos da Licença Apache9. Isso reduz os custos financeiros da pesquisa. No quesito portabilidade, suas bibliotecas são compatíveis com as principais linguagens contemporâneas de programação de uso corrente nas universidades e centros de pesquisa, além de sua disponibilidade em todos os sistemas operacionais mais utilizados. Sua documentação é disponível on-line na web10. Estes aspectos e as características técnicas tornam o XGBoost uma opção efetiva para o ingresso na Astroinformática.

9 Cf. <http://www.apache.org/licenses/LICENSE-2.0>.

10 Cf. <https://xgboost.readthedocs.io/en/latest/>.