Tabela Resumo - Data Science

Fazer download em xlsx, pdf ou txt
Fazer download em xlsx, pdf ou txt
Você está na página 1de 91

Melhores dados superam os algoritmos mais sofisticados.

- better data beats fancier algorithms


MÉTODO DE OBSERVAÇÕES TIPOS DE TAREFAS OBSERVAÇÕES EXEMPLOS DE APLICAÇÃO TÉCNICAS / Algorítmo Critério / Distinção DESCRIÇÃO DA TÉNICA PONTOS FORTES PONSTOS FRACOS PONTOS IMPORTANTES PARA MODELAGEM HIPERPARÂMETROS
APRENDIZAGEM (formato df, tratamentos dados, coluna dummy, tipo de dados)
Nâo Supervisionado - descrever fatos relevantes e Agrupamento - segmentar conjunto de dados em subgrupos - Segmentação de mercado K-means Tipo de variável: Contínua - é um algoritmo de propósito geral que faz clusters baseados em distâncias geométricas entre pontos. Os clusters são agrupados algoritmo recomendado para iniciantes, porque é simples, mas flexível o O usuário deve especificar o número de clusters, o que nem sempre será fácil de
desconhecidos do usuário. ("Clusterização") homogeneos. A diferença entre agrupamento e - Grupos de clientes que compram determinado produto em torno dos centróides, fazendo com que sejam globulares e tenham tamanhos semelhantes. suficiente para obter resultados razoáveis para a maioria dos problemas. É o fazer. Além disso, se os verdadeiros clusters subjacentes em seus dados não
[Descritivo ] classificação é que no agrupamento não existe uma - Agrupamento de documentos/ notícias algoritmo de clustering mais popular, por ser rápido, simples e forem globulares, o K-Means produzirá clusters pobres.
- dados não rotulados classe prédefinida. - Agrupamento de produtos similares surpreendentemente flexível se você pré-processar seus dados e projetar recursos
- não temos a variável target - encontrar agrupamentos naturais de observações - Perfis de clientes (Netflix) úteis.
(variávl de saída - Y) com base na estrutura inerente ao seu conjunto de - Análise de redes sociais (grupos de usuários / usuário com
- encontrar padrões/ estruturas dados. influência na rede)
escondidas - Because it is unsupervised (there's no "right - Detecção de comportamento anômolo, identificando padrões de
answer"), data visualization is usually used to uso fora dos clusters conhecidos
[ data driven ] evaluate results. If there is a "right answer" (i.e. you Tipo de variável: Contínua
have pre-labeled clusters in your training set), then > Quais clientes gostam de determinado gênero musical? Singular value Decomposition
- quando o algoritmo aprende com classification algorithms are typically more > Quais as características dos clientes que compram mais? (SVD)
exemplos simples, sem qualquer appropriate > Quais as características dos alunos que deixam a faculdade?
resposta associada, deixando a
cargo do algoritmo determinar os > Quais são os grupos?
padrões de dados por conta
própria. - Atividade de aprendizagem não-supervisionada. O
objetivo é encontrar grupos semelhantes ou Propagação de afinidade Propagação de afinidade é uma técnica de clustering relativamente nova que faz clusters com base nas distâncias dos gráficos O usuário não precisa especificar o número de clusters (mas precisa especificar os A principal desvantagem da Propagação de Afinidade é que ela é bastante lenta e
homogêneos em dados. entre os pontos. Os aglomerados tendem a ser menores e ter tamanhos irregulares. parâmetros 'sample preference' e 'damping') pesada em memória, dificultando a escalabilidade para conjuntos de dados
- Os pontos de dados devem o mais semelhante entre maiores. Além disso, também pressupõe que os verdadeiros clusters subjacentes
si, mas muito diferente entre os clusters. são globulares
- É utilizado para descoberta de conhecimento, ao
invés de fazer previsões. A ideia é descobrir padrões.

DBSCAN O DBSCAN é um algoritmo baseado em densidade que faz clusters para regiões densas de pontos. Há também um novo O DBSCAN não assume clusters globulares e seu desempenho é escalável. Além O usuário deve ajustar os hiperparâmetros 'epsilon' e 'min_samples', que definem - EPS: distância máxima entre duas amostras para ser considerada como na vizinhança da outra. NÃO é um limite máximo para as
desenvolvimento recente chamado HDBSCAN que permite clusters de densidade variável disso, ele não exige que cada ponto seja atribuído a um cluster, reduzindo o ruído a densidade dos clusters. O DBSCAN é bastante sensível a esses hiperparâmetros distâncias de pontos dentro de um cluster.
dos clusters (isso pode ser um ponto fraco, dependendo do seu caso de uso) - min_smaple: número de amostras (ou peso total) em uma vizinhança para um ponto a ser considerado como ponto central.

Hierárquico / Aglomerativo O clustering hierárquico, também conhecido como clustering aglomerativo, é um conjunto de algoritmos baseados na mesma A principal vantagem do agrupamento hierárquico é que os clusters não são Assim como o K-Means, o usuário deve escolher o número de clusters (ou seja, o
ideia: (1) Comece com cada ponto em seu próprio cluster. (2) Para cada cluster, mescle-o com outro baseado em algum critério. considerados globulares. Além disso, ele se adapta bem a conjuntos de dados nível da hierarquia para "manter" após a conclusão do algoritmo)
(3) Repita até que apenas um cluster permaneça e você fique com uma hierarquia de clusters. maiores.

Associação / Segmentação - determinar que coisas estão relacionadas, juntas. - Prateleiras de mercado Apriori Tipo de variável: Categórica
- Promoções de itens que são vendidos juntos
- Planejar catálogos de lojas e folhetos de promoção
- Controle de evasão em universidades

FP-Growth Tipo de variável: Categórica

Redução de Principal component Analysis Tipo de variável: Contínua


Dimensionalidade (PCA)

Linear Discriminant Analysis (LDA)

Detecção de Desvios - encontrar conjunto de dados que não obedecem ao - Fraudes em cartão de crédito xxxx
comportamento ou modelo de dados - Intrusão em redes
- detectar mudanças de comportamento, - Consumo de energia elétrica, água, telefone
comparando ações com padrões - Desempenho de atletas (doping)
- encontrar os OUTLIERS - Monitoramento de máquinas
xxxx

Padrões Sequenciais - utiliza algum tipo de padrão nos dados para - Livraria, lojas de equipamentos de atletismo, computadores (se xxxx
determinar que tipos de sequências podem ser uma pessoa compra determinado livro e depois de x tempo,
determinadas. compra outro)
- Clientes que compram celular, 3 meses depois compram um
carregador para o carro
- Prevenção de doenças (sintomas acontecem sequencialmente até
uma doença mais grave xxxx
- Navegação em sites (qual a sequencia de cliques)

Supervisionado - dados rotulados Classificação - Na classificação vc tem rótulos (lables) - Marketing Direto (esse cliente vai comprar ou não?) Análise de vizinhança baseado em distâncias - técnica de pesquisa, não de conhecimento. Ex.: estimar renda de um indivíduo pesquisando k=20 vizinhos mais próximos com Esses algoritmos consomem muita memória, têm um desempenho ruim para [ SKLearn - pacote: neighbors | função: KNeighborsClassifier ] Distância Euclideana: ideal utilizar para variáveis numéricas. É uma distância simétrica e trata todas as dimensões iguais. Ponto
- temos uma variável target - Insatisfação de Clientes (não satisfeito, neutro, satisfeito?) (k-Nearest Neighbor) - KNN geométrico mesma informação de profissão, escolaridade, idade. O problema é que precisa existir um registro suficientes de atributos para dados de alta dimensão e exigem uma função de distância significativa para fraco é a sensibilidade a outliers.
[ Preditivo ] (variável de saída - Y) - examina certa característica dos dados e atribui uma - Risco de crédito (risco alto, médio ou baixo?) [parametric] determinar uma vizinhança calcular a similaridade. Na prática, treinar regressões regularizadas ou conjuntos também existe o KNN para Regressão, função: KNeighborsRegressor
- prever saída classe. Categorizar vaores. É um processo de - Filtros de spam (é email propaganda ou não?) - algoritmo não-linear de árvores são quase sempre melhores usos do seu tempo. Distância de Hamming: opção para atributos categóricos.
Discriminação ou Caracterização. Ex. Discriminação = - Separação de notícias (esporte, política, lazer?) Tipo de Variável: Categórica - os dados devem estar normalizados antes de aplicar o algortimo Se valor de K for muito alto, pode resultar num modelo com baixa precisão. Se for muito
[ task driven ] itens de um supermercado como higiene, vestuário, - Reconhecimento de voz / face (pertence apessoa a, b, c?) baixo, pode ser muito sensível a utliers. Ainda tem distância de Minkowinski e Manhattan.
alimentício, etc; Ex. Caracterização = pela faixa - Previsão de doenças (vai desenvolver ou não uma doença?) Com Manhattan é possível dar pesos às dimensões.
- inferir resultados a partir de salarial, entre baixa, média e alta.
padrões encontrados na análise > Vai chover hoje?
descritiva - muitos algoritmos de regressão têm contrapartidas > A criança está com pneumonia?
em classificação. Os algoritmos são adaptados para > Nesta imagem tem uma pessoa?
- sempre que o algoritmo é prever uma classe (ou probabilidades de classe) em > O aluno vai deixar a faculdade?
"treinado" sobre um conjunto de vez de números reais.
dados históricos contendo entradas Naïve Bayes [statistical classifier] - Naive Bayes (NB) é um algoritmo muito simples baseado em probabilidade condicional e contagem. Essencialmente, seu modelo Embora a suposição de independência condicional raramente seja verdadeira, os Devido à sua simplicidade, os modelos NB são frequentemente superados por [ SKLearn - pacote: naive_bayes | função: GaussianNB ]
e saídas > O que é isso? é, na verdade, uma tabela de probabilidades que é atualizada através de seus dados de treinamento. Para prever uma nova modelos de NB na verdade apresentam um desempenho surpreendentemente modelos devidamente treinados e ajustados usando os algoritmos listados. 3 algorítmos no SKLearn:
> 0 ou 1; A ou B; sim ou não Tipo de Variável: Categórica observação, você simplesmente "procuraria" as probabilidades de classe em sua "tabela de probabilidade" com base em seus bom na prática, especialmente por serem simples. Eles são fáceis de implementar Não funciona bem com muitas variáveis numéricas. - Gaussian: considera que os dados estão contínuos numa distribuição normal
valores de recurso. e podem ser dimensionados com seu conjunto de dados Espera que as variáveis preditoras sejam independentes. - Multinomial: para contagem de variáveis discretas (bastante usado tb para
- Pode ser two-class (binomial), como o exemplo - É chamado de "ingênuo" (naive) porque sua suposição central de independência condicional (ou seja, todos os recursos de Bom com variáveis categóricas. processamento de linguagem natural)
acima ou multi-class. entrada são independentes um do outro) raramente é verdadeira no mundo real. Provê probabilidade de um resultado. - Bernoulli: se o vetor de dados target for benário e também recomendado para
- Uma das formas de medir a performance é pelas O modelo armazena a probabilidade condicional da variável target para cada possível valor das variáveis preditoras. Bom para previsões: multi-classes; classificação de texto; análise de sentimento; variáveis discretas
taxas de classificaçõe incorretas. Pode-se visualizar filtragem spam; previsões em tempo real; sistemas de recomendação
isso com uma matriz de confusão.

- variáveis que tenham uma grande quantidade de


valores únicos (variáveis numéricas, como: duração,
quantidade, idade) podem apresentar problemas
durante o treinamento do modelo. A sugestão é
converter de numéricas para qualitativas categóricas. Máquina de Vetores de Suporte [computation classifier] - Support vector machines (SVM) usam um mecanismo chamado kernels, que calcula essencialmente a distância entre duas pode modelar limites de decisão não lineares, e há muitos kernels para escolher. Os SVMs são intensivos em memória, mais difíceis de sintonizar devido à [ SKLearn - pacote: svm | função: SVC ]
(SVM) observações. O algoritmo SVM então encontra um limite de decisão que maximiza a distância entre os membros mais próximos de Eles também são bastante robustos contra overfitting, especialmente em espaços importância de escolher o kernel correto e não escalar bem em conjuntos de
- é importante também verificar se as classes estão (classificação e regressão) Tipo de variável: Categórica classes separadas. de alta dimensão. dados maiores. Atualmente na indústria, as florestas aleatórias são geralmente Também há para Regressão: SVR
balanceadas. O dataset possui quantidades - um SVM com um kernel linear é semelhante à regressão logística. Portanto, na prática, o benefício do SVM normalmente vem do preferidas em relação às SVM's.
balanceadas das classes da variável target? Exemplo, uso de kernels não lineares para modelar limites de decisão não lineares.
num problema binomial, 90% do dataset é de uma
classe e apenas 10% da outra? Se estiver
desbalanceada, pode ter problemas na hora de
treinar o modelo, ele aprenderá muito apenas de Regressão Logística Tipo de Variável: Categórica - é a contrapartida de classificação para a regressão linear. As previsões são mapeadas para estar entre 0 e 1 através da função As saídas têm uma boa interpretação probabilística e o algoritmo pode ser tende a ter um desempenho inferior quando existem limites de decisão múltiplos [ SKLearn - pacote: linear_model | função: LogisticRegression ]
uma das classes. logística, o que significa que as previsões podem ser interpretadas como probabilidades de classe. regularizado para evitar overfitting. Os modelos logísticos podem ser atualizados ou não lineares. Eles não são flexíveis o suficiente para capturar naturalmente
- Os modelos em si ainda são "lineares", então funcionam bem quando suas classes são linearmente separáveis (isto é, elas podem facilmente com novos dados usando a descida de gradiente estocástica. relacionamentos mais complexos.
ser separadas por uma única superfície de decisão). A regressão logística também pode ser regularizada pela penalização de
coeficientes com força de penalização sintonizável

Redes Neurais

Árvore de Classificação As árvores de classificação são as contrapartes de classificação das árvores de regressão. Ambos são comumente referidos como Como na regressão, os conjuntos de árvores de classificação também apresentam Árvores individuais, sem restrições, são propensas a overfitting, mas isso pode ser [ SKLearn - pacote: tree | função: DecisionTreeClassifier ]
"árvores de decisão" ou pelo termo "classification and regression trees" (CART) um bom desempenho na prática. Eles são robustos a outliers, escaláveis e capazes aliviado por métodos conjuntos.
É um algoritmo não-linear. Cada atributo e cada valor de atributo são avaliados com objetivo de reduzir a função de custo. de modelar naturalmente limites de decisão não lineares graças à sua estrutura Também há para Regressão> DecisionTreeRegressor
hierárquica. Fácil de interpretar e funciona com valores missing.

Adaptive Boosting O método que este algoritmo usa para corrigir seu antecessor é prestando mais atenção às instâncias de treinamento não
ajustadas pelo modelo anterior. Assim, a cada novo preditor, o foco será, a cada vez, nos casos mais difíceis.

Gradient Boosting combina o aprendizado fraco (também conhecido como base de aprendizagem) para formar uma regra forte. Combina os Mais importantes:
resultados da aprendizagem fraca e cria uma aprendizagem forte que eventualmente melhora o poder de predição do modelo. O - n_estimators: Número de árvores de regressão
‘boosting’ foca mais em exemplos que são mal classificados ou que têm mais erros por serem precedidos por regras fracas. - max_depth: profundidade de cada árvore
Funciona adicionando, de forma sequencial, os previsores prévios às previsões do conjunto, garantindo que os erros cometidos - loss: loss function ou função de erro
anteriormente sejam corrigidos.
Ao contrário do AdaBoost, que ajusta os pesos da instância em cada interação, este método tenta ajustar o novo preditor aos erros
residuais feitos pelo preditor anterior.

Regressão - Na Regressão vc tem números - Quanto vou ter de venda, baseado nos gastos com propaganda? Árvore de Decisão baseado em procura (lógico) - sua utilização recomenda o treinamento do método utilizando várias amostras de dados. Outra decisão é quantas sub-árvores pode aprender relacionamentos não-lineares e é bastante robusto para outliers. as árvores individuais são propensas a overfitting porque podem continuar [ SKLearn - pacote: tree | função: DecisionTreeClassifier ]
- Qual será a velocidade do vento, baseado na temperatuda, (regressão e classificação) (particionamentos) terão até parar. Os conjuntos funcionam muito bem na prática, vencendo muitas competições de ramificando até memorizarem os dados de treinamento. No entanto, isso pode
- Cada registro pertence a uma classe e possui umidade e pressão? Tipo de variável: Contínua - aprende de forma hierárquica, dividindo repetidamente seu conjunto de dados em ramificações separadas que maximizam o aprendizado de máquina clássicas (ou seja, sem deep learning) ser aliviado usando conjuntos - talvez seja bom transformar algumas variáveis contínuas em categóricas
conjunto de atributos previsores - Qual será o valor do dólar, baseado nos fatores externos? ganho de informações de cada divisão. Essa estrutura de ramificação permite que árvores de regressão aprendam naturalmente
- Qual probabilidade de um paciente sobreviver, baseado nos relacionamentos não-lineares pode ser usado para identificar as variáveis mais relevantes do conjunto de dados. - cost: pode pensar em colocar pesos para os erros tipo I e tipo II , penalizan
- Descobrir relacionamento entre atributos previsores resultados do exame? - Os métodos de conjunto, tais como Random Forest (RF) e Gradient Boosted Trees (GBM), combinam predições de muitas árvores
e atributos meta - Qual o risco de investimento, baseado num perfil do projeto? individuais. Na prática, os RFs costumam ter desempenho muito bom, enquanto os GBMs são mais difíceis de ajustar, mas tendem
(aqui, ao invés de um rótulo, será um número, como porcentagem a ter tetos de desempenho mais altos.
- Valor do atributo meta é conhecido (aprendizagem por exemplo)
supervisionada) - Qual o limite do cartão de crédito, baseado nos gastos e histórico
de pagamentos?
- aprendizado supervisionado para modelar e prever - Qual o valor futuro de um produto, baseado no passado?
variáveis numéricas e contínuas. Random Forest Tipo de variável: Contínua é a combinação de várias árvores de decisão, na maioria dos casos treinados com o método de bagging. A idéia principal do - assim como árvore de decisão, também pode ser usado para encontrar as - uma quantidade grande de árvores pode tornar o algoritmo lento e ineficiente [ SKLearn - pacote: ensemble | função: RandomForestClassifier ] - hiperparâmetro n_estimators, que indica o número de árvores construídas pelo algoritmo antes de tomar uma votação ou fazer
> Qual será a temperatura amanhã (regressão e classificação) método de bagging é que a combinação dos modelos de aprendizado aumenta o resultado geral. É um algoritmo do método melhores variáveis para o modelo para predições em tempo real. [ SKLearn - pacote: ensemble | função: RandomForestRegressor ] uma média de predições. aumenta a performance mas também torna a computação mais lenta.
> Quanto é? > Quanto venderei semestre que vem? Ensemble. - pode ser utilizado tanto para regressão quanto para classificação e é fácil - Enquanto faz um bom trabalho na classificação, já não é tão bom para o [ SKLearn - pacote: tree | função: export_graphviz] - max_features, que indica o número máximo de características a serem utilizadas pelo Floresta Aleatória na construção de uma
> Quanto terei de dinheiro no final do mês? visualizar a importância relativa que ele atribui para cada característica na suas problema de regressão, uma vez que não fornece previsões precisas para variáveis dada árvore
- uma das formas de medir a performance é pelo entradas. contínuas. Para qualquer algorítmo de árvore, seja ele ensemble ou não, se quiser visualizar o - min_sample_leaf. Este parâmetro indica o número mínimo de folhas que devem existir em uma dada árvore.
cálculo dos resíduos. Também pelo coeficiente de - Eficiente com muitas variáveis preditoras e com valores missing modelo no Python, é interessante instalar os pacotes: pydot e graphviz. - n_jobs informa quantos processadores o algoritmo pode utilizar. Se ele tiver valor 1, pode utilizar apenas um processador. O
determinação (R²) - Funciona bem de forma paralelizada valor -1 significa que não há limite na quantidade de processadores a ser utilizada.
Uma outra forma de interpretar os resultados é o pacote TreeInterpreter - max_depth, caso seja NONE, árvores completas são criadas. Ajustando esse parâmetro, ajuda a evitar o overfitting
[ pacote: treeinterpreter | função: treeinterpreter ] - criterion, será o critério utilizado para realizar o algorítmo. O padrão é o índice GINI.

Regressão Linear Tipo de variável: Contínua - Regressões em geral, tenta definir a dependência entre variáveis. entender e explicar, e pode ser regularizado para evitar overfitting. Além disso, os ele apresenta um desempenho ruim quando há relacionamentos não lineares. [ SKLearn - pacote: linear_model | função: LinearRegression ; Ridge ; Lasso ;
- Assume-se um efeito causal unidireccional de uma variável para a resposta de uma outra variável. modelos lineares podem ser atualizados facilmente com novos dados usando a Eles não são naturalmente flexíveis o suficiente para capturar padrões mais ElasticNet ]
- Funciona bem quando existem relações lineares entre as variáveis no seu conjunto de dados. descida de gradiente estocástica. complexos, e adicionar os termos de interação certos ou polinômios pode ser
- Na prática, a regressão linear simples é muitas vezes superada por suas contrapartes regularizadas (LASSO, Ridge e Elastic-Net). complicado e demorado. Verificar a correlação das variáveis preditoras com a target.
Regularização é uma técnica para penalizar grandes coeficientes para evitar overfitting, e a força da penalidade deve ser ajustada Somente para variáveis numéricas. Muito sensível a outlier.
- Assume que os dados estão em Distribuição Normal.
- R-Square mede quão perto os dados estão da linha deregressão. Quanto mais perto de 1, melhor.

Regressão Polinomial Tipo de variável: Contínua

Redes Neurais Artificiais baseado em otimização estruturas matemáticas com habilidade de aprendizado. Implementam detecções sofisticadas de padrões e algoritmos de
geométrico aprendizado de máquina para constuir modelos de prognóstico. Há duas estruturas: o neurônio (nó) e conexões (links)
[connectionist classifier]

Deep Learning - são redes neurais com múltiplas camadas, que podem aprender padrões extremamente complexos. O deep learning é o estado da arte atual para certos domínios, como visão Esses algoritmos geralmente não são adequados como algoritmos de propósito
- Eles usam "camadas ocultas" entre entradas e saídas para modelar representações intermediárias dos dados que outros computacional e reconhecimento de fala. As redes neurais profundas funcionam geral porque exigem uma quantidade muito grande de dados. Na verdade, eles
algoritmos não podem aprender facilmente. muito bem em dados de imagem, áudio e texto, e podem ser facilmente geralmente são superados por conjuntos de árvores para problemas clássicos de
- ainda requer muito mais dados para treinar em comparação com outros algoritmos porque os modelos têm ordens de grandezas atualizadas com novos dados usando a propagação em lote. Suas arquiteturas (ou aprendizado de máquina. Além disso, eles são computacionalmente intensivos
mais parâmetros para estimar. seja, o número e a estrutura das camadas) podem ser adaptadas a muitos tipos de para treinar, e exigem muito mais experiência para ajustar
- também é facilmente adaptável a problemas de classificação. De fato, a classificação é frequentemente o uso mais comum da problemas, e suas camadas ocultas reduzem a necessidade de engenharia de
aprendizagem profunda, como na classificação de imagens. recursos.

xxxx

Reforço - processo de decisão Tomada de Decisão > O que eu faço agora? - O sinal ficou amarelo: devo acelerar ou freiar? Algoritmos Genéticos algoritmos de otimização e busca baseados nos mecanismos de seleção natural e genética. Trabalham com um conjunto de
- sistema de recompensa - Ela está dormindo: devo acordá-la? possíveis soluções simultaneamente, com capacidade adaptativa e robusta
- aprender com própria experiência Examina o comportamento e utiliza o reforço, com - Está quente e ele está gripado: ligo ou não o ar condicionado?
recompensas e punições, para ajustar o modelo.
[ aprender com iterações com o Bom para ajustes de sistemas automatizados que [model-free]
ambiente ] precisam tomar muitas decisões sem a orientação Q-Learning
humana.
- aprender por tentativa e erro. Os [model-free]
erros ajudam a aprender devido a A diferença desse algoritmo para os de Classificação, R-Learning
uma penalidade associada. é que eles coletam dados a medida que agem,
aprendem por tentativa e erro, e por reforço.
TD Learning [model-based]

Sarsa Learning [model-based]

Sistema de
Recomendação

Sistema de Recompensa
>> Terminologia:
Modelo - um conjunto de padrões aprendidos a partir dos dados.
Algoritmo - um processo específico de ML usado para treinar um modelo.
Dados de treinamento - o conjunto de dados a partir do qual o algoritmo aprende o modelo.
Dados de teste - um novo conjunto de dados para avaliar de maneira confiável o desempenho do modelo.
Recursos/ Características - Variáveis (colunas) no conjunto de dados usado para treinar o modelo.
Variável alvo (target) - uma variável específica que você está tentando prever.
Observações - Pontos de dados (linhas) no conjunto de dados.
Overfitting - Um modelo overfit "memorizou" o ruído no conjunto de treinamento, em vez de aprender os verdadeiros padrões subjacentes.

>> 6 Passos do RoadMap:


1 Análise Exploratória [ Don’t skip this step, but don’t get stuck on it either. ]
Primeiro, "conheça" os dados. Este passo deve ser rápido, eficiente e decisivo.
2 Limpeza de Dados
Em seguida, limpe seus dados para evitar muitas armadilhas comuns. Melhores dados são melhores algoritmos.
3 Engenharia de atributos / Transformação dos dados / Feature Selection
Em seguida, ajude seus algoritmos a "se concentrar" no que é importante criando novos recursos / funcionalidades.
4 Seleção de Algoritmo
Escolha os melhores e mais apropriados algoritmos sem perder tempo.
5 Model Training
Finalmente, treine seus modelos. Este passo é bastante formal quando você faz os primeiros 4.
6 Storytelling
Como resumir o trabalho de análise e explicar para quem não conhece de Data Science?

>> Outra opção de RoadMap:


Escopo do Projeto
Às vezes, você precisará mapear o projeto e antecipar as necessidades de dados.
Data Wrangling
Você também pode precisar reestruturar seu conjunto de dados em um formato que os algoritmos possam manipular.
Pré-processando
Geralmente, transformar seus recursos primeiro pode melhorar ainda mais o desempenho.
Conjunto
Você pode extrair ainda mais desempenho combinando vários modelos.

>> RoadMap criação de um Modelo (fonte: DSA):


Coleta de Dados
Exploração e preparação
Treinamento do Modelo (aprendizado)
Avaliação do Modelo
Otimização do Modelo

>> Explicações de cada passo:


0 Fonte de Dados
4 bons sites que possuem datasets prontos:
Kaggle, que é tão org anizado. Você adorará o grau de detalhamento dos conjuntos de dados, fornecer inf ormações sobre os recursos, tipos de dados e número de registros. Você também pode usar o k ernel deles e não precisa baixar o conjunto de dados.
Reddit, que é ótimo para solicitar os c onjuntos de dados que você deseja.
Pesquisa de conjunto de dados do Google que ainda é Beta, mas é incrível.
UCI Repositório de Aprendizado de Máquina, este mantém 468 conjuntos de dados como um serviço para a comunidade de aprendizado de máquina.

1 Análise Exploratória
Quantas observações eu tenho?
Quantas características tenho?
Quais são os tipos de dados dos meus recursos? Eles são numéricos? Categórico?
Eu tenho uma variável alvo (target) ?
As colunas fazem sentido?
Os valores nessas colunas fazem sentido?
Os valores estão na escala correta?
A falta de dados será um grande problema?
A importância de separar variáveis numéricas de categóricas é porque...
Para variáveis numéricas normalmente queremos:
1) encontrar a distribuição estatística de cada variável;
2) extrair o resumo estatístico de cada var.;
3) buscar informação de outliers;
4) às vezes utilizar alguma técnica de inputação para variáveis missing
5) encontrar correlação entre as variáveis .... Etc
6) entender a relação entre 2 variáveis (disgrama de dispersão/scaterplot)
Para variáveis categóricas normalmente queremos:
1) compreender como cada variável categórica influencia a variável alvo
2) fazer uma tabela de frequência (absoluta/relativa-%)
3) entender a diferença entre grupos (gráfico de barra ou boxplot)

