10 Algoritmos de Machine Learning que você precisa conhecer
Não há dúvida de que o subcampo de Machine Learning/ Inteligência Artificial ganhou cada vez mais popularidade nos últimos dois anos. Como Big Data é a tendência mais quente na indústria de tecnologia no momento, o Machine Learning é incrivelmente poderoso para fazer previsões ou sugestões calculadas com base em grandes quantidades de dados.
Alguns dos exemplos mais comuns de algoritmos de ML são os da Netflix, que fazem sugestões de filmes baseados naqueles que você assistiu no passado, e os da Amazon, que recomendam livros com base nos que você comprou anteriormente.
Portanto, se você quer saber mais de Machine Learning, como começar? A minha introdução na área foi em uma classe de Inteligência Artificial, quando eu estava estudando em Copenhague. Meu orientador foi um professor de Matemática Aplicada e CS na Universidade Técnica da Dinamarca, focando principalmente o uso da lógica para modelar o planejamento, o raciocínio e a resolução de problemas humanos. A classe era uma mistura de discussão de conceitos teóricos e prática de resolução de problemas.
O livro didático que usamos é um dos clássicos da IA: a Inteligência Artificial de Peter Norvig – Uma Abordagem Moderna, na qual abordamos tópicos importantes, incluindo agentes inteligentes, resolução de problemas por busca, pesquisa adversarial, teoria de probabilidade, sistemas multiagentes, IA social, filosofia/ética/futuro da IA. No final da aula, em uma equipe de 3, implementamos agentes baseados na busca simples, solucionando tarefas de transporte em um ambiente virtual como um projeto de programação.
Eu aprendi muito graças à classe e decidi continuar aprendendo sobre este tema especializado. Nas últimas semanas, eu tenho tido várias conversas de tecnologia em São Francisco sobre Deep Learning, redes neurais, arquitetura de dados e uma conferência de Machine Learning com muitos profissionais bem conhecidos no campo. Mais importante ainda, eu fiz um curso on-line da Udacity Intro to Machine Learning. Neste post, eu quero compartilhar alguns dos algoritmos de Machine Learning mais comuns que eu aprendi com o curso.
Os algoritmos de Machine Learning podem ser divididos em 3 categorias: aprendizagem supervisionada, aprendizagem não supervisionada e aprendizado por reforço. A aprendizagem supervisionada é útil nos casos em que uma propriedade (rótulo) está disponível para um determinado conjunto de dados (conjunto de treinamento). O aprendizado não supervisionado é útil nos casos em que o desafio é descobrir relacionamentos implícitos em um dado conjunto de dados não-rotulado (os itens não são pré-atribuídos). O aprendizado de reforço está entre estes dois extremos – existe alguma forma de feedback disponível para cada passo ou ação preditiva, mas sem etiqueta precisa ou mensagem de erro.
Uma vez que esta é uma classe de introdução, eu não aprendi sobre aprendizado por reforço, mas espero que 10 algoritmos de aprendizagem supervisionada e não supervisionada sejam suficientes para mantê-lo interessado(a).
Aprendizagem Supervisionada
1.Árvores de Decisão
Uma árvore de decisão é uma ferramenta de apoio que utiliza um gráfico ou modelo de decisões e suas possíveis consequências, incluindo resultados de eventos fortuitos, custos de recursos e utilidade. Dê uma olhada na imagem para ter uma ideia de como ela se parece.

Do ponto de vista da decisão de negócios, uma árvore de decisão é o número mínimo de perguntas que devem ser respondidas para avaliar a probabilidade de tomar uma decisão correta, na maioria das vezes. Como um método, permite-lhe abordar o problema de uma forma estruturada e sistemática para chegar a uma conclusão lógica.
2.Classificação Naïve Bayes
Os classificadores Naïve Bayes são uma família de classificadores probabilísticos simples com base na aplicação Bayes ‘teorema com forte independência entre as características. A imagem em destaque é a equação – em que P (A| B) é a probabilidade posterior, P (B|A) é a probabilidade, P (A) é a probabilidade prévia e P (B) é preditor de probabilidade prévia.

Alguns exemplos reais são:
- Para marcar um e-mail como spam ou não spam
- Classificar um artigo de notícias sobre tecnologia, política ou esportes
- Verificar um pedaço de texto expressando emoções positivas ou negativas
- Usado para software de reconhecimento facial
3. Regressão Linear de Mínimos Quadrados
Se você conhece estatísticas, provavelmente já ouviu falar de regressão linear antes. Least Squares é um método para a realização de regressão linear. Você pode pensar em regressão linear como a tarefa de encaixar uma linha reta através de um conjunto de pontos. Existem várias estratégias possíveis para isso e a de “mínimos quadrados comuns” é assim: você pode desenhar uma linha e, em seguida, para cada um dos pontos de dados, medir a distância vertical entre o ponto e a linha e somá-los. A linha ajustada seria aquela em que esta soma de distâncias é a menor possível.

