Escolar Documentos
Profissional Documentos
Cultura Documentos
com python
módulo 5
Modelagem e avaliação dos resultados
• Manipulações importantes nos dados antes de iniciar a modelagem, ex. One Hot Encoding
X1 X2 X3 ... Xn Y
20 B "bancos" ... 350 1
30 A "corretoras" ... 400 1
40 C "assets" ... 450 0
50 A "mercado" ... 500 1
60 A "bolsa" ... 550 0
Modelo
Dados históricos
Jardeilsom do Nascimento Oliveira - blakjd2@hotmail.com - IP: 189.18.177.174
modelagem
Tipos de modelos
Buscar entender o problema de negócio e verificar se ele pode ser resolvido via aprendizado de máquina:
• Classificação
• Regressão
• Agrupamento
cLASSIFICAÇÃO
X1 X2 X3 ... Xn Y
20 B "bancos" ... 350 1
30 A "corretoras" ... 400 1
40 C "assets" ... 450 0
50 A "mercado" ... 500 1
60 A "bolsa" ... 550 0
Buscar entender o problema de negócio e verificar se ele pode ser resolvido via aprendizado de máquina:
• Classificação
• Regressão
• Agrupamento
Regressão
X1 X2 X3 ... Xn Y
20 B "bancos" ... 350 20
30 A "corretoras" ... 400 35
40 C "assets" ... 450 40
50 A "mercado" ... 500 42
60 A "bolsa" ... 550 50
Buscar entender o problema de negócio e verificar se ele pode ser resolvido via aprendizado de máquina
• Classificação
• Regressão
• Clustering / Agrupamento
cLUSTERING
X1 X2 X3 ... Xn
20 B "bancos" ... 350
30 A "corretoras" ... 400
40 C "assets" ... 450
50 A "mercado" ... 500
60 A "bolsa" ... 550
A etapa de Exploratory Data Analysis tem como principal objetivo analisar e buscar o entendimento sobre os
dados.
Criando o entendimento dos dados, abre a possibilidade de criação de novas variáveis, o que pode auxiliar ainda
mais o train/predict em termos de performance.
Antes da realização do treinamento de modelos, alguns processamentos precisam ser feitos no dataframe. Isso
se dá pois o algoritmo não entende dados como: “empreendedor”, “raro”, “positivo”. Tais dados precisam ser
alterados para valores numéricos.
Etapa importante da modelagem, pois não é prudente levar para produção n variáveis que não discriminam a
target e que ainda trazem um grau maior de complexidade na geração da ABT, sem necessidade.
Selecionando o melhor
subconjunto
Aprendizado do algoritmo
Performance
• Wrapper methods – Métodos dessa classe realizam uma busca das features mais relevantes, baseando-se no
quanto elas ajudam na explicação do fenômeno em estudo. Treinam modelos com subset de dados (colunas e
linhas) e verificam performance.
Considerando um subconjunto de
todas as features
Aprendizado do algoritmo
Performance
• Embedded methods – Nesta classe de algoritmos, é realizado uma combinação dos métodos de filter e
wrapper, onde subconjuntos de dados são selecionados e o resultado de performance do treinamento é
verificado. Funcionam como o treinamento padrão, mas selecionando o número desejado de features mais
importantes.
Considerando um subconjunto de
todas as features
X1 Y X1 Y X1 Y X1 Y
20 1 20 11 A 1 A 11
30 1 30 124 B 1 B 124
40 0 40 43 C 0 C 43
50 1 50 55 D 1 D 55
60 0 60 200 E 0 E 200
Forward Selection: Nesse tipo de seleção a iteração do método começa sem nenhuma variável e começa a
adicionar uma a uma, verificando se ela melhora a performance do algoritmo, isso é feito até que uma nova
variável não adiciona mais na performance do algoritmo, então o processo é encerrado.
Backward Elimination: Backward funciona no sentido oposto do apresentado anteriormente, pois ele inicializa
contendo todas as variáveis e a cada iteração remove a variável com menor contribuição para a modelagem.
Recursive Feature elimination: Nessa abordagem o algoritmo seleciona subset de variáveis e treina modelos,
guarda a melhor e a pior performance, itera com diversos subsets de features até testar todas e então tem qual o
conjunto de melhores variáveis para a modelagem.
A seleção de classe Embedded é a combinação das técnicas de filter e wrapper onde existe um treinamento de
modelos usando o tipo de seletor desejado, fazendo assim a avaliação de performance do algoritmo usado para
train, dado os valores do resultado desse treino, as n variáveis mais relevantes serão mantidas.
Ao usar o método seletor SelectKBest, as melhores features serão mantidas até o final do treinamento. Para isso,
será analisada a feature importance dos algoritmos ou ainda o resultado de beta da equação, dependendo de qual
técnica foi empregada.
É chamada de ABT a tabela final de modelagem, que será dividida entre train/test e executado os testes de n
modelos diferentes, a fim de encontrar a combinação de hiperparâmetros de melhor performance com base na
métrica de qualidade e ajuste escolhida.
Existe a necessidade de quebrar o dataset de modelagem em train /test, pois essa é a forma de validar qual
modelo tem melhor performance e além disso, se existe indícios de over / underfitting.
Uma das melhores formas de se evitar o overfitting é usar uma das abordagens existentes de validação cruzada:
• Holdout
• K-folds
• Leave-one-out
Dados de test
Iter 1
Iter 2
Iter 3
Iter n
Dataset
Nesse processo é importante entender o quanto o modelo está aderente aos dados de treinamento.
O processo de tuning de hiperparâmetros é aplicado nesse tipo de técnica fazendo o treinamento e análise de
performance para todos os conjuntos possíveis. Criando as n combinações em um grid e testando cada uma
delas até convergir para a melhor.
2 ...
N
1
Jardeilsom do Nascimento Oliveira - blakjd2@hotmail.com - IP: 189.18.177.174
modelagem
Randomized Search
O processo de tuning de hiperparâmetros é aplicado nesse tipo de técnica fazendo o treinamento e análise de
performance não para todos os conjuntos possíveis. Existe um processo que “pula” algumas combinações até
atingir melhor valor de performance.
4
MAX_DEPTH N_ESTIMATORS
20 100 2 3
10 200 5
50 300
60 550
40 600 1
Existe uma sequência lógica amplamente aplicada nos projetos de Data Science:
1 2 3 4 5 6 7
Entendimento do Aquisição dos Entendimento dos Feature Modelagem Avaliação dos Deploy
Problema dados dados Engineering resultados
No conceito de classificação é apresentado um problema onde se deseja saber qual classe é aquela do conjunto
de dados.
cLASSIFICAÇÃO
X1 X2 X3 ... Xn Y
20 B "bancos" ... 350 1
30 A "corretoras" ... 400 1
40 C "assets" ... 450 0
50 A "mercado" ... 500 1
60 A "bolsa" ... 550 0
Algoritmos estudados:
● Árvore de classificação
● Random forest classifier
● Gradient boosting classifier
DT (Decision Trees) - Tem uma estratégia de divisão e conquista, onde problemas mais complexos são
quebrados em subproblemas menos complexos. Isso é realizado de forma recursiva até o final. As soluções dos
subproblemas são então combinadas em uma árvore.
Em sua divisão:
Na execução de suas quebras, existe o objetivo na classificação de minimizar conjuntos heterogêneos. Isso
significa que a árvore sempre busca a variável que dado a condição de quebra, vai trazer a maior separação
possível do conjunto.
Em cada iteração, a quebra é feita pela feature que melhor divide as classes.
Jardeilsom do Nascimento Oliveira - blakjd2@hotmail.com - IP: 189.18.177.174
Classificação
Árvores
Ganho de informação:
O ganho de informação é o responsável por medir a redução da entropia nas partições que está sendo criada com
as quebras na árvore.
Onde:
- probabilidade da classe * log da probabilidade da classe
Onde:
H é a impureza da região, R é a região atual, R_e é sub-região da esquerda, R_d é sub-região da direita e |R| é
quantidade de exemplos na região em questão.
Jardeilsom do Nascimento Oliveira - blakjd2@hotmail.com - IP: 189.18.177.174
Classificação
Árvores
Estatísticas calculadas em nós mais profundos da árvore têm nível mais baixo de importância, onde poucos
exemplos chegam até o nó folha.
Na pré-poda, o algoritmo para no momento que uma condição é atingida, como por exemplo: Altura da árvore,
número de indivíduos por folha.
Caso o erro de backed up for >= erro estatístico, nó é modificado para nó folha com a classe majoritária.
Random forest é uma evolução dos algoritmos de árvore, onde uma abordagem de combinar n árvores traz maior
poder de predição. Essa evolução acontece pois os algoritmos são treinados usando diferentes amostras do dado
de treinamento, isso traz árvores com uma estrutura que consegue capturar melhor os sinais das variáveis
explicativas.
Essa metodologia visa selecionar samples do dataset e rodar uma árvore para ela.
Depois de criar as diversas árvores, usa-se uma votação para estabelecer o “caminho” / regra vencedora.
O processo de bagging já foi um avanço considerável nos modelos de árvores. No entanto, existia espaço para
melhora, com isso surge os algoritmos de boosting.
Gradient boosting
O que é boosting?
1. É selecionado os dados e criado uma árvore de decisão. Feito isso, calcula-se os erros, os quais são
considerados na próxima iteração
2. Faz uma nova árvore, ponderando os erros anteriores
3. Realiza esse processo sequencial até convergir
Métricas de classificação são aquelas que trazem o quão um modelo de decisão está aderente a o que está
ocorrendo ou ainda quanto o modelo de ordenação está de fato ordenando por probabilidade do evento ocorrer.
Exemplos:
Liberar crédito para uma pessoa ou não?
Inibir o atraso de clientes mais propensos, quais ligar primeiro?
Métricas:
1. Acurácia
2. Receitas / perdas
3. Precision
4. Recall
5. ROC
Receitas e perdas:
Matriz de confusão
Pos TP FN
Classe Real
Neg FP TN
Precision:
Dos que o modelo disse ser 1, quantos ele acertou?
Prec = TP / (TP + FP)
Recall:
De todos os 1’s da base, quantos ele acertou?
Rec = TP / (TP + FN)
ROC:
Traz o grau de ordenação das predições
Regressão
X1 X2 X3 ... Xn Y
20 B "bancos" ... 350 20
30 A "corretoras" ... 400 35
40 C "assets" ... 450 40
50 A "mercado" ... 500 42
60 A "bolsa" ... 550 50
Algoritmos estudados:
● Árvore regressora
● Random forest regressor
● Gradient boosting regressor
A árvore regressora tem as mesmas características técnicas que a de classificação. No entanto, é calculado com
base em métricas de performance para regressão -> erro quadrático / erro absoluto
A árvore regressora então calcula qual a quebra deve ser feita que melhor reduz o erro na predição do número real,
isso pode ser realizado tanto para variáveis numéricas como também as categóricas.
X > 50
Y <=2000 Z = ‘A’
Z <>
550 250
‘True’
300 450
A random forest regressora segue o mesmo conceito da de classificação, onde a única diferença para a
regressora está no fato do processo de voting ser feito usando a média das médias e não mais a moda.
Gradient boosting de regressão traz o mesmo conceito, onde o processo iterativo de retrain é realizado e a
ponderação dos erros é dado a métrica regressora.
Em modelos regressores são trabalhadas métricas mais atreladas ao erro, dado por quanto aquele modelo está
deslocado dos pontos reais.
R²:
Representa a proporção de variância da target que pode ser explicada pelas explicativas
Agrupamento é uma forma de tornar os dados mais legíveis, buscando encontrar similaridade entre as entradas,
baseando-se em n features. A grande diferença da abordagem da classe de problemas não supervisionados é que
ela não tem e nem se pode construir a target.
cLUSTERING
X1 X2 X3 ... Xn
20 B "bancos" ... 350
30 A "corretoras" ... 400
40 C "assets" ... 450
50 A "mercado" ... 500
60 A "bolsa" ... 550
Compactação ou homogeneidade:
Apresenta a variação intra-clusters pequena. Efetivo na descoberta de clusters esféricos ou bem separados.
Encadeamento:
Conceito local, onde os pontos vizinhos devem compartilhar o mesmo cluster. Não performa bem quando existe
pouca separação espacial entre os clusters.
Separação espacial:
Considera neste caso a distância entre clusters.
Os diferentes algoritmos podem encontrar uma variação grande de respostas para seu problema, dependendo do
nível que seus critérios estão estabelecidos.
Antes de executar qualquer algoritmo de agrupamento, é recomendado que faça uma transformação de escala
dos dados normalizando assim suas distâncias. Isso é importante, pois é a partir dessa distância que os grupos
são formados.
z = (x - u) / s
onde “u” é a média da feature e “s” é o desvio padrão.
A transformação faz com que os dados tenham média 0 (zero) e desvio padrão 1 (um).
Nesta padronização, cada valor é substituído por quantos desvios padrões este valor está distante em relação à
média.
Fim
● Aglomerativa -> Começa com n clusters com um único objeto em cada e agrupa os clusters de forma
sucessiva
● Divisiva -> Começa com um único cluster, contendo todos os objetos e divide os clusters de forma sucessiva
Divisiva
Aglomerativa
● Prós:
1. Muito bom para trabalhar com dados que sugerem formas com alta densidade de pontos;
2. Bom para trabalhar com outliers, mantendo-os fora os clusters de alta densidade;
● Contras:
1. Não trabalha bem com dados com densidades próximas;
2. Não recomendado para dados com alta dimensionalidade (features);
1 - Usar silhouette score -> Esse score traz um indicativo de quanto os clusters estão bem definidos. Usa as
medidas intra-clusters versus a distância inter-clusters e apresenta o resultado variando de -1 a 1.