1.1 - Plote distribuições e faça um histograma dos atributos, procurando por:


Distribuições inesperadas
Potenciais outliers que não fazem sentido
Recursos que devem ser binários (ou seja, variáveis indicadoras)
Fronteiras que não fazem sentido
Erros potenciais de medição

1.2 - Use gráfico de barras para analisra variáveis categóricas.


procure por classes com poucas observações
( classes são os valores de um atributo categórico ) > Visualizando o overfiting num algorítmo de Gradient Boosting
classes com poucas observações podem ser problemáticas na construção de modelos
recomenda-se fazer uma anotação para combinar ou reatribuir algumas dessas classes posteriormente.

1.3 - Plote segmentações


é uma poderosa forma de observar relação entre os atributos categóricos e numéricos
( box plot ajuda bastante nesta análise )

1.4 - Estude as correlações


ajuda a entender relações entre dois atributos numéricos
faça um heatmap das correlações, para facilitar visualização
quais atributos estão fortemente correlacionados com a variável alvo (target)
Ou seja, variáveis preditivas que não tem relação com a variável target, pode ser removida do conjunto de dados.
há correlações interessantes ou inesperadas entre os atributos?
há atributos fortemente correlacionados? Se sim, pense em retirar um deles, pois colocar
2 variáveis no modelo que representam a mesma coisa, além de deixar o modelo mais pesado, Veja a diferença do erro entre
pode ter problema de overfiting. os dados de treino e teste.
Isso significa que o modelo
1.5 - Análise exloratória para dados numéricos: "decorou" os dados do treino
média, mediana, moda, desv padrão, variância e não sabe generalizar.
analisando uma única varável: histograma, boxplot
analisando multi var: scatter plot
medidas de dispersão: Ao interpretar a variância, números maiores indicam que os dados estão espalhados mais amplamente em torno da
média. O desvio padrão indica, em média, a quantidade de cada valor diferente da média.

1.6 - Análise exloratória para dados categóricos:


criar tabelas de contigências: a partir de uma variável categórica, listar as categorias e frequência com que ocorrem
pode verificar a o relacionamento de 2 var categóricas com uma cross-table
teste Qui-quadrado: teste de hipóteses que se destina a encontrar um valor da dispersão para duas variáveis nominais, avaliando a associação existente entre variáveis qualitativas.
É um teste não paramétrico, ou seja, não depende dos parâmetros populacionais, como média e variância. O princípio básico deste método é comparar proporções,
isto é, as possíveis divergências entre as frequências observadas e esperadas para um certo evento. Evidentemente, pode-se dizer que dois grupos se comportam de forma semelhante se as diferenças entre
as frequências observadas e as esperadas em cada categoria forem muito pequenas, próximas a zero. Ou seja, Se a probabilidade é muito baixa, ele fornece fortes evidências de que as duas variáveis estão associadas.
Hipótese nula: As frequências observadas não são diferentes das frequências esperadas. Não existe diferença entre as frequências (contagens) dos grupos. Portanto, não há associação entre os grupos
Hipótese alternativa: As frequências observadas são diferentes das frequências esperadas, portanto existe diferença entre as frequências. Portanto, há associação entre os grupos.
Se P-value < 0,05, rejeitamos H0. Caso contrário, aceitamos H0.

