A aprendizagem de máquinas é a ciência (e arte) da programação de computadores para que possam aprender com os dados.
campo de estudo que dá aos computadores a capacidade de aprender sem ser explicitamente programado. – Arthur Samuel, 1959
Uma melhor definição:
>
Diz-se que um programa de computador aprende da experiência E com respeito a alguma tarefa T e alguma medida de desempenho P, se o seu desempenho em T, como medido por P, melhora com a experiência E. – Tom Mitchell, 1997
Por exemplo, o seu filtro de spam é um programa de aprendizagem de máquinas que pode aprender a sinalizar spam após receber exemplos de emails de spam que são sinalizados pelos utilizadores, e exemplos de emails regulares que não são spam (também chamados de “ham”). Os exemplos que o sistema usa para aprender são chamados de conjunto de treinamento. Neste caso, a tarefa (T) é sinalizar spam para novos emails, a experiência (E) são os dados de treinamento e a medida de desempenho (P) precisa ser definida. Por exemplo, você pode usar a proporção de e-mails corretamente classificados como P. Esta medida de desempenho particular é chamada de precisão e é frequentemente usada em tarefas de classificação, pois é uma abordagem de aprendizagem supervisionada.
Dive DeeperAn Introduction to Machine Learning for Beginners
Supervised Learning
Na aprendizagem supervisionada, os algoritmos aprendem a partir de dados etiquetados. Após a compreensão dos dados, o algoritmo determina qual etiqueta deve ser dada aos novos dados associando padrões aos novos dados não rotulados.
Aprendizagem supervisionada pode ser dividida em duas categorias: classificação e regressão.
A classificação prevê a categoria à qual os dados pertencem.
Alguns exemplos de classificação incluem detecção de spam, previsão de churn, análise de sentimentos, detecção de raça de cão e assim por diante.
Regressão prediz um valor numérico baseado em dados previamente observados.
Alguns exemplos de regressão incluem a previsão do preço da casa, previsão do preço das ações, previsão de altura-peso e assim por diante.
Dive DeeperA Tour of the Top 10 Algorithms for Machine Learning Newbies
Classificação
Classificação é uma técnica para determinar a que classe o dependente pertence com base em uma ou mais variáveis independentes.
Classificação é usada para prever respostas discretas.
Regressão logística
Regressão logística é como a regressão linear, mas é usada quando a variável dependente não é um número, mas algo mais (por exemplo, uma resposta de “sim ou não”). É chamada de regressão mas executa classificação baseada na regressão e classifica a variável dependente em uma das classes.
Regessão logística é usada para predição de output que é binária, como dito acima. Por exemplo, se uma companhia de cartão de crédito constrói um modelo para decidir se deve ou não emitir um cartão de crédito a um cliente, ela modelará se o cliente vai “padrão” ou “não padrão” no seu cartão.
>
Primeiro, a regressão linear é realizada na relação entre as variáveis para obter o modelo. O limiar para a linha de classificação é assumido em 0,5,
>
K-Nearest Neighbors (K-NN)
K-NN algoritmo é um dos mais simples algoritmos de classificação e é usado para identificar os pontos de dados que são separados em várias classes para prever a classificação de um novo ponto de amostra. O K-NN é um algoritmo não paramétrico e preguiçoso de aprendizagem. Ele classifica novos casos com base em uma medida de similaridade (ou seja funções de distância).
K-NN funciona bem com um pequeno número de variáveis de entrada (p), mas luta quando o número de entradas é muito grande.
Máquina vetorial de suporte (SVM)
Vetor de suporte é usado tanto para a regressão como para a classificação. É baseado no conceito de planos de decisão que definem os limites da decisão. Um plano de decisão (hiperplano) é aquele que separa entre um conjunto de objetos com diferentes classes de membros.
>
Realiza a classificação encontrando o hiperplano que maximiza a margem entre as duas classes com a ajuda de vetores de suporte.
A aprendizagem do hiperplano em SVM é feita transformando o problema usando alguma álgebra linear (i.e, o exemplo acima é um kernel linear que tem uma separabilidade linear entre cada variável).
Para dados dimensionais superiores, outros kernels são usados como pontos e não podem ser classificados facilmente. Eles são especificados na próxima seção.
Kernel SVM
Kernel SVM assume uma função do kernel no algoritmo SVM e o transforma na forma requerida que mapeia os dados em uma dimensão superior que é separável.
Tipos de função do kernel são:
- SVM linear é aquele que discutimos anteriormente.
- No kernel polinomial, o grau do polinomial deve ser especificado. Ele permite linhas curvas no espaço de entrada.
- No kernel da função base radial (RBF), ele é usado para variáveis não-lineares separáveis. Para distância, é usada a distância Euclidiana métrica ao quadrado. O uso de um valor típico do parâmetro pode levar a sobreajustar os nossos dados. Ele é usado por padrão no sklearn.
- Kernel Sigmoid, semelhante à regressão logística é usado para classificação binária.
Kernel trick usa a função kernel para transformar dados em um espaço de característica dimensional superior e torna possível realizar a separação linear para classificação.
O Kernel da Função Base Radial (RBF)
A região de decisão SVM do kernel RBF é na verdade também uma região de decisão linear. O que o kernel SVM do RBF realmente faz é criar combinações não lineares de características para elevar as amostras para um espaço de características de maior dimensão onde um limite de decisão linear pode ser usado para separar classes.
Então, a regra geral é: use SVMs lineares para problemas lineares, e kernels não lineares como o kernel RBF para problemas não lineares.
Naive Bayes
O classificador ingênuo Bayes é baseado no teorema de Bayes com as suposições de independência entre os preditores (ou seja assume que a presença de uma característica em uma classe não está relacionada a nenhuma outra característica). Mesmo que estas características dependam umas das outras, ou da existência das outras características, todas estas propriedades são independentes. Assim, o nome Bayes naive.
Baseado em Bayes naive, Bayes naive gaussiano é usado para classificação baseada na distribuição binomial (normal) de dados.
- P(class|data) é a probabilidade posterior de classe(target) dado predictor(attribute). A probabilidade de um ponto de dados ter qualquer uma das classes, dado o ponto de dados. Este é o valor que estamos procurando calcular.
- P(class) é a probabilidade anterior da classe.
- P(data|class) é a probabilidade, que é a probabilidade do preditor dada a classe.
- P(data) é a probabilidade prévia de preditor ou probabilidade marginal.
Steps
1. Cálculo da Probabilidade Prévia
P(classe) = Número de pontos de dados na classe/Nº total de observações
P(amarelo) = 10/17
P(verde) = 7/17
2. Calculate Marginal Likelihood
P(data) = Número de pontos de dados semelhantes à observação/Nº total de observações
P(?) = 4/17
O valor está presente na verificação das duas probabilidades.
3. Cálculo da Probabilidade
P(dados/classe) = Número de observações semelhantes à classe/Nº total de pontos da classe.
P(?/amarelo) = 1/7
P(?) = 4/17
P(?/verde) = 3/10
4. Probabilidade Posterior para Cada Classe
5. Classificação
>
A maior probabilidade, a classe pertence a essa categoria a partir de 75% de probabilidade o ponto pertence à classe verde.
Multinomial, Bernoulli naive Bayes são os outros modelos utilizados no cálculo das probabilidades. Assim, um modelo Bayes ingênuo é fácil de construir, sem estimação de parâmetros iterativos complicados, o que o torna particularmente útil para conjuntos de dados muito grandes.
Decision Tree Classification
Decision tree constrói modelos de classificação ou regressão na forma de uma estrutura de árvore. Ela divide um conjunto de dados em subconjuntos cada vez menores, ao mesmo tempo em que uma árvore de decisão associada é incrementalmente desenvolvida. O resultado final é uma árvore com nós de decisão e nós de folha. Segue a estrutura do algoritmo Iterative Dichotomiser 3(ID3) para determinar a divisão.
Entropia e ganho de informação são usados para construir uma árvore de decisão.
Entropia
Entropia é o grau ou quantidade de incerteza na aleatoriedade dos elementos. Em outras palavras, é uma medida de impureza.
Intuitivamente, ela nos informa sobre a previsibilidade de um determinado evento. A entropia calcula a homogeneidade de uma amostra. Se a amostra é completamente homogênea a entropia é zero, e se a amostra é dividida igualmente tem uma entropia de um.
Ganho de informação
Ganho de informação mede a mudança relativa na entropia com respeito ao atributo independente. Ele tenta estimar as informações contidas por cada atributo. Construir uma árvore de decisão é tudo sobre encontrar o atributo que retorna o maior ganho de informação (i.e, os ramos mais homogêneos).
Where Gain(T, X) é o ganho de informação pela aplicação da característica X. Entropia(T) é a entropia de todo o conjunto, enquanto o segundo termo calcula a entropia após a aplicação da característica X.
O ganho de informação classifica os atributos para filtragem em um determinado nó na árvore. A classificação é baseada no maior ganho de entropia de informação em cada divisão.
A desvantagem de um modelo de árvore de decisão é a sobreposição, pois tenta se ajustar ao modelo indo mais fundo no conjunto de treinamento e assim reduzindo a precisão do teste.
O sobreajustamento em árvores de decisão pode ser minimizado através de nós de poda.
Métodos de montagem para classificação
Um modelo de conjunto é uma equipe de modelos. Tecnicamente, os modelos de ensamblagem compreendem vários modelos de aprendizagem supervisionada que são treinados individualmente e os resultados fundidos de várias maneiras para alcançar a previsão final. Este resultado tem maior poder preditivo do que os resultados de qualquer um dos seus algoritmos constituintes de aprendizagem independentemente.
Random Forest Classification
Random forest classifier é um algoritmo de ensamble baseado em ensacamento ou seja, agregação de bootstrap. Os métodos de ensemble combinam mais de um algoritmo do mesmo tipo ou diferente para classificação de objetos (ou seja um conjunto de SVM, Bayes ingênuo ou árvores de decisão, por exemplo.)
A idéia geral é que uma combinação de modelos de aprendizagem aumenta o resultado geral selecionado.
Deep decision trees may suffer from overfitting, but random forest prevent overfitting by creating trees on random subsets. A principal razão é que ele toma a média de todas as previsões, o que anula os vieses.
Florestas aleatórias adiciona aleatoriedade adicional ao modelo enquanto as árvores crescem. Em vez de procurar a característica mais importante ao dividir um nó, ele procura a melhor característica entre um subconjunto aleatório de características. Isto resulta em uma grande diversidade que geralmente resulta em um modelo melhor.
Gradient Boosting Classification
Gradient boosting classifier é um método de conjunto de boosting. Boosting é uma forma de combinar (conjunto) alunos fracos, principalmente para reduzir o viés de predição. Em vez de criar um conjunto de preditores, como no ensacamento, o boosting produz uma cascata deles, onde cada output é o input para o seguinte aprendiz. Normalmente, em um algoritmo de ensacamento, as árvores são cultivadas em paralelo para obter a previsão média em todas as árvores, onde cada árvore é construída sobre uma amostra de dados originais. Por outro lado, a estimulação gradual, por sua vez, faz uma abordagem sequencial para obter previsões em vez de paralelizar o processo de construção das árvores. No reforço de gradiente, cada árvore de decisão prevê o erro da árvore de decisão anterior – assim reforçando (melhorando) o erro (gradiente).
Trabalho de Reforço de Gradiente
- Inicializar previsões com uma árvore de decisão simples.
- Calcular o valor residual (previsão real).
- Build outra árvore de decisão rasa que prevê residual com base em todos os valores independentes.
- Atualizar a previsão original com a nova previsão multiplicada pela taxa de aprendizagem.
- Repetir os passos dois a quatro para um certo número de iterações (o número de iterações será o número de árvores).
Checkout this post: Gradient Boosting From Scratch
Classificação Desempenho do Modelo
Matriz de Confusão
Uma matriz de confusão é uma tabela que é frequentemente usada para descrever o desempenho de um modelo de classificação em um conjunto de dados de teste para os quais os valores verdadeiros são conhecidos. É uma tabela com quatro combinações diferentes de valores previstos e reais no caso de um classificador binário.
A matriz de confusão para um problema de classificação multiclasse pode ajudá-lo a determinar padrões de erro.
Para um classificador binário:
Um verdadeiro positivo é um resultado onde o modelo prevê corretamente a classe positiva. Da mesma forma, um verdadeiro negativo é um resultado onde o modelo prediz corretamente a classe negativa.
Falso Positivo &Falso Negativo
Os termos falso positivo e falso negativo são usados para determinar o quão bem o modelo está predizendo com relação à classificação. Um falso positivo é um resultado em que o modelo prevê incorrectamente a classe positiva. E um falso negativo é um resultado em que o modelo prediz incorretamente a classe negativa. Quanto mais valores na diagonal principal, melhor o modelo, enquanto a outra diagonal dá o pior resultado para a classificação.
Falso Positivo
Um exemplo em que o modelo previu erroneamente a classe positiva. Por exemplo, o modelo inferiu que uma determinada mensagem de e-mail era spam (a classe positiva), mas que a mensagem de e-mail na verdade não era spam. É como um sinal de aviso que o erro deve ser corrigido, pois não é uma preocupação muito séria em comparação com o falso negativo.
Falso positivo (erro do tipo I) – quando se rejeita uma hipótese nula verdadeira
Falso negativo
Um exemplo em que o modelo previu erroneamente a classe negativa. Por exemplo, o modelo inferiu que uma determinada mensagem de e-mail não era spam (a classe negativa), mas que na verdade a mensagem de e-mail era spam. É como um sinal de perigo que o erro deve ser retificado mais cedo pois é mais grave que um falso positivo.
Falso negativo (erro tipo II) – quando você aceita uma falsa hipótese nula.
Esta imagem ilustra perfeitamente as métricas acima. Os resultados dos testes do homem são um falso positivo uma vez que um homem não pode estar grávida. Os resultados dos testes da mulher são um falso negativo porque ela está claramente grávida.
Da matriz de confusão, podemos inferir exatidão, precisão, recall e pontuação F-1.
Acuracidade
Acuidade é a fração de previsões que nosso modelo acertou.
A precisão também pode ser escrita como
A precisão por si só não conta a história completa quando se trabalha com um conjunto de dados equilibrado de classe, onde existe uma disparidade significativa entre o número de etiquetas positivas e negativas. Precisão e recall são melhores métricas para avaliar problemas de classe-imbalanceados.
Precisão
Sai de todas as classes, precisão é o quanto previmos corretamente.
Precisão deve ser a maior possível.
Recall
Sai de todas as classes positivas, recall é o quanto previmos corretamente. Também é chamado de sensibilidade ou taxa positiva verdadeira (TPR).
>
Recall deve ser o mais alto possível.
F-1 Score
É muitas vezes conveniente combinar precisão e recuperação em uma única métrica chamada pontuação F-1, particularmente se você precisar de uma maneira simples de comparar dois classificadores. A pontuação F-1 é a média harmónica da precisão e da recordação.
A média regular trata todos os valores igualmente, enquanto a média harmónica dá muito mais peso aos valores baixos, punindo assim mais os valores extremos. Como resultado, o classificador só obterá uma pontuação F-1 alta se tanto a recordação como a precisão forem altas.
Curva do operador do receptor (ROC) &Área sob a curva (AUC)
Curva doROC é uma importante métrica de avaliação de classificação. Ela nos diz o quão bem o modelo previu com precisão. A curva ROC mostra a sensibilidade do classificador, traçando a taxa de verdadeiros positivos para a taxa de falsos positivos. Se o classificador for excepcional, a taxa de verdadeiros positivos aumentará, e a área sob a curva será próxima a um. Se o classificador for semelhante à adivinhação aleatória, a taxa de verdadeiros positivos aumentará linearmente com a taxa de falsos positivos. Quanto melhor a medida da AUC, melhor o modelo.
Cumulativa Curva de Perfil de Precisão
O CAP de um modelo representa o número cumulativo de resultados positivos ao longo do eixo y versus o número cumulativo correspondente de um parâmetro classificador ao longo do eixo x. O CAP é distinto da característica operacional do receptor (ROC), que plota a taxa true-positive contra a taxa false-positive. A curva CAP é raramente usada em comparação com a curva ROC.
Considerar um modelo que prevê se um cliente vai comprar um produto. Se um cliente for selecionado aleatoriamente, há 50% de chances de comprar o produto. O número cumulativo de elementos para os quais o cliente compra subiria linearmente em direção a um valor máximo correspondente ao número total de clientes. Esta distribuição é chamada de CAP “aleatório”. É a linha azul no diagrama acima. Uma previsão perfeita, por outro lado, determina exatamente qual cliente comprará o produto, de tal forma que o cliente máximo que comprar o imóvel será alcançado com um número mínimo de seleção de clientes entre os elementos. Isto produz uma linha íngreme na curva CAP que permanece plana uma vez atingido o máximo, que é o CAP “perfeito”. Também é chamada de linha “ideal” e é a linha cinza na figura acima.
No final, um modelo deve prever onde maximiza as previsões corretas e se aproxima de uma linha de modelo perfeito.