Linear refere-se ao tipo de modelo que você está usando para ajustar os dados, enquanto mínimos quadrados refere-se ao tipo de métrica de erro que você está minimizando.
4.Regressão logística
A regressão logística é uma poderosa forma estatística de modelar um resultado binomial com uma ou mais variáveis explicativas. Ela mede a relação entre a variável dependente categórica e uma ou mais variáveis independentes, estimando as probabilidades usando uma função logística, que é a distribuição logística cumulativa.

E geral, as regressões podem ser usadas em aplicações reais, tais como:
- Pontuação de crédito
- Medir as taxas de sucesso das campanhas de marketing
- Prever as receitas de um determinado produto
- Haverá um terremoto em um determinado dia?
5. Support Vector Machine
SVM é um algoritmo binário da classificação. Dado um conjunto de pontos de 2 tipos em lugar N dimensional, SVM gera um hiperplano (N – 1) dimensional para separar esses pontos em 2 grupos. Digamos que você tem alguns pontos de 2 tipos em um papel que são linearmente separáveis. SVM encontrará uma linha reta que separa esses pontos em 2 tipos e situados o mais longe possível de todos esses pontos.

Em termos de escala, alguns dos maiores problemas que foram resolvidos usando SVMs (com implementações adequadamente modificadas) são publicidades em display, reconhecimento de site de splice humano, detecção de gênero baseada em imagem, classificação de imagem em grande escala etc.
6. Ensemble Methods
São algoritmos de aprendizagem que constroem um conjunto de classificadores e, em seguida, classificam novos pontos de dados, tendo um ponderado voto de suas previsões. O método de conjunto original é a média bayesiana, mas os algoritmos mais recentes incluem codificação de saída, correção de erros, bagging e reforço.

Então, como funcionam os métodos de conjunto e por que eles são superiores aos modelos individuais?
- Eles reduzem a variância: A opinião agregada de um monte de modelos é menos barulhenta do que a opinião única de um dos modelos. Em finanças, isso é chamado diversificação – uma carteira mista de muitas ações será muito menos variável do que apenas um dos estoques sozinho. É por isso que seus modelos serão melhores com mais pontos de dados do que menos.
- É improvável que eles se sobrepõem: se você tem modelos individuais que não se sobrepõem e está combinando as previsões de cada modelo de uma maneira simples (média, média ponderada, regressão logística), então não há espaço para sobrecarga.
Aprendizagem sem supervisão
7. Algoritmos de Agrupamento (Clustering)
É a tarefa de agrupar um conjunto de objetos de tal forma que os do mesmo grupo (cluster) são mais semelhantes uns aos outros do que aqueles em outros grupos.

Cada algoritmo de agrupamento é diferente, e aqui estão alguns deles:
- Algoritmos baseados em Centroid
- Algoritmos baseados em conectividade
- Algoritmos baseados em densidade
- Probabilístico
- Redução da Dimensionalidade
- Redes Neurais / Aprendizagem Profunda
8. Decomposição em valores singulares
Na álgebra linear, a SVD é uma fatorização de uma matriz complexa real. Para uma dada matriz m* n M, existe uma decomposição tal que M = UΣV, onde U e V são matrizes unitárias e Σ é uma matriz diagonal.

PCA é realmente uma aplicação simples de SVD. Na visão computacional, os algoritmos de reconhecimento de primeira face usaram PCA e SVD para representar faces como uma combinação linear de “eigenfaces”, fazer redução de dimensionalidade e, em seguida, corresponder faces a identidades através de métodos simples. Embora os métodos modernos sejam muito mais sofisticados, muitos ainda dependem de técnicas semelhantes.
9. Análise de Componentes Principais
PCA é um procedimento estatístico que usa uma transformação ortogonal para converter um conjunto de observações de variáveis, possivelmente correlacionadas em um conjunto de valores de variáveis linearmente não correlacionadas, chamadas componentes principais.

Algumas das aplicações do PCA incluem compressão, simplificação de dados para facilitar o aprendizado e visualização. Observe que o conhecimento do domínio é muito importante ao escolher se deseja avançar com PCA ou não. Não é adequado nos casos em que os dados são ruidosos (todos os componentes da PCA têm uma variação bastante alta).
10. Análise de componentes independentes
ICA é uma técnica estatística para revelar fatores ocultos que estão subjacentes a conjuntos de variáveis aleatórias, medições ou sinais. A ICA define um modelo generativo para os dados multivariados observados, que normalmente é dado como um grande banco de dados de amostras. No modelo, as variáveis de dados são assumidas como misturas lineares de algumas variáveis latentes desconhecidas, e o sistema de mistura também é desconhecido. As variáveis latentes são consideradas não-gaussianas e mutuamente independentes, e são chamadas de componentes independentes dos dados observados.

A ICA está relacionada ao PCA, mas é uma técnica muito mais poderosa, capaz de encontrar os fatores subjacentes das fontes quando esses métodos clássicos falham completamente. Suas aplicações incluem imagens digitais, bancos de dados de documentos, indicadores econômicos e medições psicométricas. Agora siga em frente e use sua compreensão de algoritmos para criar aplicações de aprendizagem de máquina que possibilitam melhores experiências para as pessoas em todos os lugares.