1.7 - Dicas:
EDA = Exploratory Data Analysis

2 Limpeza de Dados
Proper data cleaning can make or break your project.
Bons dados superam os algoritmos mais sofisticados.

2.1 - Remova observações indesejadas


Dadosduplicados ou irrelevantes
Este também é um ótimo momento para revisar seus gráficos a partir da Análise Exploratória.
Você pode ver os gráficos de distribuição para atributos categóricos e ver se há classes que não deveriam estar lá.

2.2 - Arrumar erros estruturais


Erros estruturais são aqueles que surgem durante a medição, a transferência de dados ou quem não "matém a casa arumada".
Por exemplo, você pode verificar erros de digitação ou letras maiúsculas inconsistentes.
Isso é principalmente uma preocupação com atributos categóricos, e você pode examinar seus gráficos de barras para verificar.
ex.: "atrasado" vs "Atrasado" - isso gerará duas barras de dados diferentes
Finalmente, verifique se há classes rotuladas incorretamente, ou que poderiam ser combinadas em uma única classe
ex.: "NA" vs "Not Applicable" ; "TI" vs "Tecnologia da Informação"

2.3 - Filtrar outliers indesejados


Outliers podem causar problemas em alguns tipos de modelos.
Por exemplo, modelos de regressão linear são menos robustos a outliers do que modelos de árvore de decisão.
No entanto, os outliers são inocentes até que se prove o contrário.
Você nunca deve remover um outlier apenas porque é um "número grande". Esse número pode ser muito informativo para o seu modelo.
Você deve ter um bom motivo para remover um valor atípico, como medidas suspeitas que provavelmente não são dados reais.
Em modelos de classificação (KNN, por exemplo), outliers também podem causar interferência no modelo

2.4 - Dados faltantes


Não podem ser ignorados. Pelo fato da maioria dos algoritmos não aceitarem valores faltantes.
Abaixo estão várias soluções rápidas para tratar os dados faltantes.
null value replacement | mode/median/average value replacement | deleting the whole record | Model based imputation — regression, kNN
Interpolation | Extrapolation | Forward filling | Backward filling — Hot Deck | Multiple imputation
As 2 formas mais recomendadas (e ruins) para se tratar esses dados são:
deletando essa observação
colocando informações na célula faltante, baseado nos demais valores da tabela
aviso: mesmo que você crie um modelo para imputar seus v alores, não está adicionando nenhuma informaç ão real. Você está apenas reforçando os padrões já fornecidos por outros atributos.
tratando dados categóricos:
Uma forma de lidar com dados ausentes para atributos categóricos é simplesmente rotulá-los como "Ausentes"!
Você está essencialmente adicionando uma nova classe para o atributo.
Isso informa ao algoritmo que o valor estava faltando. Isso também contorna o requisito técnico para não haver valores ausentes
tratando dados numéricos:
Para dados numéricos ausentes, você deve sinalizar e preencher os valores.
Sinalize a observação com uma variável indicadora de ausência.
Em seguida, preencha o valor original com 0 apenas para atender ao requisito técnico de nenhum valor ausente.
Ao usar essa técnica de sinalização e preenchimento, você está essencialmente permitindo que o algoritmo estime a constante ideal para o ausente, em vez de apenas preenchê-lo com a média.
Outras estratégias:
- para variáveis categóricas, buscar a moda baseado num agrupamento (outra coluna categórica) e incluir os valores ausentes com o valor de maior frequência de cada grupo
- para variáveis numéricas, calcular a mediana também agrupada por alguma outra variável categórica (ou combinação de várias colunas). Preenhcer valores ausentes com a mediada de cada grupo.
- para variáveis numéricas, PMM (Predictive Mean Matching) - Correspondência média preditiva.
- remover variáveis cujo percentual de valor ausente seja superior a 50%
- para variáveis categóricas, também é possível substituir o valor ausente pela categoria "desconhecido"

3 Engenharia de atributos / Transformação dos dados / Feature Selection / Pré-processamento


Esta parte é sobre criar novos atributos a partir dos existentes.
Você pode pensar em limpeza de dados como um processo de subtração e engenharia de recursos como um processo de adição.
Esta é frequentemente uma das tarefas mais valiosas que um cientista de dados pode fazer para melhorar o desempenho do modelo
Você pode isolar e destacar informações importantes, o que ajuda seus algoritmos a "se concentrar" no que é importante.
Simplificar o modelo > Reduz tempo de treinamento do modelo > Melhora generalização, evita overfitting
A pergunta é: que variáveis (features) do conjunto de dados devem ser usadas para o treinamento do modelo?
Feature selection NÃO é a mesma coisa de Redução de dimensionalidade! Ambos tem como objetivo reduzir o número de variáveis do dataset.
Porém, a redução de dimensionalidade faz isso criando novas combinações dos atributos. Enquanto que Feature selection inclui ou exclui variáveis no dataset.
Alguns métodos de Feature selection são: Teste Qui-quadrado (bom se tiver muitas variáveis categóricas); Coeficientes de correlação ; Algoritmos de Eliminação Recursiva ; Algoritmos de regularização (LASSO, Elastic net, ridge regression)
Enquanto métodos para redução de dimensionalidade são: PCA e SVD.
Apresentaremos várias heurísticas para ajudar a desencadear novas ideias.

3.1 - Aplique seu conhecimento sobre o assunto


Você pode criar atributos informativos baseados na sua experiência (ou em outras pessoas) sobre o domínio.
Tente pensar em informações específicas que você pode querer isolar. Aqui, você tem muita "liberdade criativa".
Imagine um exemplo com o conjunto de dados de imóveis nos EUA, digamos que você lembrou que a crise imobiliária ocorreu no mesmo período de tempo.
você poderia criar uma variável indicadora para transações durante esse período.As variáveis indicadoras são variáveis binárias que podem ser 0 ou 1.
Elas "indicam" se uma observação atende a uma determinada condição e são muito úteis para isolar propriedades-chave.
Outra forma seria criar uma coluna adicional baseada num atributo existente na base. Diagmos que exista uma coluna informando o curso de graduação que o estudante está cursando.
A partir dessa coluna, você quer criar uma nova coluna com o nível de conhecimento em TI que o estudante tem. Fazendo um "de-para" ao criar a nova coluna.

3.2 - Crie atributos de interação


Este novo atributo será oriundo da interação de outros dois atributos, seja multiplicando, somando ou subtraindo.
Posso combinar essa informação de alguma forma que possa ser ainda mais útil?
Imagine o seguinte exemplo:
digamos que seu dataframe tenha um atributo "qtde_escola", que traz quantas escolas num raio de 3km da propriedade
e tb tenha um outro atributo "média_escolas", que seja uma pontuação média daquelas escolas
o que realmente importa é ter opções de escolas, mas só se forem boas escolas
então você simplesmente pode criar um novo atributo que seria a multiplicação de "qtde_escola" com "média_escolas"
Veja outro exemplo:
Eles pediram que você criasse um modelo para priorizar seus clientes usando clustering. Você tem 3 variáveis em seu conjunto de dados:
Data de solicitação do bilhete. Data de partida. Data de retorno.
Algumas das percepções que o cientista de dados em você pode observar:
1) Duração da estadia: Diferença entre o dia de partida e a data de retorno. Essa é a duração que eles estão ficando.
2) Duração da solicitação: Diferença entre a data de chegada e a data da solicitação.

3.3 - Agrupe classes com pouca quantidade (significância)


Eles podem ser problemáticos para certos algoritmos de aprendizado de máquina, causando overfiting.
Não há regra formal de quantas observações cada classes precisa.
Também depende do tamanho do seu conjunto de dados e do número de outros atributos que você possui.
Como regra geral, recomendamos combinar classes até que cada uma tenha pelo menos ~ 50 observações.
Como acontece com qualquer "regra geral", use isso como uma diretriz (não como verdade, como regra).
Principalmente para modelos de classificação, variáveis que tenham uma grande quantidade de valores únicos (variáveis numéricas, como: duração, quantidade, idade)
podem apresentar problemas durante o treinamento do modelo. A sugestão é converter de numéricas para qualitativas categóricas. Isso também é chamado de "binning" ou "quantization".
Para criar essas novas classes ao converter para categórica, visualize a distribuição dos dados daquela variável.
Exemplo: caso tenha uma variável categórica com 7 categorias e você observe que apenas 4 delas tem uma quantidade expressiva na base dados. Você poderia agrupar as demais numa nova categoria chamada "outros"

3.4 - Crie variáveis "dummy"


A maioria dos algoritmos de aprendizado de máquina não pode manipular diretamente os atributos categóricos. Especificamente, eles não podem manipular texto.
Portanto, precisamos criar variáveis fictícias para nossos atributos categóricos.
Variáveis dummy são um conjunto de variáveis binárias (0 ou 1), cada uma representando uma única classe de um atributo categórico.
As informações que você representa são exatamente as mesmas, mas essa representação numérica permite que você passe os requisitos técnicos para algoritmos.
Tantas colunas novas serão criadas quatas categorias tiver na sua coluna categórica, sendo elas preenchidas com 0 ou 1.

3.5 - Remova os atributos não utilizados


Remova os atributos que não serão usado e/ou duplicados da base.
Ex.: colunas de ID; campos de descrição; etc
Os redundantes são basicamente aqueles que você chegou a criar outros atributos a partir deles.

3.6 - Variáveis numérias em diferentes escalas (normalização vs padronização)


Alguns algoritmos dependem das medidas de escala nos dados de entrada, como o KNN (classificação).
Portanto, quando há muita diferença entre as escalas das diferentes variáveis (colunas) preditoras numéricas, é preciso normalizálos. Isso ajuda inclusive no tempo de treino do modelo.
Uma das formas é por MinMax (normalização) --> normalizado = (x - min(x)) / (max(x) - min(x))
Outra forma é o Z-Score.
Normalização transforma os dados em um intervalo, digamos entre 0 e 1 ou 1 e 10, de f orma que os números estejam na mesma escala. É a mudança de escala dos dados.
A Padronização significa transformar os dados de tal forma que eles tenham média zero e desvio padrão igual a 1. Portanto, aqui temos os dados em escala de forma padronizada,
de modo que a distribuição seja aproximadamente uma distribuição normal. Padronizado = (x - mean (x)) / sd (x)
A Normalização é g eralmente evitada quando o conjunto de dados tem outliers.
Todos os algoritmos baseados em distância requerem escalonamento.
Isso inclui todos os algoritmos de ajuste de curva (regressões lineares / não lineares), regressão logística, KNN, SVM, redes neurais, algoritmos de agrupamento como k-means clustering, etc.
Algoritmos que são usados ​p ara fatoração de matriz, decomposição ou redução de dimensionalidade como PCA, SVD, Máquinas de F actorização, também requerem normalização. 1. A Normalização torna o treinamento menos sensível à escala de recursos, para que possamos resolver melhor os coeficientes.
Algoritmos que não requerem normalização / escalonamento são aqueles que dependem de regras. Eles não seriam afetados por nenhuma transformação monotônica das variáveis. 2. O uso de um método de Normalização melhorará a análise de múltiplos modelos.
O escalonamento é uma transformação monotônica - a ordem relativa de menor a maior valor em uma variável é mantida após o escalonamento. 3. A Normalização assegurará que um problema de convergência não tenha uma variância massiva, tornando a otimização viável.
Exemplos de algoritmos nesta categoria são todos os algoritmos baseados em árvores - CART, Florestas Aleatórias, Árvores de Decisão Reforçada por Gradiente, etc. 4. A Padronização tende a tornar o processo de treinamento bem melhor, porque a condição numérica dos problemas de otimização é melhorada.
Estes algoritmos utilizam regras (séries de desigualdades) e não requerem normalização.
Além disso, os algoritmos que dependem de distribuições das variáveis, como Naive Bayes, também não precisam de escalonamento.
Mas qual a melhor técnica, MinMax ou Z-score (padronização) ?
Por exemplo, em análises de agrupamento, a padronização pode ser especialmente crucial para comparar semelhanças entre os recursos com base em certas medidas de distância.
Outro exemplo proeminente é a Análise de Componentes Principais, onde normalmente preferimos a padronização sobre o escalonamento Min-Max, uma vez que estamos interessados
nos componentes que maximizam a variância (dependendo da questão e se o PCA computa os componentes através da matriz de correlação matriz de covariância).
No entanto, isso não significa que o dimensionamento Min-Max não seja útil. Uma aplicação popular é o processamento de imagem, em que as intensidades de pixel têm de ser
normalizadas para se ajustarem a um determinado intervalo (ou seja, 0 a 255 para o intervalo de cores RGB). Além disso, o algoritmo de rede neural requer dados em uma escala de 0-1.
A binarização transformará os valores para zero ou 1. É definido um threshold (limite) onde, acima dele os v alores serão 1 e iguais ou abaixo, zero. É útil quando temos probabilidade.
Lembrete: para analisar o resultado final de um modelo que utilizou dados padronizados, é prec iso desfazer a padronização para conseguir interpretar os dados.

3.7 - Variável Target "desbalanceada" (balanceamento de classe)


Modelo de classificação com quantidades de observações muitos discrepantes entre os fatores da variável target é um problema para o modelo preditivo, pois ele aprenderá muito mais sobre
uma categoria do que a outra, tornando-o tendencioso. Ex.: classificar entre bom e mal pagador. Se tiver muito mais observações sobre bons pagadores, o modelo saberá muito mais sobre
esta classe do que sobre a de mal pagadores.
Técnicas de balanceamento devem ser feitas apenas nos dados de treino.Se aplicar a todo conjunto de dados (inclusive no teste), pode comprometer a avaliação do modelo.
SMOTE é uma das técnica utilizadas para balanceamento de classe. SMOTE - Synthetic Minority Oversampling Technique. Em tradução livre, técnica de geração de dados sintéticos para a classe minoritária.

3.8 - Seleção de atributos (feature selection) [ SelectKBest = dentro do SkLearn, em featrue selection ]
Ajuda a reduzir o overfitting, aumenta a acurácia e reduz tempo de treinamento.
> Seleção univariada (chi quadrado)
> Eliminação recursiva de atributos (RFE)
Machine learning para encontrar as melhores variáveis. Esta técnica utiliza a acurácia do modelo para identificar os atributos que mais contribuem para prever a variável alvo.
> Ensemble (Bagged Decision Trees)
Também utiliza machine learning. Algoritmos "ensemble" é como se você tivesse vários algoritmos de ML dentro de um único pacote. Os dados vão sendo distribuídos por esses algortimos que copõem o pacote, que por usa vez vão
processando e fazendo as previsões. Ao final é feita uma "votação" para ver qual daqueles algoritmos daquele pacote chegou a um melhor resultado.
Neste caso é como se colocasse vários algoritmos de árvore de decisão num mesmo pacote. (como o Random Forest)
Exemplos de algoritmos para seleção de atributos: Random Forest, Cálculo de dimensão fractal, wrapper.

3.9 - Redução de dimensionalidade


