Machine Learning Flashcards
O que é SVM ?
As Máquinas de Vetores de Suporte (SVM), também conhecidas como classificadores de margem larga, são notáveis pela capacidade de aprender complexas funções não lineare. Essa capacidade faz delas uma escolha popular numa variedade de campos, incluindo bioinformática, mineração de texto e reconhecimento de imagem. A performance empírica das SVM é frequentemente destacada como excelente nesses domínios, superando muitas vezes outros métodos, como a regressão logística, especialmente quando os dados não são linearmente separáveis.
Hiperplanos nos SVM
O hiperplano ótimo é aquele que maximiza a margem de separação entre as classes no conjunto de treinamento.
Em SVMs lineares: linha reta que separa as classes no espaço de características.
Em problemas mais complexos, onde as classes não são linearmente separáveis, são utilizados truques matemáticos, como o truque do kernel: gausiano, polinomial, sigmoide. qui quadradi, stings, interceção de histograma
Hiperplano soft-margin: Utilizado quando os dados não são linearmente separáveis e permite que alguns pontos de treinamento fiquem dentro da margem ou até mesmo do lado errado do hiperplano, introduzindo uma certa tolerância de erro.
Ajuste de parâmetros nos SVM’s
O ajuste dos parâmetros em SVM envolve a formulação de um problema de minimização através do gradiente descendente.
Nesse processo, o objetivo é minimizar uma função de custo, como a função de perda de Hinge, que é comumente usada em SVMs para problemas de classificação.
A função de custo é fundamental para guiar o processo de treinamento, ajudando o algoritmo a encontrar os parâmetros que melhor se ajustam aos dados de treinamento, ao mesmo tempo em que mantém a margem de separação entre as classes tão grande quanto possível.
O gradiente descendente é então aplicado para iterativamente ajustar os parâmetros até que a função de custo seja minimizada, resultando numa fronteira de decisão ótima para o problema de classificação.
Classificação Multiclasse SVM
O método “one-vs-all” é uma abordagem que envolve treinar vários classificadores binários. Para cada classe no conjunto de dados, um classificador SVM é treinado para distinguir entre exemplos dessa classe e exemplos de todas as outras classes. Durante a previsão, todas as SVMs treinadas são aplicadas e a classe atribuída à nova amostra é aquela com a maior pontuação entre todas as SVMs. Isso permite o uso eficiente de SVMs para problemas de classificação multiclasse.
Classificação Hierárquica
Em geral, os dados taxonômicos são percebidos como uma informação estruturada, denotando uma hierarquia. Os classificadores para lidar com esses dados têm que tomar decisões com base em um conjunto de regras inherentemente hierárquicas.
Decision Tree
Uma árvore de decisão depende da capacidade de dividir os dados com base nas informações das características. É uma estrutura semelhante a um fluxograma, na qual:
- Cada nó representa um “teste” de um atributo
- Cada aresta representa o resultado de um teste.
- Cada nó folha representa um rótulo de classe (decisão tomada após calcular todos os atributos).
- Os caminhos da raiz até as folhas representam as regras de classificação.
O objetivo é alcançar uma classificação ou estimativa perfeita com o menor número possível de decisões. No entanto, isso nem sempre é possível devido ao ruído e/ou inconsistências nos dados. Em geral:
- As árvores de decisão podem lidar com um número arbitrário de atributos, que podem ser binários, multivalorados ou contínuos.
- A saída pode ser binária (por exemplo, “sim” ou “não”), multivalorada (para árvores de classificação) ou contínua (para árvores de regressão).
O desafio é encontrar a estrutura da árvore que melhor se ajusta aos dados, dividindo-os de maneira eficiente para alcançar a melhor classificação ou estimativa possível. Isso pode envolver a poda da árvore para evitar o sobreajuste e garantir que a árvore seja generalizável para novos dados.
Construção de uma Árvore de decisão
ESTRATÉRGIIA DIVIDIR PARA CONQUISTAR:
Selecionar um Teste para a Raiz: selecionar um atributo e um teste para dividir os dados na raiz da árvore(geralmente escolhe-se o teste que melhor separa as classes ou reduz a impureza nos dados)
Dividir Instâncias em Subconjuntos: Com base no resultado do teste selecionado, as instâncias são divididas em subconjuntos, um para cada resultado possível do teste.
Repetir Recursivamente: Selecionar um novo teste para cada subconjunto e repetir o processo até que certos critérios de paragem sejam atendidos, como todas as instâncias de um subconjunto pertencerem à mesma classe ou a profundidade máxima da árvore ser atingida.
O que é um bom atributo?
Um bom atributo divide os dados de forma a que cada nó sucessor seja o mais “puro” possível. Por “puro”, entende-se que a distribuição de exemplos em cada nó contenha principalmente exemplos de uma única classe.
Quanto mais “informação” um atributo nos dá sobre essa classe?
Isso pode ser visto como uma medida de ordem.
- Máxima ordem significa que todos os exemplos são da mesma classe ou seja o nó é completamente puro
- Mínima ordem significa que todas as classes são igualmente prováveis.
Um bom atributo é aquele que maximiza a ordem em cada nó filho após a divisão, ou seja, reduz a incerteza sobre a classe dos exemplos em cada nó filho. Isso é frequentemente medido por métricas como a entropia ou o índice de Gini
Entropia como medição da informação
- Atributos que particionam perfeitamente devem fornecer informação máxima
- Atributos não relacionados não devem fornecer informação
A redução da entropia de um atributo X após aprender Y é conhecida como o ganho de informação entre Y e X (ou informação mútua).
Em cada nó, escolher o atributo que maximiza o ganho de informação
com base na entropia escolhe-se a característica a testar
Clustering
Às vezes, os dados exibem uma estrutura de acordo com alguma medida de distância. É possível agrupar coleções de pontos em “clusters” que compartilham alguma similaridade.
- Agrupar de modo que pontos de dados no mesmo cluster sejam “similares”.
- Pontos de dados em clusters diferentes sejam “dissimilares”.
Interessam situações onde:
-Os dados são muito grandes.
-Os dados estão em espaços de alta dimensão.
-O espaço pode não ser euclidiano.
-Os dados podem não caber na memória principal.
Clustering é geralmente feito em espaços de alta dimensão, podendo ser de 10, 100 ou até mais dimensões, contudo por vezes a maioria dos pares de pontos estão igualmente distantes um do outro.
Mesmo em duas dimensões, a clusterização pode ser mais difícil do que o esperado.
Estratégias de Clustering
Hierárquico ou aglomerativo:
Cada ponto começa no seu próprio cluster.
Os clusters são agregados com base na sua “proximidade”.
A agregação stop quando mais agregação levar a clusters indesejáveis.
Construção de um dendrograma
Abordagem algorítmica aglomerativa
* No início, cada ponto é um cluster
* Para repetir: combinar dois clusters “mais próximos” num só
Atribuição de pontos:
Os pontos são considerados com alguma ordem.
Geralmente há uma fase curta onde os clusters iniciais são estimados.
Cada ponto é atribuído ao cluster no qual melhor se encaixa, tipicamente o cluster “mais próximo”.
Representação de clusters e Medidas de distância
- A distância é sempre não negativa, e somente a distância entre um ponto e ele mesmo é 0.
- A distância é simétrica.
- A distância deve obedecer à desigualdade do triângulo.
Um cluster pode ser representado por seu centróide ou pela média dos pontos no cluster.
Como escolher quais dois clusters unir?
Euclideana
Usar a distância euclidiana entre os centróides para determinar os mais próximos.
Jaccard para dissimilaridade entre conjuntos
Cosseno: Faz sentido em espaços euclidianos ou versões discretas de espaços euclidianos, como espaços onde os pontos são vetores com componentes inteiros ou booleanos (0 ou 1). Os pontos são considerados como direções; não distinguimos entre um vetor ou um múltiplo desse vetor.
Distância de edição LCS:
Usada quando os pontos são strings (cadeias de caracteres). A distância de edição da subsequência comum mais longa (LCS) entre duas strings é o menor número de inserções e exclusões de um único caractere (sem substituições) que converterá x em y.
Distância de Hamming:
A distância de Hamming entre dois vetores é o número de componentes nas quais eles diferem. Exemplo: A distância de Hamming entre os vetores 10110 e 11101 é 3.
K-Means: Estratégia para atribuição de pontos a um cluster
Algoritmo de clustering popular
* Todos os pontos de dados são do tipo quantitativo, assim assume um espaço/distância euclidiano para definir “similaridade” entre os pontos de dados
* O número de clusters k é definido antecipadamente
Algoritmo
1ºInicializa todos os clusters escolhendo um ponto para cada cluster aleatoriamente (ou pelo menos o mais distante possível um do outro)
2ºAtribui cada ponto ao centróide mais próximo
3ºCalcula o novo centróide para cada cluster
4º Reatribui todos os pontos ao seu centróide mais próximo (os pontos podem se mover entre clusters)
5º Repetir os passos 2 - 4 até que nenhum ponto seja reatribuído
Impacto e escolha de k
Aumentar k - no limite, teremos um cluster para cada ponto.
Diminuir k - o diâmetro médio dos clusters aumentará.
Método do “cotovelo”:
1º Plotar uma medida relacionada ao cluster, como seu raio médio, diâmetro ou erro global médio (por exemplo, considerando a soma dos quadrados das distâncias dos pontos ao centróide do cluster), em função de k.
2º Escolha para k o valor onde o gráfico muda abruptamente, ou seja, num ponto de inflexão. Isso significaria que um cluster adicional não entregaria uma melhor separação de clusters para justificar o aumento de k.
Outros algoritmos de Clustering
Algoritmos tradicionais podem dividir erroneamente grandes clusters ao tentar minimizar o erro quadrático.
Existem algoritmos alternativos mais robustos a outliers, lidando com formas não esféricas, já que clusters não precisam ser normalmente distribuídos e podem ter curvas estranhas, formas de S ou até mesmo anéis.
Exemplos de algumas alternativas:
CURE (Agrupamento Usando Representantes), que representa clusters por meio de um conjunto de representantes.
DBSCAN, que utiliza a densidade de pontos como fator principal para atribuir pontos a clusters.