Introdução aos algoritmos de aprendizado de máquina

O Machine Learning é o estudo da análise preditiva que trabalha com o princípio de que os computadores aprendem com dados passados ​​e, em seguida, fazem previsões sobre os novos dados. O advento dos algoritmos de aprendizado de máquina foi muito tempo atrás, quando os computadores foram desenvolvidos. No entanto, o hype recente é resultado da grande quantidade de dados gerados e do enorme poder computacional que os computadores modernos possuem. Isso resultou no surgimento do Deep Learning, um subcampo do Machine Learning que prospera com mais dados. Funciona como um cérebro humano, onde os neurônios são usados ​​para tomar melhores decisões. Da mesma forma, no Deep Learning, as redes neurais formam as camadas que seguem o princípio de encaminhamento e propagação para trás para tomar melhores decisões.

Categorias de algoritmos de aprendizado de máquina

O campo dos algoritmos de aprendizado de máquina pode ser categorizado em -

  • Aprendizado supervisionado - No aprendizado supervisionado, o conjunto de dados é rotulado, ou seja, para cada recurso ou variável independente, há um dado de destino correspondente que usaríamos para treinar o modelo.
  • Aprendizado supervisionado pela ONU - Diferentemente do aprendizado supervisionado, o conjunto de dados não é identificado neste caso. Assim, a técnica de agrupamento é usada para agrupar os dados com base em sua similaridade entre os pontos de dados no mesmo grupo.
  • Aprendizado por reforço - Um tipo especial de Aprendizado de máquina em que o modelo aprende com cada ação executada. O modelo é recompensado por qualquer decisão correta tomada e penalizado por qualquer decisão errada que lhe permita aprender os padrões e tomar decisões mais precisas com dados desconhecidos.

Divisão de Algoritmos de Aprendizado de Máquina

Os problemas nos algoritmos de aprendizado de máquina podem ser divididos em -

  • Regressão - Existe uma relação contínua entre as variáveis ​​dependentes e independentes. A variável de destino é de natureza numérica, enquanto as variáveis ​​independentes podem ser numéricas ou categóricas.
  • Classificação - A declaração de problema mais comum que você encontraria no mundo real é classificar um ponto de dados em alguma classe binária, multinomial ou ordinal. No problema de Classificação binária, a variável de destino tem apenas dois resultados (Sim / Não, 0/1, Verdadeiro / Falso). No problema de classificação multinomial, existem várias classes na variável de destino (Apple / Orange / Mango e assim por diante). No problema de classificação Ordinal, a variável alvo é ordenada (por exemplo, a nota dos alunos).

Agora, para resolver esse tipo de problema, programadores e cientistas desenvolveram alguns programas ou algoritmos que poderiam ser usados ​​nos dados para fazer previsões. Esses algoritmos podem ser divididos em algoritmos lineares e não lineares ou baseados em árvore. Algoritmos lineares como regressão linear e regressão logística geralmente são usados ​​quando existe uma relação linear entre o recurso e a variável de destino, enquanto os dados que exibem padrões não lineares, os métodos baseados em árvore, como Árvore de Decisão, Floresta Aleatória, Impulso de Gradiente, etc., são os preferidos.

Até agora, tivemos uma breve intuição sobre o Machine Learning. Agora você aprenderia alguns dos algoritmos pré-programados que você poderia usar no seu próximo projeto.

Algoritmos

Existem inúmeros algoritmos de aprendizado de máquina que estão no mercado atualmente e isso só aumentará considerando a quantidade de pesquisas que estão sendo feitas nesse campo. Regressão linear e logística são geralmente os primeiros algoritmos que você aprende como cientista de dados, seguidos por algoritmos mais avançados.

Abaixo estão alguns dos algoritmos de aprendizado de máquina, juntamente com exemplos de trechos de código em python.

1. Regressão Linear

Como o nome sugere, esse algoritmo pode ser usado nos casos em que a variável de destino, que é de natureza contínua, depende linearmente das variáveis ​​dependentes. É representado por -