NÃO é a mesma coisa Feature selection! A mbos tem como objetivo reduzir o número de variáveis do dataset.
Porém, a redução de dimensionalidade faz isso criando novas combinações dos atributos. Enquanto que Feature selection inclui ou exclui variáveis no dataset. Essa combinação é chamada de componente.
É uma opção para, ao invés de descartar as features não selecionadas, reduzi-las em um ou poucos c omponentes e continuar usando como entrada do modelo. Um componente não é uma v ariável. É um grupo de variáveis com variância similar.
O PCA requer normalização dos dados antes de aplicar.
Exemplos de algoritmos para extração de atributos: PCA, Multidimensional Scaling, FastMap
Algumas técnicas para redução de dimensionalidade:
> Missing Value Ratio
É a taxa da "falta de valores". Quando há muitos valores faltantes numa coluna.
> Low Variance Filter
É a taxa de variância dos valores de uma coluna. Se a variância for muito baixa, poderia eliminar a coluna.
> High Correlation Filter
Caso 2 colunas tenham uma correlação muito alta, decide-se por descartar uma delas.
> Random Forest/Ensemble Tree
Aplicando machine learning para ajudar na seleção de atributos.
> Forward Feature Construction
Inicia-se o treinamento do modelo com poucas variáveis (ou uma) e a cada novo treinamento inclua uma nova variável até chegar numa combinação que traga melhor resultado do treinamento.
> Backward Feature Elimination
A mesma ideia do item anterior, porém ao contrário, começando com vários atributos e a cada treinamento, elimina um atributo até chegar na melhor combinação.
> PCA (Principal Component Analysis)
É também um algortítmo de machine learning de aprendizagem não supervisionada utilizado para a redução de dimensionalidade.
Importante lembrar: não é pra sair usando todas as técnicas em todos os cenários. Cada probema exige uma abordagem e uma decisão diferente. Não há uma receita de bolo.

3.10 - Variáveis categóricas


Transforme variáveis categóricas que estejam em formato de texto para numérico. Para isto, existem várias técnicas.
- one-hot encoding : a partir de uma variável categórica cria-se um vetor de features binárias onde c ada feature representa o pertencimento ou não da instância à uma categoria.
pd.get_dummies(df_coluna)
- target Encoding: permite criar representações numéricas muito mais inteligentes para variáv eis c ategóricas, sendo essa técnica usada em frameworks de ML.
Agrupa-se as instâncias pela sua categoria/realização da variável categórica e tira-se a média de todos os targets Y dessas instâncias.
df.groupby('coluna_x')['alvo_y'].mean()
- label Encoding: onde um número inteiro arbitrário é esc olhido para cada categoria (pouco representativo)

Perguntas que ajudam a guiar esta fase:


As variáveis são mensuráveis?
Há interdependência entre as variáveis?
Você tem conhecimento sobre a área de negócio que gerou os dados?
Identificou as variáveis mais relevantes dentro do seu conjunto de dados?
A análise exploratória dos dados encontrou "sugeira" no dataset?

4 Seleção de Algoritmo
Vamos introduzir dois mecanismos poderosos em algoritmos modernos: regularização e conjuntos/agrupamento.
Como você verá, esses mecanismos "consertam" algumas falhas fatais em métodos mais antigos, o que levou a sua popularidade.
Introduziremos 5 algoritmos de aprendizado de máquina muito eficazes para tarefas de regressão. Cada um deles tem também sua contrapartida na classificação.
Uma coisa é o Algorítmo de Aprendizagem (Regressão, KNN, Naive Bayes, Árvore de Decisão, ...), outra é o Modelo de Aprendizagem.
Exemplo, para o Algorítmo de Aprendiagem de Árvore de Decisão, podemos ter os seguintes Modelos de Aprendizagem: C4.5; C5.0; CART; ID3.
Podemos utilizar os algorítmos também para seleção de atributos, como visto na parte 3. Random Forest também é bastante usado para este fim.

4.1 - Porque a Regressão Linear é falha


Quando há muitos atributos, é muito propenso a ter overfiting.
Não conseguem expressar facilmente relações não-lineares.

4.2 - Regularização em Machine Learning


Vamos dar um exemplo extremo para ilustrar por que isso acontece:
Digamos que você tenha 100 observações no seu conjunto de dados de treinamento.
Digamos que você também tenha 100 atributos.
Se você ajustar um modelo de regressão linear com todos esses 100 atributos, você pode perfeitamente "memorizar" o conjunto de treinamento.
Cada coeficiente simplesmente memorizaria uma observação. Esse modelo teria precisão perfeita nos dados de treinamento, mas teria um desempenho ruim em dados não vistos.
Não aprendeu os verdadeiros padrões subjacentes; ele apenas memorizou o ruído nos dados de treinamento.
A regularização é uma técnica usada para evitar o overfitting, penalizando artificialmente os coeficientes do modelo.
Pode desencorajar grandes coeficientes (amortecendo-os).
Também pode remover atributos inteiramente (definindo seus coeficientes para 0).
A "força" da penalidade é ajustável.

4.3 - Três tipos mais comuns de algoritmos de Regressão Linear Regularizados


Lasso Regression
LASSO = Least Absolute Shrinkage and Selection Operator ("Operador de Encolhimento e Selecção Menos Absoluto")
A regressão do laço penaliza o tamanho absoluto dos coeficientes.
Na prática, isso acaba levando a coeficientes que podem ser exatamente 0.
Assim, o Lasso oferece seleção automática de atributos, pois pode remover completamente alguns atributos.
Lembre-se, a "força" da penalidade deve ser ajustada.
Uma penalidade mais forte leva a mais coeficientes empurrados para zero.
Normalmente usada para validar um pré-processamento ou quando o modelo precisa ter o erro bem isolado.
O objetivo é obter o subconjunto de preditores que minimiza o erro de precisão para uma variável de resposta quantitativa.
Ridge Regression
Seu objetivo é suavizar atributos que sejam relacionados uns aos outros e que aumentam o ruído no modelo (multicolinearidade)
A regressão de Ridge penaliza o tamanho quadrado dos coeficientes.
Na prática, isso acaba levando a coeficientes menores, mas não os força a 0.
Em outras palavras, Ridge oferece encolhimento de atributos.
Mais uma vez, a "força" da penalidade deve ser ajustada.
Uma penalidade mais forte leva a coeficientes mais próximos de zero.
A loss function é modificada para minimizar a complexidade do modelo.
Mais apropriado para problemas em que o erro deve estar contido como parte da solução.
Elastic-Net
É um meio-termo entre Lasso e Ridge
Elastic-Net penaliza uma mistura de tamanho absoluto e quadrado.
A relação dos dois tipos de penalidade deve ser ajustada.
A força total também deve ser ajustada.
Caso você esteja se perguntando, não há um tipo de penalidade "melhor". Isso realmente depende do conjunto de dados e do problema.
Recomendamos testar algoritmos diferentes que usem vários níveis de intensidade de penalidade como parte do processo de ajuste.

4.4 - Algoritmos de Árvore de Decisão


Devido à estrutura de ramificação, as árvores de decisão podem modelar facilmente relacionamentos não lineares.
Veja o exemplo:
Pequenos apartamentos podem ser mais baratos ou caros, dependendo da sua localização (região urbana ou rural)
Essa inversão de correlação é difícil para os modelos lineares capturarem
Por outro lado, as árvores de decisão podem capturar esse relacionamento naturalmente.
Infelizmente, as árvores de decisão também sofrem com uma grande falha.
Se você permitir que eles cresçam ilimitadamente, eles podem "memorizar" completamente os dados de treinamento, apenas criando mais e mais e mais ramificações. Por isso é feito "a poda". Visualizando resultado do modelo de árvore com o graphviz
Principais conceitos:
- Raiz: seria o primeiro atributo da decisão, o princ ipal. Ele é escolhido com base no quanto de entropia é reduzida do total.
- Nós: são os demais atributos depois da raiz
- Ramos: são os v alores dos atributos
- Folhas: são as decisões, a variável target
Qual atributo deve ser usado para iniciar a árvore? Qual deve ser o atributo seguinte? Quando parar de construir ramos na árvore (evitar overfitting)? Exportando para PNG
- Pruning ( poda) : a árvore precisa ser finalizada antes de ter uma classificação perf eita, para poder ser generalizáv el. Realizar após o modelo já criado, não antes.
- Entropia: é a medida da incerteza nos dados. É o grau de impureza do c onjunto de dados. Os atributos selecionados são aqueles com mais alto ganho de informação.
- Taxa de Ganho de inf ormaç ão: é a redução esperada na entropia. Seria o valor da entropia antes da divisão subtraído pelo valor da entropia após a div isão dos dados. Voting Ensemble Verificando quais variáveis tem maior importância para construção do modelo e colocando num gráfico
- Índice Gini: é a probabilidade de 2 itens aleatórios pertencerem à mesma classe. Usado para regra de parada na construção da árv ore.
- Redução de variância: utilizado para problemas de regressão.
Como definir o tamanho correto da árvore?
Usar conjunto de validação durante o treinamento.
Usar métodos probzbilísticos. Pode verificar a probabilidade de uma poda trazer melhoria no resultado final (teste o Qui-quadrado pode ser utilizado)
Estratégias para definir Nó Raiz e fazer divisão conjunto de dados:
- Estratégia Gulosa (Greedy Selection): necessita da medida de impureza do nó (homogeneidade).
- Divisão baseada em atributos nominais: binária ou múltipla
- Divisão baseada em atributos contínuos:
- Binária:
- Discretização: estática ou dinâmica

4.5 - Conjunto de Árvores (Métodos Ensemble)


Conjuntos (ensembles) são métodos de aprendizado de máquina para combinar previsões de vários modelos separados.
Existem alguns métodos diferentes para o conjunto, mas os três mais comuns são:
Bagging = tenta reduzir a chance de overfitting modelos complexos. Para construção de múltiplos modelos, normalmente do mesmo tipo. Gradient Boosting Classifier
Ele treina um grande número de métodos de aprendizagem "fortes" em paralelo. Em cada método ele utiliza um subconjunto aleatório dos dados orignais.
Um modelo de aprendizagem forte é um modelo relativamente sem restrições.
Bagging, em seguida, combina todos os modelos fortes juntos para "suavizar" suas previsões
Boosting = tenta melhorar a flexibilidade preditiva de modelos simples. Para consturção de múltiplos modelos, onde cada um aprende com o erro do anterior.
Ele treina um grande número de modelos "fracos" em sequência.
Um modelo fraco é um modelo restrito (ou seja, você pode limitar a profundidade máxima de cada árvore de decisão).
Cada um na seqüência se concentra em aprender com os erros do anterior. AdaBoost
Boosting, em seguida, combina todos os modelos fracos em um único modelo forte.
Voting = para construção de múltiplos modelos, normalmente de tipos diferentes e estatísica simples (como média) são usadas para combinar previsões.
[ SKLearn - pacote: ensemble | função: VotingClassifier ]

Ensemble é um termo geral, mas quando os modelos base são árvores de decisão, eles têm nomes especiais: random forests e boosted trees!
Random Forests (do tipo Bagging):
treinam um grande número de árvores de decisão "fortes" e combinam suas previsões através do envelopamento (bagging).
Além disso, existem duas fontes de "aleatoriedade" para florestas aleatórias: Random Forest
- Cada árvore só pode escolher um subconjunto aleatório de atributos para dividir (levando à seleção de atributos).
- Cada árvore é treinada apenas em um subconjunto aleatório de observações (um processo chamado de reamostragem).
Na prática, as florestas aleatórias tendem a ter um bom desempenho.
- Eles muitas vezes vencem muitos outros modelos que demoram semanas para se desenvolver.
- Eles são o perfeito algoritmo "canivete suiço" que quase sempre obtém bons resultados.
- Eles não têm muitos parâmetros complicados para ajustar.
Boosted Trees (do tipo Boosting): [ SKLearn - pacote: ensemble | função: AdaBoostClassifier ou GradientBoostingClassifier ]
Treina uma seqüência de árvores de decisão restritas "fracas" e combina suas previsões. Bagged Decision Trees
- Cada árvore é permitida uma profundidade máxima, que deve ser ajustada.
- Cada árvore na sequência tenta corrigir os erros de previsão do anterior.
Na prática, as Boosted Trees tendem a ter os mais altos de desempenho.
- Eles costumam vencer muitos outros tipos de modelos após o ajuste adequado.
- Eles são mais complicados de ajustar do que florestas aleatórias.
Random Forest Ponderado (do tipo Boosting): [ SKLearn - pacote: ensemble | função: RandomForestClassifier ]
Ele permite considerar "pesos" para os erros do modelo. Penalizando os erros durante o treinamento.
Você pode criar uma matriz de pesos, onde o Verdadeiro Positivo e Verdadeiro Negativo tem peso zero, pois já estão corretos.
Para o Falso Positivo e Falso Negativo, você pode definir o peso que desejar. Estes serão os custos dos erros.
Bagged Decision Trees (do tipo Bagging): [ SKLearn - pacote: ensemble | função: BaggingClassifier ] / [ SKLearn - pacote: tree | função: DecisionTreeClassifier ]
Extremely Randomized Trees (do tipo Bagging): [ SKLearn - pacote: ensemble | função: ExtraTreeClassifier ]
XG Boosts (do tipo Boosting): XGBoost
O Gradient Boosting é uma técnica estatístca não-paramétrica usada tanto para problemas de classificação quanto regressão.
Extreme Gradiente Boosting é uma 'extensão' do Gradiente Boosting (GBM), permitindo trabalhar multithreading em uma única máquina e processamento paralelo.
O XGBoost automaticamente aceita dados espersos como input sem armazenar zeros na memória. É bom transformas matriz de espersa para densa.
O modelo XGBoost (para classificação), não entrega o número binário (0 ou 1), mas sim a probabilidade de pertencer a cada classe.
Para instalar o XGBoost a partir do PyPi: !pip install xgboost
Na hora de chamar no Jupyter: from xgboost import XGBClassifier
Permite, através do parâmetro 'watchlist' (lista nomeada de matriz densa), avaliar a performance do modelo. Ou seja, permite incluir conjuntos de dados para fazer
validação do modelo durante o treinamento. Tem que lembrar de converter a matriz para densa.
Pelo método 'importance' também é possível extrair a importância de cada atributo para a construção do modelo. Pode ser utilizado para fazer a seleção de atributos tb.
Na importância ele traz o ganho de informação por atributo.
Stochastic gradient boosting: cria subsamples do dataset de treino antes de crescer cada árvore. Funciona melhor com grande quantidade de dados.

4.6 - Cluster
Atividade de aprendizagem não-supervisionada. O objetivo é encontrar grupos semelhantes ou homogêneos em dados.
É utilizado para descoberta de conhecimento, ao invés de fazer previsões. A ideia é descobrir padrões.
Os pontos de dados devem o mais semelhante entre si, mas muito diferente entre os clusters.
O melhor modelo de cluster será aquele cuja distância inter-cluster é maximizada e a distânia intra-cluster é minimizada.
2 tipos de algorítmos de Clustering:
Hierárquico
Pode ser representado por um Dendograma, ou também por um Diagrama de Venn
- Aglomerativo: abordag em bottom- up
- Divisiv o: abordagem top-down
Particional
Uma vez que cada cluster formado é mutuamento exclusivo, nunca poderá haver uma relação hierárquica entre os clusters.
Aqui o foco é na independência dos clusters, não na hierarquia.
Em geral, costuma ser mais rápido que os algorítmos de cluster hierárquicos.
- Baseados em Centroides: K- means, Gaussian M ix ture Model, Fuzzy c-mean
- Baseados em Densidade: DBSCA N, Optics
- Probabilísticos: LDA
- Redes Neurais / Deep Learning: A utoencoders

Para os tipos 'particionais', o maior desafio é definir corretamente o valor de K (quantidade de grupos que serão divididos os dados).
Muitas vezes essa informação virá do conhecimento da área de negócio. Às vezes o número de cluster é definido pelo requisito do negócio ou pela 'motivação' da análise.
Exemplo: tenho 'k' mesas e quero agrupar as pessoas nas mesas por suas similaridades; departamento de mkt diz que tem orçamento para 3 tipos de campanhas diferentes.
Se não sabe por onde começar o valor de K, uma regra geral seria: (n/2)^1/2 onde n é o número de exemplos do conjunto.
Outra f orma de verific ar se estamos usando um bom número de K é pelo método Elbow. Nele você precisa gerar v ários modelos, cada um com um valor de K.
Então, a partir da homogeneidade e heterogeneidade, verifica qual valor de K melhor para o modelo em questão. Mas não existe um valor perfeito, nem uma única resposta.
A estatística de Hopkins vai ajudar a avaliar a tedÊnc ia de cluster, ou seja, o quanto seus dados são "clusterizáveis". Valores > 0,5 ... o dataset não é clusterizáv el.

