Você está na página 1de 2

Boosting

Boosting é uma técnica em que os preditores são calculados de forma sequencial, ou seja, as
previsões são obtidas a partir de iterações de um mesmo processo. Tal técnica permite que os
últimos preditores “aprendam” com seus antecessores. A técnica permite que os erros das
previsões sejam corrigidos ao longo da implementação do algoritmo. O fato de os preditores
utilizarem informações de modelos anteriores pode gerar um problema de overfitting na
amostra de treino. Isso acontece, pois preditores obtidos por boosting têm uma tendência de
fornecer previsões muito mais precisas dentro da amostra com um número relativamente
pequeno de iterações. Dessa forma, a escolha do número de iterações deve ser feita com
cuidado. “Cross-validation” é recomendado para a escolha desse parâmetro. Uma grande
gama de algoritmos podem ser escolhidos para a implementação do boosting, como árvores
de decisão, regressores (logit, probit) e algoritmos de classificação. Normalmente, o boosting é
utilizado com árvores de decisão.

Gradient Boosting
Gradient Boosting é uma técnica de machine learning utilizada para resolver tanto problemas
de classificação como de regressão. O Gradient Boosting segue a mesma lógica do Boosting
acima descrito, ou seja, o Gradient Boosting utiliza diversas iterações de um preditor “fraco”,
como árvores de decisão, para criar um preditor mais robusto e com uma performance
superior na resolução do problema em questão. O nome da técnica advém do fato de que o
algoritmo busca minimizar a função de perda do modelo (função que avalia o nível de
“deficiência” das previsões obtidas por um certo algoritmo – a função de perda pode ser, por
exemplo, MSE, RMSE ou o erro absoluto) através de um processo matemático chamado
“gradient descent”, que está fortemente fundamentado em princípios de álgebra linear. A
explicação desse método foge do escopo do presente trabalho. É importante ressaltar que o
Gradient Boosting é um dos métodos analisados nesse trabalho que mais se encaixam na
categoria “black box”, ou seja, a interpretação do funcionamento do algoritmo e de sua
tomada de decisões é essencialmente complicada, diferentemente de algoritmos como Naive
Bayes e KNN.

Considerando que queremos minimizar o erro quadrático médio do modelo, ou seja,


queremos minimizar a soma de resíduos (diferença entre o valor previsto pelo algoritmo e o
valor real) ao quadrado do modelo, podemos entender intuitivamente o funcionamento do
Gradient Boosting através dos seguintes passos:

1. A função de perda é definida como:

2. O algoritmo de árvores de decisão é alimentado com os dados da base de


treino e um modelo inicial é gerado –
;
3. O algoritmo irá aplicar a árvore de decisão nos resíduos do modelo inicial e irá
criar um novo modelo incorporando esses resíduos -
;
4. X iterações do passo 3 serão feitas até que o modelo obtido forneça o menor
MSE.

CatBoost
CatBoost é uma das diversas implementações de Gradient Boosting em árvores de decisão. O
algoritmo foi criado pela empresa de tecnologia Yandex, responsável pelo motor de buscas
mais popular da Rússia. O algoritmo tornou-se open source há mais ou menos de um ano e
possui algumas vantagens em relação a outras implementações de Gradient Boosting, como o
LightGBM e XGBoost. A principal dessas vantagens é a maneira otimizada do CatBoost para
tratar variáveis categóricas. Variáveis categóricas não podem ser utilizadas diretamente pelos
algoritmos de Gradient Boosting e, portanto, precisam ser transformadas em variáveis
numéricas. O CatBoost é programado para lidar com esse tipo de variável através de uma série
de rotinas estatisticamente fundamentadas. Tais rotinas podem ser consultadas no endereço
eletrônico:

https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-
docpage/

A opção pela utilização do CatBoost foi tomada levando em consideração o fato de que a base
de dados utilizada no presente artigo possui uma série de variáveis categóricas. Como existem
testes que comprovam a eficácia do CatBoost em bases similares (em comparação com outras
implementações do Gradient Boosting), a escolha do algoritmo mostrou-se como a mais
aceitável. Uma comparação entre diferentes implementações do Gradient Boosting pode ser
encontrada no seguinte endereço eletrônico:

https://towardsdatascience.com/catboost-vs-light-gbm-vs-xgboost-5f93620723db

Latex

MSE

\\MSE: Loss=\sum (y_t-\theta_t)^2

\\ \mbox{Em que:}

\\y_t=\mbox{valor previsto pelo algoritmo para a observa\c{c}\~ao t}

\\\theta_t=\mbox{valor real para a observa\c{c}\~ao t}

Modelo 1

y=F_1(dados)

Modelo 2

F_2(dados)=F_1(dados)+\mbox{Modelo aplicado aos res\'iduos}