Aprendizado de máquina com Python - métodos

Existem vários algoritmos, técnicas e métodos de ML que podem ser usados ​​para construir modelos para resolver problemas da vida real usando dados. Neste capítulo, vamos discutir esses diferentes tipos de métodos.

Diferentes Tipos de Métodos

A seguir estão vários métodos de ML com base em algumas categorias amplas -

Com base na supervisão humana

No processo de aprendizagem, alguns dos métodos baseados na supervisão humana são os seguintes -

Supervised Learning

Os algoritmos ou métodos de aprendizagem supervisionada são os algoritmos de ML mais comumente usados. Este método ou algoritmo de aprendizagem obtém a amostra de dados, ou seja, os dados de treinamento e sua saída associada, ou seja, rótulos ou respostas com cada amostra de dados durante o processo de treinamento.

O principal objetivo dos algoritmos de aprendizado supervisionado é aprender uma associação entre as amostras de dados de entrada e as saídas correspondentes após realizar várias instâncias de dados de treinamento.

Por exemplo, temos

x: Variáveis ​​de entrada e

Y: Variável de saída

Agora, aplique um algoritmo para aprender a função de mapeamento da entrada para a saída da seguinte forma -

Y = f (x)

Agora, o objetivo principal seria aproximar a função de mapeamento tão bem que mesmo quando temos novos dados de entrada (x), podemos prever facilmente a variável de saída (Y) para esses novos dados de entrada.

É denominado supervisionado porque todo o processo de aprendizagem pode ser pensado à medida que está sendo supervisionado por um professor ou supervisor. Exemplos de algoritmos de aprendizado de máquina supervisionados incluemDecision tree, Random Forest, KNN, Logistic Regression etc.

Com base nas tarefas de ML, os algoritmos de aprendizagem supervisionada podem ser divididos em duas classes amplas -

  • Classification
  • Regression

Classification

O principal objetivo das tarefas baseadas em classificação é prever rótulos de saída categorial ou respostas para os dados de entrada fornecidos. A saída será baseada no que o modelo aprendeu na fase de treinamento. Como sabemos que as respostas de saída categorial significam valores não ordenados e discretos, portanto, cada resposta de saída pertencerá a uma classe ou categoria específica. Discutiremos a classificação e os algoritmos associados em detalhes também nos próximos capítulos.

Regression

O principal objetivo das tarefas baseadas em regressão é prever rótulos de saída ou respostas que são valores numéricos contínuos, para os dados de entrada fornecidos. A saída será baseada no que o modelo aprendeu em sua fase de treinamento. Basicamente, os modelos de regressão usam os recursos de dados de entrada (variáveis ​​independentes) e seus valores de saída numérica contínuos correspondentes (variáveis ​​dependentes ou de resultado) para aprender a associação específica entre entradas e saídas correspondentes. Discutiremos a regressão e os algoritmos associados em detalhes também nos próximos capítulos.

Aprendizagem Não Supervisionada

Como o nome sugere, é o oposto dos métodos ou algoritmos de ML supervisionados, o que significa que em algoritmos de aprendizado de máquina não supervisionados não temos nenhum supervisor para fornecer qualquer tipo de orientação. Algoritmos de aprendizagem não supervisionados são úteis no cenário em que não temos a liberdade, como em algoritmos de aprendizagem supervisionada, de ter dados de treinamento pré-rotulados e queremos extrair padrões úteis dos dados de entrada.

Por exemplo, pode ser entendido da seguinte forma -

Suponha que temos -

x: Input variables, então não haveria nenhuma variável de saída correspondente e os algoritmos precisam descobrir o padrão interessante nos dados para aprendizagem.

Exemplos de algoritmos de aprendizado de máquina não supervisionados incluem clustering K-means, K-nearest neighbors etc.

Com base nas tarefas de ML, algoritmos de aprendizagem não supervisionados podem ser divididos nas seguintes classes amplas -

  • Clustering
  • Association
  • Redução de dimensionalidade

Clustering

Os métodos de agrupamento são um dos métodos de ML não supervisionados mais úteis. Esses algoritmos são usados ​​para encontrar similaridade, bem como padrões de relacionamento entre as amostras de dados e, em seguida, agrupar essas amostras em grupos com similaridade com base em recursos. O exemplo do mundo real de clustering é agrupar os clientes por seu comportamento de compra.

Association

Outro método de ML não supervisionado útil é Associationque é usado para analisar um grande conjunto de dados para encontrar padrões que representam ainda mais as relações interessantes entre vários itens. Também é denominado comoAssociation Rule Mining ou Market basket analysis que é usado principalmente para analisar os padrões de compra do cliente.

Dimensionality Reduction

Este método de ML não supervisionado é usado para reduzir o número de variáveis ​​de recursos para cada amostra de dados, selecionando um conjunto de recursos principais ou representativos. Uma questão que surge aqui é por que precisamos reduzir a dimensionalidade? A razão por trás disso é o problema da complexidade do espaço de recursos que surge quando começamos a analisar e extrair milhões de recursos de amostras de dados. Este problema geralmente se refere à “maldição da dimensionalidade”. PCA (Análise de Componentes Principais), K-vizinhos mais próximos e análise discriminante são alguns dos algoritmos populares para essa finalidade.

Anomaly Detection

Este método de ML não supervisionado é usado para descobrir as ocorrências de eventos raros ou observações que geralmente não ocorrem. Usando o conhecimento aprendido, os métodos de detecção de anomalias seriam capazes de diferenciar entre pontos de dados anômalos ou normais. Alguns dos algoritmos não supervisionados, como clustering, KNN pode detectar anomalias com base nos dados e seus recursos.

Aprendizagem Semi-Supervisionada