É uma boa prática fazer tabelas de proporção para atributos categóricos e verificar a proporcionalisdade de registros.
Algorítmos baseados em distância, esperam receber dados normalizados.
Algumas métricas de clusterização:
- homogeneidade: o resultado de cluster satisfaz a homogeneidade se todos os sues clusters contiverem apenas pontos de dados membros de uma única classe. (retorna valor entre 0 e 1)
- completude: o resultado de cluster satisfaz a completude se todos os pontos de dados que são de uma determinada classe são elementos do mesmo cluster. (retorna valor entre 0 e 1)
- medida V: é a média entre homogeneidade e completude.
- inércia: soma das distâncias das amostras para seu centro de agrupamento mais próximo

Para o algorítmo K-means, o principal parâmetro é justamente o 'k' ( número de c luster).


Para DBSCAN, não precisa dizer quantos grupos ele terá que dividir. Ao invés disso, dizemos usamos critérios que ele encontrará os grupos.
Outra opção é o M ean Shift. É uma técnica não-paramétrica de espaço das carac terísticas para localizar os máximos de uma funç ão de densidade. (estimativa de densidade de kernel)
Um dos parâmetros deste alg orítmo é o 'bandw idth'. É possível utilizar um pacote do próprio S KLearn para estimar este parâmetro (from sklearn.cluster import estimate_bandwidth).

4.7 - SVM - Support Vector Machine


São modelos de aprendizagem supervisionada.
Características:
Em caso de outliers, busca a melhor forma possível de classificação e, se necessário, desconsidera o outlier. Mas sempre muito cuidado, pode afetar o modelo.
É um classificador criado para fornecer sepração linear, mesmo que os dados não sejam linearmente separáveis (Kernel trick)
Funciona muito bem em domínios complicados, em que existe um clara margem de separação
Não funciona bem em conjunto de dados muito grandes, pois o tempo de treinamento é muito custoso
Não funciona bem em conjunto de dados com grande quantidade de ruídos
Se as classes estiverem muito sobrepostas, deve-se utilizar apenas evidências independentes
Pode ser usada tanto para regressão quanto classificação, mas tem melhores resultados com classificação

O primeiro passo do algorítmos é encontrar as margens, para depois definir o hiperplano.


O que "sustenta" a posição das margens são os pontos de "support vectors".
O que o Kernel trick faz é elevar os dados para uma outra dimensão. Existem diferentes tipos de funçõos de Kernel. Principais são: RBF (radial based function), Linear e Polinomial.
É possível ter uma margem "rígida" e uma margem "flexível".
Margem rígida só pode ser usado quando os dados são totalmente linearmente separáveis. Não pode ter outliers.
A Margem flexível é uma forma do algorítmo "pular" alguns pontos discrepantes e poder classificar dados quase linearmente separáveis. (variável Slack)
Na prática, acaba que quase sempre o modelo será criado com margem flexível.
O parâmetro 'C' vai ajudar a escolher a melhor margem. Quanto menor valor de C, maior a margem do hiperparâmetro.

4.8 - PCA - Principal Component Analysis

4.9 - PLN - Processamento de Linguagem Natural


Principais ferramentas para trabalhar com PLN em Python são:
GATE (general architecture for text engineering)
Mallet (machine learning for language toolkit)
UIMA
OpenMPL
Stanford NPL - principalmente para trabalhar com Java
Genism
NLTK (natural language toolkit)
SpaCy - já tem alguns pacotes dedicados para PT BR

Boas práticas para manipulação de texto:


- Encoding, Unicode, UTF-8
Verificar o encoding do python: import sys
sys.getdefaultencoding()
Verificar o encoding do seu Sist.Oper.: import locale
locale.getpreferredencoding()
A letra 'u' no início, significa que o padrão será Unicode b = u'teste'
O tipo de encoding pode até interferir no tamanho de memória ocupada pelo texto.
- usar list comprehension e dict comprehension
- pacote SpaCy para trabalhar com PT BR !pip install -q spacy
!python -m spacy download pt_core_news_sm
import spacy
npl = spacy.load('pt_core_news_sm')
- conhecer bem as expressões regulares (Regex)
https://www.w3schools.com/python/python_regex.asp
https://docs.python.org/3/howto/regex.html
Para Python, precisa ter o pacote 're' import re

Conceitos de PLN:
- córpus:conjunto de tex tos escritos e registros orais em uma determinada língua e que serve como base de análise. Coleção de arquiv os de texto organizado. V ocê precisa ter um corpus para conseguir treinar um modelo.
- corpora:conjunto de córpus
- stopwords: palav ras que podem ser consideradas irrelev antes para o entedimento do sentido de um texto, ou seja, palavras semanticamente irrelavantes.
Exemplos: as, e, os, de, para, com, sem, foi. Essas palavras são geralmente removidas de um texto durante a fase de pré-processamento
- tokenização: processo de quebrar o tex to f ornecido no proc essamento de linguagem natural na menor unidade de uma frase chamada tok en.
- stemming: processo de encontrar a raiz das palav ras, o seu radical. Remover os prefixos e sufixos das palav ras.
- lemmati zação: parecido com o stemming, mas ele faz uma análise morf ológica da palavra para fazer a remoç ão dos sufixos e prefixos. Envolv e processos mais longos para calcular do que o Stemming.
Leva em consideração um dicionário para fazer essa análise morfológica. Você pode criar também seu próprio dicionário.
- marcação de f ala (speech tag ging): processo de conversão de uma frase em formas - lista de palavras, lista de tuplas (onde cada tupla tem uma forma (palavra, tag) ).
A tag no caso de é uma tag de classe gramatical e significa se a palavra é um substantivo, adjetivo, verbo e assim por diante.
A lemmatização utiliza a pos_tag (ou tag), para seu algorítmo. [pos = part of speech]
- colocações e bigramas: colocação é uma sequência de palavras ou termos que co-ocorrem mais frequentemente do que seria esperado por acaso. Por ex emplo, “vinho ti nto” é uma colocação enquanto “o vinho” não é.
Um bigrama nada mais é do que uma sequência de duas palavras. Trigrama, três palavras. Outros exemplos: Rio de Janeiro, machine learning, rede social, tomografia computadorizada.
Pode haver diferentes estratégias para se chegar nos bigramas ou trigramas mais relevantes. Uma delas é pela f requência de em que aparecem.
Outra forma é por PMI. É um score que mede a probabilidade com que as palavras co-ocorrem, mais do que fossem independentes. É muito sensível à combinação "rara" de palav ras.
Uma terceira forma é pelo Teste t, onde o a hipótese nula (H0) é que as palavras ocorrem em conjunto (bi e trigramas) com determinada probabilidade.
Outro jeito é pelo Qui-quadrado (chi_sq).
É possível também juntar duas métricas para se chegar a um resultado, multiplicando seus fatores.
Modelos:
- Bag of w ord:
- TF -IDF : TF = frequência do termo. IDF = Frequência inv ersa de documentos

4.10 - Redes Neurais


- forward propagation:
- loss function:
- backward propagation (retropropagação): visa otimizar a função de custo, alterando os valores dos pesos e vieses (bias) da rede
- época:
- funções de ativação: há funções nas camadas intermediárias e na camada final da rede neural. A função Sigmóide (gera valores entre 0 e 1) é muito usada para camada final. A função RELU (gera valores 0 ou 1) é muito usada para camadas intermediárias.
- função inicialização dos pesos da rede:

4.11 - Redes Neurais Profundas (Deep Learning)


Atualmente temos 3 frameworks importantes para trabalhar com deeplearning: 1) TensorFlow; 2) PyTorch; 3) mxnet
TensorFlow: foco em aplicações comerciais
PyTorch: foco em pesquisa e ex perimentação. >> !pip install -q -U torch torchvision
Mxnet: meio termo

Tensores = um tensor é uma estrutura de dados n-dimensional

10 Principais arquiteturas de Redes Neurais (RN):


https://www.deeplearningbook.com.br/as-10-principais-arquiteturas-de-redes-neurais/
1- Redes Multilayer Perceptrons
2- Redes Neurais Convolucionais

Mapas de Recursos Transforma matriz em vetor

Classificação

3- Redes Neurais Recorrentes

4- Long Short-Term Memory (LSTM)

5- Redes de Hopfield
6- Máquinas de Boltzmann
7- Deep Belief Network
8- Deep Auto-Encoders
9- Generative Adversarial Network
10- Deep Neural Network Capsules

4.12 - Sistema de Recomendação


Alguns têm um foco maior nas semelhanças de clientes, alguns em similaridades de conteúdo e alguns uma mistura dos dois
Diferentes algoritmos variam em sua utilidade com base no quanto você sabe com antecedência sobre osclientes, seu conteúdo e se você pode obter feedback dos clientes após a compra (isso seria fundamental)
Os sistemas de recomendação se resumem a oferecer pontuações aos clientes de acordo com vários critérios. Essas tags de pontuação que você coloca nos clientes eregistros de conteúdo raramente são em tempo real e são
normalmente atualizadas durante a noite, mais ou menos frequentemente, dependendo decada circunstânciae objetivo de negócio. Portanto, as atualizações de pontuação off-line podem depender de cálculos recomendados,
mas podem ser complementadas com pontuação e análise realizadas separadamente em uma escala de tempo mais longa.
Princiáis tipos:
> Item mais popular: oferecer ao cliente o que é mais popular, seja um filme, um livro ou um artigo de vestuário. Sem fazer nada mais do que observar nosregistros de v endas, é possível construir um sistema de recomendação simples como esse.
Isso não é necessariamente ciência de dados. Não é particularmente personalizado.Mas pode ser útil se você sabe muito pouco sobre o seu visitante.
> A ssociação / M arket basket: olham quase exclusiv amente em conteúdo. Este tipo de análise estatística baseia-se apenas no mais simples dos cálculos para encontrar itens que são frequentementeconsumidos juntos.
A análise matemática de associação e de market basket éa mesma. Quando os clientes normalmente adquirem os itens ou serviços um de cada vez (como serviços bancários) chamamos de Associação. Quando os clientes
potencialmente compram várias coisas de uma só vez chamamos de Market Basket. Assim, a Análise da Associação é realizada ao nível do cliente, enquanto a Análise de Market Basket é conduzida ao nível da transação.
São normalmente o método mais rentável para criar ofertas personalizadas. A preparação de dados é mínima. Simples e rápido. conhecimento do cliente eseu relacionamento com produtos e serviços não é necessário.
3 principais etapas:
1- Avaliar a força da relação entre cada um de seus produtos e todos os outros produtos que você oferece usando os algoritmos de associação.
2-Identificar aqueles pares que têm afinidade muito forte (tipicamente uma pontuação de afinidade de 2 ou superior). Por exemplo, um cliente com um cartão de crédito pode ter duas ou três vezes mais probabilidade de adquirir um empréstimo do que um cliente selecionado ao acaso
3-Criar uma oferta personalizada para clientes que têm um produto (de um par de produtos fortemente associados), mas não o outro
> Filtros colaborati vos: premissa é que se dois usuários tiveram uma forte semelhança de gostos e desgostos no passado, é prováv el que eles vão continuar a ter uma f orte semelhança no futuro. Sistemas de recomendação baseados em
Filtros Colaborativos irão recomendar às pessoas que gostam de filmes de romance, aqueles filmes que têm forte conteúdo romântico sem a exigência de definir necessariamente o que seja "romance". São apenas números sendo analisados
Sistemas de recomendação de filtragem colaborativa são formas básicas de motores de recomendação. Neste tipo de mecanismo de recomendação, filtrar itens de um grande conjunto de alternativas é feito pela colaboração de preferências dos usuários.
A suposição básica em um sistema de recomendação de filtragem colaborativa é que, se dois usuários compartilharam os mesmos interesses um do outro no passado, eles também terão gostos semelhantes no futuro. Se, por exemplo, o usuário A e o usuário B
tiverem preferências de filme semelhantes, e o usuário A assistiu recentemente ao Titanic, que o usuário B ainda não viu, então a ideia é recomendar esse filme ao usuário B. As recomendações do filme no Netflix são um bom exemplo deste tipo de sistema de recomendação.
Na filtrag em colaborativa baseada no usuário(User Based), as recomendações são geradas considerando as preferênc ias na vizinhança do usuário. A filtragem colaborativ a baseada em usuário é feita em duas etapas: Identificar usuários semelhantes
com base em preferências de outros usuários semelhantes e recomendar novos itens a um usuário ativo com base na classificação dada por usuários semelhantes
Nos sistemas baseados em itens(Item Based), as recomendações podem ser feitas com base na semelhança de produtos com outros produtos que o cliente comprou ou navegou
> Baseados em Conteúdo: Filtragem baseada em conteúdo foi o estado da arte há 10 anos e ainda é bastante encontrado em uso e tem muitas aplicações na atualidade, mas com o crescimento exponencial no v olume de dados, esta técnica perdeu espaço para os filtros colaborativos
Na filtragem colaborativa, consideramos apenas as preferências de itens do usuário e criamos os sistemas de recomendação. Embora essa abordagem seja precisa, faz mais sentido se considerarmos as propriedades do usuário e as propriedades do item
enquanto construímos motores de recomendação. Ao contrário da filtragem colaborativa, usamos as propriedades do item e as preferências do usuário nas propriedades do item enquanto criamos mecanismos de recomendação baseados em conteúdo.
Um sistema de recomendação de conteúdo normalmente contém uma etapa de geração de perfil de usuário, etapa de geração de perfil de item e criação de modelo para gerar recomendações para um usuário ativo. O sistema de recomendação baseado
em conteúdo recomenda itens aos usuários, levando em consideração o conteúdo ou atributos de itens e perfis de usuário.
> Modelos híbridos: Os motores de recomendaç ão híbridos são construídos pela c ombinação de vários sistemas de recomendação para construir um sistema mais robusto. Ao combinar v ários sistemas de recomendação, podemos substituir as
desvantagens de um sistema com as vantagens de outro sistema e, assim, construir um sistema final mais confiável. Por exemplo, ao combinar métodos de filtragem colaborativa (em que o modelo falha quando novos itens não possuem classificação),
com sistemas baseados em conteúdo (onde informações de atributos sobre os itens estão disponíveis), novos produtos podem ser recomendados com mais precisão e eficiência.

>> Colocar aqui as explicações dos demais Algorítmos:


Naïve Bayes
Regressão Logística
KNN
Regressão Linear

5 Model Training
Existem algumas técnicas-chave que discutiremos, e elas se tornaram boas-práticas amplamente aceitas.
Pode parecer que demorou um pouco para chegarmos aqui, mas os cientistas de dados profissionais gastam a maior parte do tempo nos degraus que levam até este.
O seu modelo preditivo precisa ser "generalizável", ou seja, não pode criar um modelo apenas para os dados de treino.

5.1 - Dividir conjunto de dados (treino e teste)