y = a * x + b + e, onde y é a variável alvo que estamos tentando prever, a é a interceptação eb é a inclinação, x é a nossa variável dependente usada para fazer a previsão. Esta é uma regressão linear simples, pois existe apenas uma variável independente. No caso de regressão linear múltipla, a equação teria sido -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Aqui, e é o termo de erro e a1, a2 .. a (n) são o coeficiente das variáveis ​​independentes.

Para avaliar o desempenho do modelo, é usada uma métrica que, nesse caso, pode ser o Erro Médio da Raiz Quadrada, que é a raiz quadrada da média da soma da diferença entre os valores reais e os previstos.

O objetivo da regressão linear é encontrar a melhor linha de ajuste que minimize a diferença entre os pontos de dados reais e os previstos.

A regressão linear pode ser escrita em Python como abaixo -

2. Regressão logística

Em termos de manutenção de um relacionamento linear, é o mesmo que Regressão Linear. Entretanto, diferentemente da Regressão Linear, a variável alvo na Regressão Logística é categórica, ou seja, de natureza binária, multinomial ou ordinal. A escolha da função de ativação é importante na Regressão Logística, pois para problemas de classificação binária, o log de probabilidades a favor, ou seja, a função sigmóide é usada.

No caso de um problema de várias classes, a função softmax é preferida, pois uma função sigmóide leva muito tempo de computação.

A métrica usada para avaliar um problema de classificação é geralmente Precisão ou a curva ROC. Quanto mais a área sob o ROC, melhor é o modelo. Um gráfico aleatório teria uma AUC de 0, 5. O valor de 1 indica maior precisão, enquanto 0 indica a menor precisão.

A regressão logística pode ser escrita na aprendizagem como -


3. K-vizinhos mais próximos

Algoritmos de aprendizado de máquina podem ser usados ​​para problemas de classificação e regressão. A idéia por trás do método KNN é que ele prediz o valor de um novo ponto de dados com base em seus K vizinhos mais próximos. K é geralmente preferido como um número ímpar para evitar qualquer conflito. Ao classificar qualquer novo ponto de dados, a classe com o modo mais alto dentro dos vizinhos é levada em consideração. Enquanto para o problema de regressão, a média é considerada como o valor.

Aprendi que o KNN está escrito como -


O KNN é usado na construção de um mecanismo de recomendação.

4. Máquinas de vetores de suporte

Um algoritmo de classificação em que um hiperplano separa as duas classes. Em um problema de classificação binária, dois vetores de duas classes distintas são considerados conhecidos como vetores de suporte e o hiperplano é desenhado à distância máxima dos vetores de suporte.

Como você pode ver, uma única linha separa as duas classes. No entanto, na maioria dos casos, os dados não seriam tão perfeitos e um simples hiperplano não seria capaz de separar as classes. Portanto, você precisa ajustar parâmetros como Regularização, Kernel, Gama e assim por diante.

O kernel pode ser linear ou polinomial, dependendo de como os dados são separados. Nesse caso, o núcleo é de natureza linear. No caso de Regularização, você precisa escolher um valor ideal de C, pois o valor alto pode levar à sobreajuste, enquanto um valor pequeno pode prejudicar o modelo. A influência de um único exemplo de treinamento é definida por Gamma. Os pontos próximos à linha são considerados em gama alta e vice-versa para gama baixa.

No sklearn, o SVM é escrito como -


5. Naive Bayes

Ele trabalha com o princípio do Teorema de Bayes, que encontra a probabilidade de um evento considerando algumas condições verdadeiras. O Teorema de Bayes é representado como -

O algoritmo é chamado Naive porque acredita que todas as variáveis ​​são independentes e a presença de uma variável não tem relação com outras variáveis, o que nunca acontece na vida real. Naive Bayes poderia ser usado na classificação de spam de email e na classificação de texto.

Código Naïve Bayes em Python -

6. Árvore de Decisão

Usado para problemas de classificação e regressão, o algoritmo da Árvore de Decisão é um dos algoritmos de Aprendizado de Máquina mais simples e facilmente interpretáveis. Ele não é afetado por valores discrepantes ou ausentes nos dados e pode capturar os relacionamentos não lineares entre as variáveis ​​dependentes e independentes.