Esse tipo de algoritmo ou método não é totalmente supervisionado nem totalmente não supervisionado. Eles basicamente se situam entre os dois, isto é, métodos de aprendizagem supervisionados e não supervisionados. Esses tipos de algoritmos geralmente usam um pequeno componente de aprendizado supervisionado, ou seja, pequena quantidade de dados anotados pré-rotulados e um grande componente de aprendizado não supervisionado, ou seja, muitos dados não rotulados para treinamento. Podemos seguir qualquer uma das seguintes abordagens para a implementação de métodos de aprendizagem semi-supervisionados -

  • A primeira e simples abordagem é construir o modelo supervisionado com base em uma pequena quantidade de dados rotulados e anotados e, em seguida, construir o modelo não supervisionado aplicando o mesmo a grandes quantidades de dados não rotulados para obter mais amostras rotuladas. Agora, treine o modelo sobre eles e repita o processo.

  • A segunda abordagem requer alguns esforços extras. Nesta abordagem, podemos primeiro usar os métodos não supervisionados para agrupar amostras de dados semelhantes, anotar esses grupos e, em seguida, usar uma combinação dessas informações para treinar o modelo.

Aprendizagem por Reforço

Esses métodos são diferentes dos métodos previamente estudados e muito raramente usados ​​também. Nesse tipo de algoritmo de aprendizagem, haveria um agente que queremos treinar por um período de tempo para que possa interagir com um ambiente específico. O agente seguirá um conjunto de estratégias de interação com o meio ambiente e, após observar o meio ambiente, executará ações em relação ao estado atual do meio ambiente. A seguir estão as principais etapas dos métodos de aprendizagem por reforço -

  • Step 1 - Primeiro, precisamos preparar um agente com algum conjunto inicial de estratégias.

  • Step 2 - Em seguida, observe o ambiente e seu estado atual.

  • Step 3 - Em seguida, selecione a política ideal em relação ao estado atual do ambiente e execute uma ação importante.

  • Step 4 - Agora, o agente pode obter recompensa ou penalidade correspondente de acordo com a ação realizada por ele na etapa anterior.

  • Step 5 - Agora podemos atualizar as estratégias se for necessário.

  • Step 6 - Por fim, repita as etapas 2 a 5 até que o agente aprenda e adote as políticas ideais.

Tarefas adequadas para aprendizado de máquina

O diagrama a seguir mostra que tipo de tarefa é apropriada para vários problemas de ML -

Com base na capacidade de aprendizagem

No processo de aprendizagem, a seguir estão alguns métodos que são baseados na capacidade de aprendizagem -

Batch Learning

Em muitos casos, temos sistemas de aprendizado de máquina ponta a ponta nos quais precisamos treinar o modelo de uma vez usando todos os dados de treinamento disponíveis. Esse tipo de método de aprendizagem ou algoritmo é chamadoBatch or Offline learning. É chamado de aprendizado em lote ou offline porque é um procedimento único e o modelo será treinado com dados em um único lote. A seguir estão as principais etapas dos métodos de aprendizagem em lote -

  • Step 1 - Primeiro, precisamos coletar todos os dados de treinamento para iniciar o treinamento do modelo.

  • Step 2 - Agora, comece o treinamento do modelo fornecendo todos os dados de treinamento de uma vez.

  • Step 3 - Em seguida, interrompa o processo de aprendizagem / treinamento quando obtiver resultados / desempenho satisfatórios.

  • Step 4- Por fim, implante este modelo treinado na produção. Aqui, ele irá prever a saída para uma nova amostra de dados.

Aprendizagem online

É completamente oposto aos métodos de aprendizagem em lote ou offline. Nesses métodos de aprendizagem, os dados de treinamento são fornecidos em vários lotes incrementais, chamados minilotes, para o algoritmo. A seguir estão as principais etapas dos métodos de aprendizagem online -

  • Step 1 - Primeiro, precisamos coletar todos os dados de treinamento para iniciar o treinamento do modelo.

  • Step 2 - Agora, inicie o treinamento do modelo fornecendo um minilote de dados de treinamento ao algoritmo.

  • Step 3 - Em seguida, precisamos fornecer os minilotes de dados de treinamento em incrementos múltiplos para o algoritmo.

  • Step 4 - Como não vai parar como o aprendizado em lote, portanto, depois de fornecer dados de treinamento inteiros em minilotes, forneça novas amostras de dados também a ele.

  • Step 5 - Finalmente, ele continuará aprendendo por um período de tempo com base nas novas amostras de dados.

Com base na abordagem de generalização

No processo de aprendizagem, a seguir estão alguns métodos que são baseados em abordagens de generalização -

Aprendizagem baseada em instância

O método de aprendizado baseado em instância é um dos métodos úteis que constroem os modelos de ML fazendo generalização com base nos dados de entrada. É o oposto dos métodos de aprendizagem previamente estudados na forma como este tipo de aprendizagem envolve sistemas de ML, bem como métodos que usam os próprios pontos de dados brutos para desenhar os resultados para amostras de dados mais recentes, sem construir um modelo explícito nos dados de treinamento.

Em palavras simples, o aprendizado baseado em instância basicamente começa a funcionar observando os pontos de dados de entrada e, em seguida, usando uma métrica de similaridade, ele generaliza e prevê os novos pontos de dados.

Aprendizagem baseada em modelo

Nos métodos de aprendizagem baseados em modelo, um processo iterativo ocorre nos modelos de ML que são construídos com base em vários parâmetros do modelo, chamados de hiperparâmetros e nos quais os dados de entrada são usados ​​para extrair os recursos. Neste aprendizado, os hiperparâmetros são otimizados com base em várias técnicas de validação de modelo. É por isso que podemos dizer que os métodos de aprendizagem baseados em modelos usam uma abordagem mais tradicional de ML para a generalização.