Você deve sempre dividir seus dados antes de fazer qualquer outra coisa.
Essa é a melhor maneira de obter estimativas confiáveis do desempenho dos seus modelos.
Depois de dividir seus dados, não toque no seu conjunto de testes até que esteja pronto para escolher seu modelo final!
A comparação entre o desempenho do teste e o desempenho do treinamento nos permite evitar o overfitting.
Se o modelo tiver um desempenho muito bom nos dados de treinamento, mas ruim nos dados de teste, então temos o overfiting.
Divide-se o dataset original entre dados de treino e teste. Treinamos o algoritmo com os dados de treino e fazemos previsões nos dados de teste, avaliando o resultado.
Costuma-se utilizar uma divisão entre 70/30 ~ 80/20, mas isso não é uma regra. A seleção da amostra para cada grupo deve ser aleatória (randômica).
O SkLearn possui uma função chamada 'train_test_split' que já retorna os 4 valores: x_treino; x_teste; y_treino; y_teste.
É importante sempre verificar a proporção (numa classificação, por exemplo) das classes entre o dataset de treino e teste.
>> Random >> Grid
5.2 - O que são hiperparâmetros (Hyperparameters) [ SKLearn - pacote: model selection | função: GridSearchCV e RandomizedSearchCV ]
Quando falamos de ajustar modelos (tune), queremos dizer especificamente ajustar hyperparameters.
Existem dois tipos de parâmetros em algoritmos de aprendizado de máquina.
A principal diferença é que os parâmetros do modelo podem ser aprendidos diretamente dos dados de treinamento, enquanto os hiperparâmetros não podem.
Parâmetros do Modelo
Os parâmetros do modelo são atributos aprendidos que definem modelos individuais.
ex.: coeficientes de regressão, ramificações da árvore de decisão
Eles podem ser aprendidos diretamente dos dados de treinamento
Hiperparâmetros
Representam um configurações estruturais de "alto nível" dos algoritmos
ex.: força da penalidade usada na regressão regularizada, o número de árvores para incluir em um Random Forest
Eles são decididos antes de ajustar o modelo porque não podem ser aprendidos com os dados
Os parâmetros são o que o modelo aprende e hiperparâmetros são aquilo que ajudam o modelo a aprender.
Como exemplo, seguem 2 métodos do SKLearn: Grid Search Parameter Tuning e Random Search Parameter Tuning.
Para saber os nomes dos hiperparâmetros é preciso verificar a documentação dos pacotes.
O Randomized Search não testa todas as possibilidades de combinações entre os parâmetros. Você escolhe quantas iterações terão no parâmetro 'n_iter'.
No Grid Search todas as possibilidades são testadas, aumentando tempo de treino.

5.3 - Cross-validation [ SKLearn - pacote: model selection | função: KFold e cross_val_score ]


É um conceito que ajuda a ajustar o modelo (tune).
A validação cruzada é um método para obter uma estimativa confiável do desempenho do modelo usando apenas seus dados de treinamento.
Existem várias formas de validação cruzada. A mais comum, 10-fold-cross-validation, divide seus dados de treinamento em 10 partes iguais, criando 10 divisões miniatura de teste / treinamento.
Esses são os passos para o 10-fold-cross-validation:
Divida seus dados em 10 partes iguais
Treine seu modelo em 9 partes. Avalie-o na 1 parte restante.
Execute esse passo 10 vezes, cada vez com uma parte diferente para avaliação.
O desempenho será a média de todas as 10 vezes (cross-validated score).

5.4 - Fit and Tune Models


Tudo que precisamos fazer é executar todo o loop de cross-validation detalhado acima em cada conjunto de valores de hiperparâmetros que gostaríamos de tentar
1) ex. 1)

Grid Search > best_params_

2)

O GridSearch ajuda a fazer o tunning. Com o método 'best_params_'. -->

5.5 - Selecionando o melhor modelo [ SKLearn - pacote: metrics | função: mean_squared_error ; mean_absolute_error ; r2_score ]
Até este momento, para toda avaliação acima, você utiliza apenas o conjunto de dados para treinamento.
Agora é hora de avaliar cada agoritmo com o conjunto de teste e selecionar o aquele com melhor desempenho.
Essa métrica é possível ser selecionada diretamente dentro da função 'cross_val_score', pois é um de seus parâmetros (scoring)
Há uma variedade de métricas de desempenho que você pode escolher. Não vamos gastar muito tempo com todos aqui, mas em geral:
Para tarefas de regressão, recomendamos o Erro Médio Quadrático (MSE) ou o Erro Médio Absoluto (MAE). (Valores mais baixos são melhores). Já o R², quanto maior, melhor (valor de 0 a 1).
Para tarefas de classificação, recomendamos Área Sob Curva ROC (AUROC). (Valores maiores são melhores). A AUROC (ou AUC - area under curve) é uma métrica de performance para classificação binária.
Para classificação também pode-se utilizar a 'Acurácia', mas é útil apenas quando existe o mesmo número de observações em cada classe, ou seja, se a base de dados estiver desbalanceada, não é recomendado.
Se você converteu a coluna target da sua base de dados antes de dividir entre treino e teste para fator, lembre-se de convertê-la novamente para numérica para conseguir aplicar o AUC.
No SKLearn já tem uma função 'classification_report' (dentro do pacote metrics) que mostra o resultado de várias métricas (precision; recall; f1-score; support)
O processo é muito simples:
Para cada um dos seus modelos, faça previsões no seu conjunto de testes.
Calcule as métricas de desempenho usando essas [previsões do modelo] e as [variáveis de resposta do conjunto de testes].
Finalmente, use estas perguntas para ajudá-lo a escolher o modelo vencedor:
Qual modelo teve o melhor desempenho no conjunto de testes? (desempenho)
Funciona bem em várias métricas de desempenho? (robustez)
Também teve (uma das) melhores pontuações cruzadas do conjunto de treinamento? (consistência)
Isso resolve o problema original do negócio? (condição de vitória)
Para facilitar o teste de vários modelos de uma vez, é possível criar um loop entre todos os modelos que se deseja testar. Veja o exemplo ao lado - - - - - - - - - - - - - - - - >
O primeiro bloco ele cria uma lista e inclui todos os modelos que deseja testar com seu respectivo nome.
Depois cria 2 listas em branco onde jogará os resultados no loop.
Cria o loop que passa pelo cross validation (kflod), guarda o score numa variável que é agregada à lista de resultados junto com nome.
Ao final, para facilitar a visualização, criou um boxplot comparando os scores.

5.6 - Dicas para otimizar o Modelo


Variável de idade, pode-se criar uma nova coluna com a idade * 2, caso ela tenha significância no modelo
Variáveis contínuas podem ser transformadas em categórica (quantization). Ex.: a partir do 'índice de massa corporal', criar uma coluna indicando apenas com IMC > 30, deixando 0 ou 1 para essa classificação.
Testar outros parâmetros do modelo. Assim como outros hiperparâmetros.
Testar diferentes conjuntos de variáveis.

5.7 - Matriz de Confusão e Avaliação do modelo (para problemas de classificação)


Comparando o modelo de previsão com os dados de teste. Previsão
Neste exemplo, houve apenas 2 erros na classificação.
As métrica de avaliação de algoritmos de classificação, de alguma forma utilizam a matriz de confusão. Falso Positivo
- FN
Quanto mais próximo os valores de recall e precision estiver, melhor. Se tiverem muito distantes, isso signific a que seu modelo
está aprendendo muito mais sobre uma classe do que outra.
Observado

Verdadeiro
Negativo - TN

Verdadeiro Falso Negativo


Positivo - TP - FP
Precision: quantifica o número de previsões de classe positi va que realmente pertencem à classe positiv a.
Precision responde ao seguinte: Quantas das pessoas que rotulamos como diabéticas são realmente diabéticas?
É o quão certo você está dos seus verdadeiros positivos, enquanto o recall é o quão certo você está de que nenhum positivo está faltando.
Escolha precision se quiser ter mais confiança em seus verdadeiros pontos positivos. por exemplo, e-mails de spam. Você prefere ter alguns e-mails de spam em sua caixa de entrada em vez de alguns e-mails
regulares em sua caixa de spam. Portanto, a empresa de e-mail deseja ter certeza de que o e-mail Y é spam antes de colocá-lo na caixa de spam e você nunca conseguirá vê-lo.
Proporção de predições corretas de uma categoria em relação a todas as previsões feitas dessa categoria
Recall: quantifica o número de previsões de classe positivas f eitas de todos os exemplos positiv os no conjunto de dados.
O Recall responde à seguinte pergunta: De todas as pessoas que são diabéticas, quantas delas nós prevemos corretamente?
Escolha Recall se a ideia de falsos positivos for muito melhor do que falsos negativos, em outras palavras, se a ocorrência de falsos negativos for inaceitável / intolerável, você prefere obter alguns falsos positivos extras (alarmes falsos)
a salvar alguns falsos negativos, como em nosso exemplo de diabetes. Você prefere que algumas pessoas saudáveis sejam rotuladas como diabéticas do que deixar uma pessoa diabética rotulada como saudável.
Proporção de previsões corretas da categoria alvo
F-S core: fornece uma pontuação única que equilibra precision e recall em um número. É a média.
Accuracy é uma ótima medida, mas apenas quando você tem conjuntos de dados simétricos (as contagens de f alsos negativos e falsos positivos estão próximas),
também, falsos negativos e falsos positivos têm custos semelhantes. Se o custo de falsos positivos e falsos negativos forem diferentes, F1 é o seu salvador. F1 é melhor se você tiver uma distribuição desigual de classes.

Dependendo do modelo você focará na redução de uma métrica específica. Tem problemas que reduzir falso positivo é melhor (ou menos pior) do que reduzir falso negativo e vice-versa.

AUC- ROC: A curva ROC mostra a relação entre a taxa de verdadeiros positivos (true positive rate — TPR) e a taxa de falsos positivos ( false positive rate — FPR) para diferentes thresholds.
Uma outra forma de visualizar isso é quanto mais longe a curva ROC estiver da linha pontilhada, que é a curva ROC de um modelo aleatório, melhor.
Quanto maior o AUC, melhor. Quanto mais próximo de 1.0 é a área sob a curva ROC, melhor é o modelo.

- O valor de accuracy = 90% sig nifica que 1 em cada 10 rótulos está incorreto e 9 está correto.
- O valor de precision = 80% sig nifica que, em média, 2 em cada 10 alunos diabéticos marcados pelo nosso programa são saudáveis e 8 são diabéticos.
-O v alor de recall = 70% significa que 3 em cada 10 pessoas diabéticas na realidade não participam do nosso programa e 7 são rotuladas como diabéticas.

5.8 - Outras dicas para avaliar o modelo


Para Regressão, uma outra métrica é o Coeficiente de Determinação (ou também, R² , R squared). Ele vai de zero a 1, sendo que quanto maior, melhor.
Em prolemas de Regressão, o Resíduo é a diferença entre o valor real e a previsão.
Ao analisar o histograma da distribuição dos resíduos, quanto mais próximo de zero, melhor.
É esperado que os resíduos tenham uma distribuição normal.

5.9 - Salvando o modelo (Python) [ pacote: pickle ]


Uma vez escolhido o modelo e otimizado, você pode salvá-lo para utilizar com os novos dados para fazer previsões. - - - - - - - - - - - - - - - - - - - - - >

5.10 - Combinando algoritmos - Otimizando Performance com Métodos Ensemble


Para mais detalhes, veja na seção 4.5.

6 Storytelling
Como resumir o trabalho de análise e explicar para quem não conhece de Data Science?
Não utilize linguagem técnica em apresentações executivas.
Não utilize linguagem técnica em apresentações executivas.
Use poucos gráficos para explicar seus resultados. Use tabelas também se for necessário.
Tente construir uma linha do tempo explicando como os dados geraram os resultados esperados.
Não use termos como "variáveis" e sim "atributos" ou "características".
Documente todo seu trabalho, pois facilitará contar a história depois.
Tomadores de decisão não querem saber que algoritmo você utilizou. Querem saber o que precisam fazer para aumentar o faturamento.
Responda o que é importante para eles, não o que é importante para você.
O processo de análise não interessa aos tomadores de decisão, e sim o resultado final.
A fase exploratória dos dados pode apresentar insights preciosos. Use isso ao seu favor e guarde todos os resultados intermediários do processo de análise.

7 Deploy
É o processo de fazer o modelo resulver o problema oara o qual ele foi criado
Colocar o modelo em produção. Veja abaixo algumas das formas:
Em nuvem, com Google Cloud, AWM (Amazon), Azure (Microsoft).
Aplicações WEB com o Framework Web. Ex.: em Python tem o pacote Flask, e em R tem o pacote Shiny.
Com o TensorFlow Serving.
Desenvolvimento de APIs.

>> Principais bibliotecas do Python: >> Principal fonte deste texto:


NumPy for effic ient numerical c omputations. https://elitedatascience.com/primer
Pandas for data management.
Scikit- Learn for alg orithms and model training.
Seaborn for easy/common v isualizations.
Matplotlib to customize visualizations.
1. Tipo de Aprendizagem: Supervisionada
O objetivo é encontrar os parâmetros ótimos que ajustem um modelo que possa prever rótulos desconhecidos
Onde usar:
Reconhecimento e classificação de imagens/fala
Retenção de clientes
Diagnósticos
Previsões de mercado
Detecção de fraudes
1.1 Tarefa: Classificação - o objetivo é identificar a qual categoria pertence uma determinada amostra do proble
Principal métrica de avaliação é a acurária, junto com a matriz de confusão.
Árvore de decisão (árvore de classificação)- onde os nós internos são rotulados com uma feature de entrada,
Naïve Bayes - que é um classificador que trabalha com probabilidades de ocorrência de cada classe para cada
Redes Neurais - baseadas em redes de neurônios artificiais interconectados - os perceptrons, onde os pesos d
Regressão Logística
KNN
Random Forest
SVM

1.2 Tarefa: Regressão - a ideia é prever um valor numérico; ou em outros termos: identificar uma categoria em
Principal métrica de avaliação é o erro quadrático médio (mean squared error).
Regressão Linear
Regressão Exponencial
Regressão Logarítmica
Redes Neurais - que também podem resultar valores contínuos
LASSO
Ridge
Árvores de Decisão (árvore de regressão)
SVM

2. Tipo de Aprendizagem: Não supervisionada


O objetivo é observar algumas similaridades entre os objetos e incluí-los em grupos apropriados
Onde usar:
Elicitação de atributos
Visualização de atributos
Sistema de recomendação
Segmentação de clientes
Marketing direcionado
Detecção de comportamento anômolo, identificando padrões de uso fora dos clusters conhecidos

2.1 Tarefa: Clustering - permite dividir um conjunto de dados em grupos de acordo com medidas de similaridad
Baseados em Centroides: K-means, Gaussian Mixture Model, Fuzzy c-mean
Baseados em Conectividade: Algoritmos hierárquicos
Baseados em Densidade: DBSCAN, Optics
Probabilísticos: LDA
Redes Neurais / Deep Learning: Autoencoders

2.2 Tarefa: Associação - permite o descobrimento de regras e correlações, identificando conjuntos de itens que

2.2 Tarefa: Redução de Dimensionalidade


tSNE
PCA
KPCA
2.3 Outros
ICA
SVD

3. Tipo de Aprendizagem: por Reforço


Investiga como agentes de software devem agir em determinados ambientes de modo a maximizar alguma noçã
Onde usar:
Decisão em tempo real
Navegação de robôs
Tarefas de constante aprendizagem
Aquisição de conhecimento

Q-Learning
TD-Learning
Algorítmo Genético
Aproximação por função com atualização por gradiente
Multi-Armed Bandits
Contextual Bandits
k-Armed Bandits

4. Tipo de Aprendizagem: Deep Learning

5. Tipo de Aprendizagem: Semi Supervisionada - ela usa dados rotulados e não-rotulados

> Métodos de Aprendizagem


1. Métodos baseados em Instância
Para atributos contínuos, a mais utilizada é a distância Euclideana. Para atributos discretos, a distância é 0 cas
É importante normalizar os dados quando utilizar estes métodos.
Assumem que as instâncias (os dados) podem ser representadas como pontos em um espaço Euclideano. O o
Outra distância que pode ser utilizada é a Manhattan, onde pode dar pesos diferentes para cada atributo.
Outras medidas são: Correlação de Pearson; Similaridade de Cosseno; Distância de edição.
2. Métodos Probabilísticos
Cada exemplo de treinamento pode decrementar ou incrementar a probabilidade de uma hipótese ser corret
O Conheciento a priori pode ser combinado com os dados observados para determinar a probabilidade de um
Novas instâncias podem ser classificadas combinando a probabilidade de múltiplas hipóteses ponderadas pel

3. Métodos baseados em Procura


Árvore de decisão

4. Métodos baseados em Otimização


Redes Neurais
SVM

5. Métodos ensemble
É um grupo de algoritmos de machine learning. O output pode ser uma média dos resultados de cada algoritm
É possível também aplicar um peso diferente para cada modelo, e ao final, na média ou na votação, ele terá u
Há alguns modelos mais avançados de votação que o modelo aprende o melhor peso a ser atribuído aos subm
Possui 2 abordagens principais:
- Bootstrap Aggregation ou Bagging
Quando utiliza vários modelos, mas de uma mesma categoria, por exemplo o Random Forest, que é um
Exemplos: Random Forest, Bagged CART
- Boosting
Também utiliza modelos de uma mesma categoria, porém nesta abordagem, cada modelo tenta corrigir
Então, enquanto o Bootstrap possui vários modelos em paralelo e depois faz uma média ou votação, no
Exemplos: C5.0, AdaBoost, Stochastic Gradient Boosting

> Como selecionar um algorítmo


Considerar:
Precisão - cuidado com o overfitting
Tempo de treinamento
Número de recursos/atributos do seu conjunto de dados - pode considerar usar o PCA para redução de dimen
Tipo de problema a ser resolvido
Linearidade - linearmente separáveis?
Número de parâmetros do algorítmo

Classificação (2 classes) Classificação (mul


Regressão Não-supervisionad

>> Exemplos de problemas


Reconhecimento de voz
Previsão de doenças
Diagnóstico de câncer
Detecção de fraudes
Carros autônomos
Detecção de anomalias
Web Scrapping
Previsão de falhas em equipamentos
Anúncios em tempo real em páginas da web e dispositivos móveis
Análise de sentimento baseada em texto
filtragens de spam em email
Detecção de invasão de rede

>> Análise de texto


desconhecidos em outros objetos
mostra do problema

ture de entrada, e os nós folhas são rotulados com a classe a ser preterida
classe para cada valor de atributo, supondo que as variáveis são independentes
onde os pesos das camadas ocultas são ajustados a cada iteração

ma categoria em escala contínua (pode ser até uma probabilidade)

s de similaridade ou de distância

tos de itens que frequentemente ocorrem juntos


izar alguma noção de recompensa cumulativa

distância é 0 caso sejam valores diferentes e 1 caso sejam iguais

Euclideano. O objetivo é verificar a menor distância entre o novo dado e os dados usados para treino. É uma comparação d
ada atributo.
pótese ser correta.
babilidade de uma hipótese.
ponderadas pela sua probabilidade.

de cada algoritmo, ou uma votação.


tação, ele terá uma relevância maior.
ribuído aos submodelos. Isto é chamado de Stacked Aggregation.

orest, que é um conjunto de árvores de decisão.

lo tenta corrigir o erro do modelo anterior.


ou votação, no Boosting os modelos estão em série e cada próximo modelo tentar reduzir a taxa de erro do antior.

edução de dimensionalidade

assificação (multiclasse)
ão-supervisionados
Abaixo temos uma imagem clássica de comportamentos de alguns algoritmos para classificação de grupos em al
uma comparação direta, por similaridade.
do antior.
ão de grupos em alguns cenários:
Estatística básica
medidas de centralidade
média
mediana - valor do meio
moda - valor com maior frequência (unimodal, bimodal, multimodal)
medidas de dispersão
variância
desvio padrão
quartis
amplitude
covariância

coeficiente de correlação
A covariância é semelhante à correlação entre duas variáveis, no entanto, elas diferem nas seguintes maneiras:
Os coeficientes de correlação são padronizados. Assim, um relacionamento linear perfeito resulta em um coefic
Os valores de covariância não são padronizados. Portanto, a covariância pode variar de menos infinito a mais in
assimetria (skewness) - informa a quantidade e a direção da inclinação
medida positiva indicaria que a média dos valores dos dados é maior do que a mediana e a distribuição dos dados é
medida negativa indica que a média dos valores dos dados é menor que a mediana e a distribuição dos dados é inc
curtose - informa a altura e a nitidez do pico central, em relação a uma curva de sino padrão

coeficiente de variação
CV = desvio padrão / média
Quanto menor o Coeficiente de Variação de um conjunto de dados, menor é a sua variabilidade. O Coeficiente de V

Análise Descritiva
variáveis numéricas (quantitativas)
contínua
discreta
um exemplo de dado que pode confundir: ANO, é uma variável numérica ou categórica? Posso fazer operações
variáveis categóricas (qualitativas)
nominais
ordinais

tabela de frequência
histograma
boxplot
correlação
gráfico de dispersão (scatterplot) - representações de dados de duas ou mais variáveis
séries temporais

Probabilidade
estudo da aleatoriedade e incerteza
Representa a base da estatística inferencial, que por sua vez é a base do aprendizado de máquina.
experimento - processo de medir ou observar uma atividade com o propósito de coletar dados.
espaço da amostra - representatodos os possíveis resultados de um experimento
evento - representaum ou mais resultados de um experimento
Teoria da Probabilidade possui 5 regras básicas
1-A probabilidade de qualquer evento sempre será entre 0 e 1. Probabilidades nunca podem ser negativas ou maio
2-A soma de todas as probabilidades para um evento simples, em um espaço de amostra, seráigual a 1.
3-Se P(A) = 1, então podemos garantir que o evento A ocorrerá.
4-Se P(A) = 0, então podemos garantir que o evento A não ocorrerá.
5-P(A) = 1 –P(A’), onde P(A’) é o complemento do evento A.

Eventos Complementares
Sabendo que um evento pode ocorrer ou não. Sendopa probabilidade de que ele ocorra (sucesso) eqa proba
Eventos Independentes
Dizemos que dois eventos são independentes quando a realização ou não realização de um dos eventos não afeta a
Eventos Mutuamente Exclusivos
Dizemos que dois ou mais eventos são mutuamente exclusivos quando a realização de um exclui a realização do(s)
no lançamento de uma moeda, o evento “tirar cara” e o evento “tirar coroa” são mutuamente exclusivos

Distribuição de probabilidade - descreve como os valores de uma variável aleatória são distribuídos
Existem três tipos de probabilidade:
Probabilidade clássica - usada quando cada resultado no espaço amostral tem a mesma probabilidade de oco
Probabilidade empírica - baseia-se em observações obtidas de experimentos aleatórios. Os resultados são base
Probabilidade subjetiva - intuição estimativa ou palpite. Normalmente baseada em experiência no passado, opiniã

Distribuições de probabilidade:
Binomial - uma distribuição de probabilidade discreta, que descreve o resultado de n experimentos independentes.
Poisson - encontrar o número de vezes em que um evento específico ocorre em uma determinada área de oportu

Uniforme - qualquer número selecionado no intervalo [a, b] tenha uma chance igual de ser selecionado.
Exponencial - tempo de acontecimento de uma sequência de eventos independentes, aleatoriamente recorrentes.
Normal
Testes Estatísticos
Script construção do modelo:
Definir problema
Carregar e compreender os dados
Tipos de Dados, Frequência, Histograma, Boxplot,
Correlação
Teste T
duas amostras independentes (não-pareado):
duas amostras dependentes (pareado):
uma amostra:
> para poder usar o Teste T, é preciso ser uma distribuição normal e ter variâncias iguais

Teste para verificar se amostra possui uma distribuição normal = Shapiro Test
H0 = dados são normalmente distribuídos
H1 = dados NÃO são normalmente distribuídos

Teste para verificar a Homogeneidade das variâncias em uma distribuição NORMAL = Bartlett's Test
Teste para verificar a Homogeneidade das variâncias em outra distribuição = Levene Test
H0 = variâncias são iguais para todas as amostras
H1 = variâncias NÃO são iguais para todas as amostras

Em modelos de regressão multivariada, é preciso tomar muito cuidado com a colinearidade das variáveis do modelo.
para o modelo de regressão é ruim ter variáveis que são correlacionadas entre si
um teste para verificar a colinearidade é o Fator de Inflação da Variância (VIF).

Veja as conclusões para este mode

a autonomia do carro irá aumenta


a autonomia do carro irá diminuir

Problema 1
Treinando Teste do Hipótese.
Pode ser um teste bicaudal. Neste caso: H0 - X = Y média de X - média de Y = 0
H1 - X <> Y média de X - média de Y <> 0
Pode ser unicaudal. Neste caso: H0 - X <= Y ou H0 - X >= Y
H1 - X > Y H1 - X < Y

Se for executar um teste estatístico paramétrico (ex: ANOVA), o uso de dados muito inclinados para esquerda ou direit
É preciso fazer uma transformação de Log e depois executar o teste nos números transformados.

O teste de hipótese também pressopõem a independência entre as variáveis que serão comparadas.
É possível verificar a correlação entre as 2 variáveis e espera-se que o resultado seja um valor próximo de zero.

Tipos de de Teste T
Condição preliminar: existência de distribuição normal dos dados em ambos os grupos de dados.
1) Teste T de 1 amostra
2) Teste T de 2 amostras independentes
3) Teste T de 2 amostras relacionadas (pareadas)
Exemplo de teste pareado:
o mesmo conjunto de itens foram medidos sob duas condições diferentes
as diferenças nas medições feitas sobre mesmo assunto antes e depois de um tratamento (ex: peso do pacie
diferença entre 2 tratamentos dados ao mesmo assunto

Pode ser feito um Power Test para verificar se o tamanho da amostra e o size effect são bons e não afetaram o resulta
size effect = ( [média amostra antes] - [média amostra depois] ) / [ desvio padrão da diferença entre os dados ]

Anotações Gerias para Organizar depois:

Sempre depois de construir um modelos, deve-se analisar por 2 perspectivas:


Primeiro a significância GERAL do modelo: Há, ao menos, um dos betas que é estatisticamente diferente de zero? (T
O teste F divide a série de dados em duas partes: a variação explicada e não explicada. E então ele teste se a par
Segundo a análise INDIVIDUAL dos coeficientes do modelo: Analisar individualmente se os betas são estatisticamen
(o contexto aqui era regressão simples e múltipla, usando Mínimos Quadrados Ordinários)
O valor R-quadrado ajustado representa o quanto este modelo explica a variação da variável dependente pelas var
(exemplo: variável dependente = vendas, variáveis independentes = preço e anúncio. O quanto preço e anúncio
No exemplo abaixo, que é uma regressão univriada, poderia dizer que 86,8% da variação das vendas é explicada
Uma forma de interpretar a distância entre R-quadrado do R-quadrado ajustado é, quanto mais próximo os valo
Veja como o R-quadrado ajustado aumentou quando incluimos a variável anúncio.
Quando transformo a variável utilizando Log Natural, é uma transf. não linear, suprimindo a escala e pode interpret
Isso é importante também porque num modelo que possui variáveis com unidades diferentes (como quilos vend
Ou seja, no exemplo, posso interpretar que a mudança de 1% no preço afeta -5,9% nas vendas, em média. Pode
Quando incuímos 2 variáveis independentes no modelo, perceba que o "peso" do preço sobre as vendas diminu
Perceba também a relação das variáveis independentes sobre a dependente (vendas). Se aumenta o preço, dim
Podemos falar em % pois as variáveis preço e vendas foram transformadas por Log Natural. E a variável anúncio

Apenas com Preço


Analisando output regressão
Numa Regressão Linear Múltipla, é preciso tomar CUIDADO com a MULTICOLINEARIDADE.
Uma forma mais automática de detectar associações multicolineares é usando autovetores (eigenvectors)

Autovalores - representando a variância total das variáveis


Valores próximos de zero indicam multicolinearidade.

Imprimindo os autovetores da posição dos autovalores com valor mais próximo de zero

Imprimindo as variáveis das posições dos autovetores com os valores mais distantes de zero

O que corrobora a
informação da matriz
de correlação
Teorema de Bayes

Como ele retorna uma probabilidade, é preciso definir um threshold (um llimiar) para fazer a classificação.
Se ( resultado > x%; 1 ; 0 )

Possível problema: e se nos dados de teste houver uma classe que não havia nos dados de treino? (problema da Frequ
Usar a estimativa de Laplace = 1.

O que precisa ter no report ? (Relatório de Análise da base de dados)

No máximo 15 páginas.

Base da Airbnb
modelo de regressão múltipla
buscar sentido na análise dedados das relações entre as variáveis
justificar a escolha da base de dados
preço por região / bairro do RJ
preço por tipo diferente de propriedade
relacionar preço com quantidade de reviews
Anotações gerais

A estimativa de densidade de kernel (KDE) é uma forma não paramétrica de estimar a função de densidade de probabi
onde as inferências sobre a população são feitas, com base em uma amostra de dados finitos
guintes maneiras:
resulta em um coeficiente de correlação 1. A correlação mede tanto a força como a direção da relação linear entre duas variáveis
enos infinito a mais infinito. Assim, o valor para uma relação linear ideal depende dos dados. Como os dados não são padronizadas, é d

stribuição dos dados é desviada para a direita.


uição dos dados é inclinada para a esquerda

de. O Coeficiente de Variação expressa o quanto da escala de medida, representada pela média, é ocupada pelo desvio-padrão.

osso fazer operações com ela e calcular média? Faria sentido?


ser negativas ou maior que 1.
tra, seráigual a 1.

a (sucesso) eqa probabilidade de que ele não ocorra (insucesso)

os eventos não afeta a probabilidade da realização do outro e vice-versa

clui a realização do(s) outro(s)


e exclusivos

probabilidade de ocorrer. A probabilidade é baseada no conhecimento prévio do processo envolvido.


s resultados são baseados em dados observados e não no conhecimento prévio do processo.
a no passado, opinião pessoal ou análise de algum indivíduo

entos independentes. Cada ensaio é suposto ter apenas dois resultados, seja sucesso ou fracasso
inada área de oportunidades (período de tempo , distância, área, volume) - só com valores discretos

Binomial
lecionado. Poisson
iamente recorrentes.
como p-value < 0,05, rejei
H0 -- > média 1 = média2
H1 --> Média 1 <> média 2

como p-value > 0,05, não se rejeita H0


e podemos considerar os dados com uma distribuição

VIF > 10 é considerado grande


também deve-se ficar atento para valores entre
sugestão é deixar apenas 1 dessas variáveis no

ariáveis do modelo. uma forma para guiar esta decisão, pode-se uti
existe mais de um método e um deles é o Stepw

lusões para este modelo de regressão multiv.

do carro irá aumentar em 2,93 em carros com transmissão manual, em comparação com automático
do carro irá diminuir em 3,9 (milhar por galão) a cada 1000 libras (wt) de aumento de peso do carro.

ara esquerda ou direita (skewness) , pode levar a resultados enganosos.


óximo de zero.

nto (ex: peso do paciente antes e depois de programa de emagrecimento. Para existir a 2a medida, é preciso ter o paciente com mais

ão afetaram o resultado do Teste T.


a entre os dados ]

e diferente de zero? (Teste hipótese F). Se houver ao menos um beta diferente de zero, o p-value será < 0,05 e rejeitaremos hipótese n
ntão ele teste se a parte da variação que é explicada é estatisticamente significativa.
tas são estatisticamente diferentes de zero. (Teste hipótese T)

dependente pelas variáveis independentes do modelo. (Poder de explicação do modelo)


anto preço e anúncio explica a variação da venda?)
as vendas é explicada pela variação no preço.
mais próximo os valores estão, melhor está a especificação do seu modelo, ou seja, não tem muitas variáveis que "não dizem nada" s

scala e pode interpretar o coeficiente em termos de mudança percentual.


ntes (como quilos vendidos e valor preço), ao fazer a transformação por Log Natural, todos ficam na mesma base.
ndas, em média. Poderia identificar o intervalo de confiança com 2 desvios pra cima e pra baixo utilizando o erro padrão.
obre as vendas diminui um pouco, mas é porque agora tem a influência do anúncio também. A cada 1% de acréscimo de anúncio nas l
aumenta o preço, diminui as vendas (por isso negativo). E o inverso acontece com o anúncio.
l. E a variável anúncio já está em %.

Com Preço e Anúncio


Quando estimo uma regressão, os erros precisam ser homocedásticos.
Ou seja, eles devem estar normalmente distribuídos em torno da reta de regressão.
Contextualizando no problema das vendas. Pode gerar um problema no coeficiente da variável indepen
Pode acontecer de para alguns valores o modelo esteja superestimando o efeito do preço e para outros
Quando fica no formato de cone, como as duas figuras da direita, podemos interpretar que quando mai
A intenção é que "eu sempre erre da mesma forma", tanto pra ciam quanto pra baixo, independente da
("eu sempre erre da mesma forma" = distância dos pontos em relação a reta da regressão)

Se você tem um modelo heterocedástico, pode ser que você esteja omitindo alguma variável important

R-quadrado (R²): o quanto o modelo consegue explicar a variação da variável dependente pela v
Quanto maior, melhor. Pode variar de 0 a 1.
Quanto da variabilidade da variável dependente é explicada pela variabilidade das variáve

Erro padrão: ajuda a verificar a confiabilidade da média amostral calculada.


Quanto menor, melhor. Vai variar na mesma escala dos valores analisados, pois po
O intervalo de confiança é calculado a partir do erro padrão.
Para calcular o intervalo de confiança basta multiplicar o erro padrão pelo percenti

p-value: teste de significância global do modelo


há evidência estatística de que ao menos uma variável do modelo influencia
se p-value <0,05 ... Rejeita-se H0 e é possível dizer que ao menos uma variá

p-value: teste de significância individual


há evidência estatística de que esta variável específica influen

R-quadrado ajustado
é sempre um pouco menor que o R²
utilizar para comparar modelos com quantidades diferentes de variá
quanto mais próximo são os valores entre R² e R² ajustado, melhor e
nvectors)

Veja o resultado do modelo considerando


Exemplo:
Qual a probabilidade de praticar um esporte de

Passos:
1 - converter conjunto de dados numa tabela d
2 - criar tabela de probabilidade de cada ocorrê
3 - usar a equação de Bayes para calcular a pro

sificação.

Aplicação:
? (problema da Frequência Zero) Qual aprobabilidade de praticar esporte num d

Base de filmes
qual filme rende mais no mercado doméstico? Filme ou produtora
qual filme rende mais no mercado internacional ? Filme ou produtora
relacionar orçamento com nota e faturamento
desempenho dos estúdios por ano
densidade de probabilidade de uma variável aleatória. A estimativa da densidade do kernel é um problema de suavização de dados fu
e duas variáveis
ão padronizadas, é difícil determinar a força da relação entre as variáveis.

esvio-padrão.
p-value < 0,05, rejeita-se a Hipótese Nula
> média 1 = média2
> Média 1 <> média 2

om uma distribuição normal

to para valores entre 5 e 10


dessas variáveis no modelo

decisão, pode-se utilizar o Método de Seleção de Atributos


e um deles é o Stepwise (seleção gradual) (utiliza coeficiente AIC)
o paciente com mais peso antes, por isso pareado)

eitaremos hipótese nula (H0).

e "não dizem nada" sobre a variável dependente.

mo de anúncio nas lojas aumenta 0,86% nas vendas.

Quanto menor o beta da variável preço, num modelo cuja variável de


saída é a venda, isso significa que o consumidor é mais tolerável ao
aumento de preço, ou seja, um aumento no preço, teria um impacto
menor (representado pelo menor beta) na queda das vendas.
Isso significa que é menor a elsticidade preço-demanda, é menos
sensível ao aumento de preço.
Poderia aumentar o preço sem perder o market share.
da variável independente.
preço e para outros valores subestimando.
etar que quando maior ou menor (direita, do meio) o valor da variável, maior seria o meu erro para estimar.
xo, independente da magnitude da variável independente.

a variável importante para seu modelo.

l dependente pela variação da variável independente.

abilidade das variáveis independentes neste modelo?

s analisados, pois possui a mesma unidade de medida.

padrão pelo percentil associado ao nível de significância observado em uma distribuição normal padrão

do modelo influencia na variável dependente?


ao menos uma variável tem influência

vel específica influencia na variável dependente?

s diferentes de variáveis
² ajustado, melhor está a especificação do seu modelo, ou seja, não tem muitas variáveis que "não dizem nada" sobre a variável depe
odelo considerando mais de uma variável

Porém aqui, os Perceba a diferença


dados não foram depois que você
padronizados antes padroniza os dados
do treinamento do antes de treinar o
modelo modelo
Dados classificados conforme sua importância

aticar um esporte dependento do tempo (clima)?

dados numa tabela de frequência


dade de cada ocorrência e cada combinação
s para calcular a probabilidade de cada classe

aticar esporte num dia de sol?


avização de dados fundamental,
obre a variável dependente.
Exemplo da aula de Marketing Analytics da comunidade Estatidados

Sempre depois de construir um modelos, deve-se analisar por 2 perspectivas:


Primeiro a significância GERAL do modelo: Há, ao menos, um dos betas que é estatisticamente diferente de zero? (Test
O teste F divide a série de dados em duas partes: a variação explicada e não explicada. E então ele teste se a parte d
Segundo a análise INDIVIDUAL dos coeficientes do modelo: Analisar individualmente se os betas são estatisticamente d
(o contexto aqui era regressão simples e múltipla, usando Mínimos Quadrados Ordinários)
O valor R-quadrado ajustado representa o quanto este modelo explica a variação da variável dependente pelas variáve
(exemplo: variável dependente = vendas, variáveis independentes = preço e anúncio. O quanto preço e anúncio exp
No exemplo abaixo, que é uma regressão univriada, poderia dizer que 86,8% da variação das vendas é explicada pel
Uma forma de interpretar a distância entre R-quadrado do R-quadrado ajustado é, quanto mais próximo os valores
Veja como o R-quadrado ajustado aumentou quando incluimos a variável anúncio.
Quando transformo a variável utilizando Log Natural, é uma transf. não linear, suprimindo a escala e pode interpretar o
Isso é importante também porque num modelo que possui variáveis com unidades diferentes (como quilos vendido
Ou seja, no exemplo, posso interpretar que a mudança de 1% no preço afeta -5,9% nas vendas, em média. Poderia
Quando incuímos 2 variáveis independentes no modelo, perceba que o "peso" do preço sobre as vendas diminui um
Perceba também a relação das variáveis independentes sobre a dependente (vendas). Se aumenta o preço, diminui
Podemos falar em % pois as variáveis preço e vendas foram transformadas por Log Natural. E a variável anúncio já e

Apenas com Preço


O que precisa ter no report ? (Relatório de Análise da base de dados)
No máximo 15 páginas.
Base da Airbnb
modelo de regressão múltipla
buscar sentido na análise dedados das relações entre as variáveis
justificar a escolha da base de dados
preço por região / bairro do RJ
preço por tipo diferente de propriedade
relacionar preço com quantidade de reviews

Projeto 1 - Segmentação de Clientes em Food Delivery (DSA)


Como as campanhas de marketing estão impactando nas vendas.
Por que segmentar clientes? Para equipe de mkt adaptar melhor seus esforços de acordo com cada público-alvo.
Criar e comunicar mensagens direcionadas a grupos específicos
Selecionar melhor canal de comunicação para cada segmento (email, rede social, TV, rádio, etc)
Identificar novas oportunidades de produtos ou serviços
Estabelecer melhores relacionamentos com clientes
Testar opções de preço
Concentrar-se nos clientes mais rentáveis
Melhorar atendimento ao cliente
Escolher entre 'venda por atacado' ou 'venda cruzada' de produtos e serviços

Análise exploratória
investigações iniciais dos dados, a fim de descobrir padrões, detectar anomalias, testar hipóteses e verificar suposições
O que fazer:
Extrair variáveis importantes e deixarpara trás variáveis inúteis(nem todas as variáveis no dataset serão relevan
Identificar outliers, valores ausentes ou erro humano.
Compreender os relacionamentos, ou falta de, entre variáveis.
Verificar a distribuiçãoetipodas variáveis

Tipos de problemas no Food Delivery


Clientes compram um tipo específico de comida durante a semana ou no final de semana?
Os clientes fazem este tipo de compra com algo padrão? Quem compra frango, também compra sobremesa?
Existe algum padrão durante as horas do dia? Vende mais no almoço, no jantar?
Em que momento as empresas precisam alocar os recursos para dar conta da demanda?
Em que momento a demanda é mais baixa para poder conservar melhor alimentos perecíveis?

Exemplos de segmentação que pode ser feito dependendo do tipo do negócio


B2B
por tipo de indústria
por número de empregados
produtos comprados anteriormente na empresa
localização
B2C
idade
gênero
estado civil
localização (urbana, suburbana, rural)
estágio da vida (sem filhos, aposentado, etc)
produtos comprados

Projeto 2 - Teste A/B


nte de zero? (Teste hipótese F). Se houver ao menos um beta diferente de zero, o p-value será < 0,05 e rejeitaremos hipótese nula (H0).
e teste se a parte da variação que é explicada é estatisticamente significativa.
estatisticamente diferentes de zero. (Teste hipótese T)

ente pelas variáveis independentes do modelo. (Poder de explicação do modelo)


reço e anúncio explica a variação da venda?)
das é explicada pela variação no preço.
róximo os valores estão, melhor está a especificação do seu modelo, ou seja, não tem muitas variáveis que "não dizem nada" sobre a vari

pode interpretar o coeficiente em termos de mudança percentual.


mo quilos vendidos e valor preço), ao fazer a transformação por Log Natural, todos ficam na mesma base.
m média. Poderia identificar o intervalo de confiança com 2 desvios pra cima e pra baixo utilizando o erro padrão.
vendas diminui um pouco, mas é porque agora tem a influência do anúncio também. A cada 1% de acréscimo de anúncio nas lojas aumen
a o preço, diminui as vendas (por isso negativo). E o inverso acontece com o anúncio.
ariável anúncio já está em %.

Com Preço e Anúncio

Quando estimo uma regressão, os erros precisam ser homocedásticos.


Ou seja, eles devem estar normalmente distribuídos em torno da reta de regressão.
Contextualizando no problema das vendas. Pode gerar um problema no coeficiente da variável independente.
Pode acontecer de para alguns valores o modelo esteja superestimando o efeito do preço e para outros valores sub
Quando fica no formato de cone, como as duas figuras da direita, podemos interpretar que quando maior ou meno
A intenção é que "eu sempre erre da mesma forma", tanto pra ciam quanto pra baixo, independente da magnitude
("eu sempre erre da mesma forma" = distância dos pontos em relação a reta da regressão)
Se você tem um modelo heterocedástico, pode ser que você esteja omitindo alguma variável importante para seu

Base de filmes
qual filme rende mais no mercado doméstico? Filme ou produtora
qual filme rende mais no mercado internacional ? Filme ou produtora
relacionar orçamento com nota e faturamento
desempenho dos estúdios por ano

lico-alvo.

erificar suposições com a ajuda de resumos estatísticos e representações gráficas

aset serão relevantes).

remesa?
mos hipótese nula (H0).

dizem nada" sobre a variável dependente.

anúncio nas lojas aumenta 0,86% nas vendas.

Quanto menor o beta da variável preço, num modelo cuja variável de


saída é a venda, isso significa que o consumidor é mais tolerável ao
aumento de preço, ou seja, um aumento no preço, teria um impacto
menor (representado pelo menor beta) na queda das vendas.
Isso significa que é menor a elsticidade preço-demanda, é menos
sensível ao aumento de preço.
Poderia aumentar o preço sem perder o market share.

ável independente.
e para outros valores subestimando.
e quando maior ou menor (direita, do meio) o valor da variável, maior seria o meu erro para estimar.
ependente da magnitude da variável independente.
vel importante para seu modelo.
Algoritmos para problemas de clusterização
pela conectividade e hierarquia: apresenta-se pelo dendograma de dados
baseado no centróide: K-means
cluster baseado na densidade: DBSCAN. A grande vantagem dele para o K-means é que ele calcula a quantidade de cluste

K-mean
Vantagem
muito rápido, pois tudo o que realmente fazemos é calcular as distâncias entre os pontos e os centros dos grupo
Desvantagem
você tem que selecionar quantos grupos / classes existem. Isso nem sempre é trivial
K-means também começa com uma escolha aleatória de centros de cluster e, portanto, pode produzir resultado

Mean-shift Clustering
tenta encontrar áreas densas de pontos de dados. É baseado em centróide, funciona atualizando candidatos para po
Vantagem
não há necessidade de selecionar o número de clusters, pois o deslocamento médio descobre isso automaticam
Desvantagem
A desvantagem é que a seleção do tamanho / raio da janela "r" pode ser não trivial

Density-Based Spatial Clustering of Applications with Noise (DBSCAN)


DBSCAN é um algoritmo de cluster baseado em densidade semelhante ao deslocamento médio, mas com algumas va
Pode ser um bom algoritmo para identificar outliers também.
Vantagem
não requer um número pe-set de clusters em tudo
identifica outliers como ruídos, ao contrário do desvio da média que simplesmente os joga em um cluster, mesm
ele pode encontrar clusters de tamanhos e formatos arbitrários muito bem
Desvantagem
não tem um desempenho tão bom quanto outros quando os clusters são de densidade variável
Isso ocorre porque a configuração do limite de distância ε e minPoints para identificar os pontos de vizinhança ir

Gaussian Mixture Models (GMMs)


assumimos que os pontos de dados têm distribuição Gaussiana (Normal)
Vantagem
são muito mais flexíveis em termos de covariância de cluster do que K-médias; devido ao parâmetro de desvio p
como os GMMs usam probabilidades, eles podem ter vários clusters por ponto de dados. Portanto, se um ponto
Desvantagem

Agglomerative Hierarchical Clustering


top-down (descendente) ou bottom-up (ascendente)
Algoritmos ascendentes tratam cada ponto de dados como um único cluster no início e, em seguida, mesclam (ou agl
O agrupamento hierárquico ascendente é, portanto, denominado agrupamento aglomerativo hierárquico ou HAC. Es
Vantagem
não exige que especifiquemos o número de clusters e podemos até selecionar qual número de clusters parece m
o algoritmo não é sensível à escolha da métrica de distância; todos eles tendem a funcionar igualmente bem, ao
Desvantagem

Abaixo temos uma imagem clássica de comportamentos de alguns algoritmos para classificação de grupos em alguns ce
dendograma
a a quantidade de clusters de forma automárica.

os e os centros dos grupos

pode produzir resultados de clustering diferentes em execuções diferentes do algoritmo

ndo candidatos para pontos centrais para serem a média dos pontos dentro da janela deslizante. Essas janelas candidatas são então filtra

cobre isso automaticamente K-means

dio, mas com algumas vantagens notáveis

ga em um cluster, mesmo se o ponto de dados for muito diferente

s pontos de vizinhança irá variar de cluster para cluster quando a densidade varia

o parâmetro de desvio padrão, os clusters podem assumir qualquer forma de elipse, ao invés de serem restritos a círculos
s. Portanto, se um ponto de dados estiver no meio de dois clusters sobrepostos = mixed membership

eguida, mesclam (ou aglomeram) sucessivamente pares de clusters até que todos os clusters tenham sido mesclados em um único cluster
o hierárquico ou HAC. Esta hierarquia de clusters é representada como uma árvore (ou dendrograma).

mero de clusters parece melhor, já que estamos construindo uma árvore.


onar igualmente bem, ao passo que com outros algoritmos de agrupamento, a escolha da métrica de distância é crítica
de grupos em alguns cenários:
endograma

tas são então filtradas em um estágio de pós-processamento para eliminar duplicatas, formando o conjunto final de pontos centrais e seu

por densidade

m um único cluster que contém todos os pontos de dados


ontos centrais e seus grupos correspondentes

Você também pode gostar