Para construir uma Árvore de Decisão, todos os recursos são considerados inicialmente, mas o recurso com o máximo ganho de informações é considerado o nó raiz final com base no qual a divisão sucessiva é feita. Essa divisão continua no nó filho com base nos critérios máximos de informações e para até que todas as instâncias tenham sido classificadas ou os dados não possam ser divididos mais. As árvores de decisão geralmente são sujeitas a sobreajuste e, portanto, é necessário ajustar o hiperparâmetro como profundidade máxima, nós de folhas mínimas, amostras mínimas, recursos máximos e assim por diante. Para reduzir o sobreajuste, existe uma abordagem gananciosa que define restrições a cada etapa e escolhe os melhores critérios possíveis para essa divisão. Existe outra abordagem melhor chamada Poda, na qual a árvore é construída primeiro até uma certa profundidade predefinida e, a partir da parte inferior, os nós são removidos se não melhorar o modelo.

No sklearn, as Árvores de Decisão são codificadas como -



7. Floresta aleatória

Para reduzir o sobreajuste na Árvore de Decisão, é necessário reduzir a variação do modelo e, assim, o conceito de ensacamento surgiu. Ensacamento é uma técnica em que a saída de vários classificadores é usada para formar a saída final. A floresta aleatória é um desses métodos de ensacamento em que o conjunto de dados é amostrado em vários conjuntos de dados e os recursos são selecionados aleatoriamente para cada conjunto. Em seguida, em cada dado amostrado, o algoritmo da Árvore de Decisão é aplicado para obter a saída de cada modo. No caso de um problema de regressão, é tomada a média da saída de todos os modelos, enquanto que, no caso de um problema de classificação, a classe que obtém o voto máximo é considerada para classificar o ponto de dados. A floresta aleatória não é influenciada por valores discrepantes, valores ausentes nos dados e também ajuda na redução de dimensionalidade. No entanto, não é interpretável que desvantagem para a Floresta Aleatória. Em Python, você pode codificar Random Forest como -


8. Clustering de meios K

Até agora, trabalhamos com problemas de aprendizado supervisionado, onde para cada entrada existe uma saída correspondente. Agora, aprenderíamos sobre o aprendizado não supervisionado, onde os dados não são rotulados e precisam ser agrupados em grupos específicos. Existem várias técnicas de cluster disponíveis. No entanto, o mais comum deles é o agrupamento K-means. Os meios de tinta, k se referem ao número de clusters que precisam ser configurados antes de manter a variação máxima no conjunto de dados. Uma vez que k é definido, os centróides são inicializados. Os centróides são então ajustados repetidamente para que a distância entre os pontos de dados em um centróide seja máxima e a distância entre dois separados seja máxima. Distância euclidiana, distância de Manhattan, etc, são algumas das fórmulas de distância usadas para esse fim.

O valor de k pode ser encontrado no método do cotovelo.

O cluster K-means é usado nos setores de comércio eletrônico, onde os clientes são agrupados com base em seus padrões comportamentais. Também pode ser usado no Risk Analytics. Abaixo está o código python -


Conclusão: Algoritmos de aprendizado de máquina

O Data Scientist é o trabalho mais sexy do século 21 e o Machine Learning é certamente uma de suas principais áreas de especialização. Para ser um cientista de dados, é necessário possuir uma compreensão aprofundada de todos esses algoritmos e também várias outras novas técnicas, como o Deep Learning.

Artigos recomendados

Este foi um guia para algoritmos de aprendizado de máquina. Aqui discutimos o conceito, categorias, problemas e algoritmos diferentes da linguagem de máquina. Você também pode acessar nossos outros artigos sugeridos para saber mais -

  1. Técnicas de aprendizado de máquina
  2. O que é aprendizagem profunda
  3. Cientista de dados x aprendizado de máquina
  4. Aprendizado supervisionado versus aprendizado não supervisionado
  5. Aprendizado de máquina com hiperparâmetro
  6. O que é Aprendizado por Reforço?
  7. Técnicas mais usadas de aprendizagem por conjuntos
  8. Guia completo para exemplos de algoritmo C ++
  9. Guia dos estágios do ciclo de vida do Machine Learning

Categoria: