Partilhar via


Tarefas de aprendizado de máquina no ML.NET

Uma tarefa de de aprendizagem automática é um tipo de previsão ou inferência baseada em ambos os fatores.

  • O problema ou a questão
  • Os dados disponíveis

Por exemplo, a tarefa de classificação atribui dados a categorias e a tarefa de agrupamento agrupa dados de acordo com a semelhança.

As tarefas de aprendizado de máquina dependem de padrões nos dados em vez de serem explicitamente programadas.

Este artigo descreve as diferentes tarefas de aprendizado de máquina disponíveis no ML.NET e alguns casos de uso comuns.

Depois de decidir qual tarefa funciona para o seu cenário, você precisa escolher o melhor algoritmo para treinar seu modelo. Os algoritmos disponíveis estão listados na seção para cada tarefa.

Tarefas de classificação

Classificação binária

A classificação binária é uma tarefa de de aprendizado de máquina supervisionada por que é usada para prever a qual de exatamente duas classes de (categorias) uma instância de dados pertence. A entrada de um algoritmo de classificação é um conjunto de exemplos rotulados, onde cada rótulo é um inteiro de 0 ou 1. A saída de um algoritmo de classificação binária é um classificador, que você pode usar para prever a classe de novas instâncias não rotuladas. Exemplos de cenários de classificação binária incluem:

  • Entender o sentimento dos comentários no Twitter como positivo ou negativo.
  • Diagnosticar se um paciente tem uma determinada doença.
  • Tomar a decisão de marcar um e-mail como spam.
  • Determinar se uma foto contém um item específico, como um cão ou uma fruta.

Para mais informações, consulte o artigo Classificação binária na Wikipédia.

Formadores de classificação binária

Você pode treinar um modelo de classificação binária usando os seguintes algoritmos:

Entradas e saídas de classificação binária

Para melhores resultados com classificação binária, os dados de treinamento devem ser balanceados (ou seja, números iguais de dados de treinamento positivos e negativos). Os valores em falta devem ser tratados antes da formação.

Os dados da coluna do rótulo de entrada devem ser Boolean. Os dados da coluna de características de entrada devem ser um vetor de tamanho fixo de Single.

Esses instrutores produzem as seguintes colunas:

Nome da coluna de saída Tipo de coluna Descrição
Score Single A pontuação bruta que o modelo calculou.
PredictedLabel Boolean O rótulo previsto, com base no sinal da pontuação. Uma pontuação negativa é mapeada para false e uma pontuação positiva é mapeada para true.

Classificação multiclasse

A classificação multiclasse é uma tarefa de de aprendizado de máquina supervisionada usada para classificar uma instância de dados em uma de três ou mais classes (categorias). A entrada de um algoritmo de classificação é um conjunto de exemplos rotulados. Cada rótulo normalmente começa como texto. Em seguida, ele é executado através do TermTransform, que o converte para o tipo Key (numérico). A saída de um algoritmo de classificação é um classificador, que você pode usar para prever a classe de novas instâncias não rotuladas. Exemplos de cenários de classificação multiclasse incluem:

  • Categorizar os voos como "antecipados", "pontuais" ou "atrasados".
  • Entender as críticas de filmes como "positivas", "neutras" ou "negativas".
  • Categorizar as avaliações de hotéis como "localização", "preço" ou "limpeza", por exemplo.

Para mais informações, consulte o artigo Classificação multiclasse na Wikipédia.

Observação

One-vs.-rest atualiza qualquer classificação binária que o aluno para atuar em conjuntos de dados multiclasse.

Treinadores de classificação multiclasse

Você pode treinar um modelo de classificação multiclasse usando os seguintes algoritmos de treinamento:

Entradas e saídas de classificação multiclasse

Os dados da coluna de rótulo de entrada devem ser do tipo chave. A coluna de características deve ser um vetor de tamanho fixo de Single.

Este formador produz o seguinte:

Nome da saída Tipo Descrição
Score Vetor de Single As pontuações de todas as classes. Valor mais alto significa maior probabilidade de cair na classe associada. Se o i-ésimo elemento tiver o maior valor, o índice de rótulo previsto será i. Observe que i é índice baseado em zero.
PredictedLabel chave O índice do rótulo previsto. Se o seu valor for i, o rótulo real será a categoria i-ésima no tipo de rótulo de entrada com valor chave.

Classificação de texto

A classificação de texto é uma subcategoria de classificação multiclasse que lida especificamente com texto bruto. O texto coloca desafios interessantes porque você tem que levar em conta o contexto e a semântica em que o texto ocorre. Como tal, pode ser difícil codificar o significado e o contexto.

Deep learning modelos surgiram como uma técnica promissora para resolver problemas de linguagem natural. Mais especificamente, um tipo de rede neural conhecido como transformador de tornou-se a maneira predominante de resolver problemas de linguagem natural, como classificação de texto, tradução, sumarização e resposta a perguntas. Algumas arquiteturas de transformadores populares para tarefas de linguagem natural incluem:

  • Representações de codificadores bidirecionais de transformadores (BERT)
  • Abordagem de pré-treinamento BERT robustamente otimizada (RoBERTa)
  • Transformador pré-treinado generativo (GPT)

A API de classificação de texto ML.NET é alimentada pelo TorchSharp. TorchSharp é uma biblioteca .NET que fornece acesso à biblioteca que alimenta o PyTorch. TorchSharp contém os blocos de construção para treinar redes neurais do zero no .NET. ML.NET abstrai um pouco da complexidade do TorchSharp para o nível do cenário. Ele usa uma versão pré-treinada do modelo de NAS-BERT e o ajusta com seus dados.

Para obter um exemplo de classificação de texto, consulte Introdução à API de classificação de texto.

Classificação das imagens

A classificação de imagem é uma tarefa de aprendizado de máquina supervisionada usada para prever a classe (categoria) de uma imagem. A entrada é um conjunto de exemplos rotulados. Cada rótulo normalmente começa como texto. Em seguida, ele é executado através do TermTransform, que o converte para o tipo Key (numérico). A saída do algoritmo de classificação de imagem é um classificador, que você pode usar para prever a classe de novas imagens. A tarefa de classificação de imagem é um tipo de classificação multiclasse. Exemplos de cenários de classificação de imagem incluem:

  • Determinar a raça de um cão como um "Husky Siberiano", "Golden Retriever", "Poodle", etc.
  • Determinar se um produto de fabricação é defeituoso ou não.
  • Determinar que tipos de flores são reconhecidos como "Rosa", "Girassol", etc.

Formadores de classificação de imagens

Você pode treinar um modelo de classificação de imagem usando os seguintes algoritmos de treinamento:

Entradas e saídas de classificação de imagem

Os dados da coluna de rótulo de entrada devem ser do tipo chave. A coluna de características deve ser um vetor de tamanho variável de Byte.

Este formador produz as seguintes colunas:

Nome da saída Tipo Descrição
Score Single As pontuações de todas as classes. Valor mais alto significa maior probabilidade de cair na classe associada. Se o i-ésimo elemento tiver o maior valor, o índice de rótulo previsto será i. (i é um índice baseado em zero.)
PredictedLabel tipo de chave O índice do rótulo previsto. Se o seu valor for i, o rótulo real será a categoria i-ésima no tipo de rótulo de entrada com valor chave.

Regressão

A regressão é uma tarefa de aprendizado de máquina supervisionada ,, que é utilizada para prever o valor da etiqueta a partir de um conjunto de funcionalidades relacionadas. O rótulo pode ter qualquer valor real e não é de um conjunto finito de valores como em tarefas de classificação. Os algoritmos de regressão modelam a dependência do rótulo em seus recursos relacionados para determinar como o rótulo mudará à medida que os valores dos recursos forem variados. A entrada de um algoritmo de regressão é um conjunto de exemplos com rótulos de valores conhecidos. A saída de um algoritmo de regressão é uma função, que você pode usar para prever o valor do rótulo para qualquer novo conjunto de recursos de entrada. Exemplos de cenários de regressão incluem:

  • Previsão de preços de casas com base em atributos da casa, como número de quartos, localização ou tamanho.
  • Previsão de preços futuros de ações com base em dados históricos e tendências atuais do mercado.
  • Previsão de vendas de um produto com base em orçamentos de publicidade.
  • Encontrar artigos relacionados numa publicação (semelhança de frases).

Treinadores de regressão

Você pode treinar um modelo de regressão usando os seguintes algoritmos:

Entradas e saídas de regressão

Os dados da coluna do rótulo de entrada devem ser Single.

Os formadores para esta tarefa produzem o seguinte:

Nome da saída Tipo Descrição
Score Single A pontuação bruta que foi prevista pelo modelo

Agrupamento

O clustering é uma tarefa de aprendizado de máquina não supervisionada usada para agrupar instâncias de dados em clusters que contêm características semelhantes. O clustering também pode ser usado para identificar relações em um conjunto de dados que você pode não derivar logicamente navegando ou observando simplesmente. As entradas e saídas de um algoritmo de agrupamento dependem da metodologia escolhida. Você pode adotar uma abordagem baseada em distribuição, centróide, conectividade ou densidade. ML.NET atualmente suporta uma abordagem baseada em centróides usando agrupamento K-Means. Exemplos de cenários de clustering incluem:

  • Compreender segmentos de hóspedes de hotéis com base em hábitos e características das escolhas hoteleiras.
  • Identificar segmentos de clientes e dados demográficos para ajudar a criar campanhas de publicidade direcionadas.
  • Categorização de estoque com base em métricas de fabricação.

Treinador de agrupamento

Você pode treinar um modelo de clustering usando o seguinte algoritmo:

Agrupamento de entradas e saídas

Os dados das características de entrada devem ser Single. Não são necessários rótulos.

Este formador produz o seguinte:

Nome da saída Tipo Descrição
Score Vetor de Single As distâncias do ponto de dados fornecido até os centróides de todos os clusters.
PredictedLabel chave tipo O índice do cluster mais próximo previsto pelo modelo.

Deteção de anomalias

A tarefa de deteção de anomalias cria um modelo de deteção de anomalias usando a análise de componentes principais (PCA). A deteção de anomalias baseada em PCA ajuda a criar um modelo em cenários em que é fácil obter dados de treinamento de uma classe, como transações válidas, mas é difícil obter amostras suficientes das anomalias direcionadas.

Uma técnica estabelecida em aprendizado de máquina, a PCA é frequentemente usada na análise exploratória de dados porque revela a estrutura interna dos dados e explica a variância nos dados. A PCA funciona analisando dados que contêm múltiplas variáveis. Procura correlações entre as variáveis e determina a combinação de valores que melhor capta as diferenças nos resultados. Esses valores de recurso combinados são usados para criar um espaço de recurso mais compacto chamado componentes principais.

A deteção de anomalias engloba muitas tarefas importantes no aprendizado de máquina:

  • Identificação de transações potencialmente fraudulentas.
  • Padrões de aprendizagem que indicam que ocorreu uma intrusão na rede.
  • Encontrar aglomerados anormais de doentes.
  • Verificação de valores inseridos em um sistema.

Como as anomalias são eventos raros por definição, pode ser difícil coletar uma amostra representativa de dados para usar na modelagem. Os algoritmos incluídos nesta categoria foram especialmente concebidos para abordar os principais desafios da construção e formação de modelos utilizando conjuntos de dados desequilibrados.

Treinador de deteção de anomalias

Você pode treinar um modelo de deteção de anomalias usando o seguinte algoritmo:

Entradas e saídas de deteção de anomalias

As características de entrada devem ser um vetor de tamanho fixo de Single.

Este formador produz o seguinte:

Nome da saída Tipo Descrição
Score Single O escore não negativo e ilimitado que foi calculado pelo modelo de deteção de anomalias.
PredictedLabel Boolean true se a entrada é uma anomalia ou false se não é.

Classificação

Uma tarefa de classificação constrói um classificador a partir de um conjunto de exemplos rotulados. Este conjunto de exemplos consiste em grupos de instâncias que podem ser pontuados com um determinado critério. Os rótulos de classificação são { 0, 1, 2, 3, 4 } para cada instância. O classificador é treinado para ordenar novos grupos de instâncias com pontuações desconhecidas para cada instância. Os algoritmos de classificação do ML.NET são baseados em de aprendizagem automática.

Classificação de algoritmos de treinamento

Você pode treinar um modelo de classificação com os seguintes algoritmos:

Classificação de entradas e saídas

O tipo de dados do rótulo de entrada deve ser chave tipo ou Single. O valor do rótulo determina a relevância, onde valores mais altos indicam maior relevância. Se o rótulo for um tipo de chave , então o índice da chave é o valor de relevância, onde o menor índice é o menos relevante. Se o rótulo for um Single, valores maiores indicam maior relevância.

Os dados da característica devem ser um vetor de dimensão fixa de , e a coluna do grupo de linhas de entrada deve ser do tipo chave .

Este formador produz o seguinte:

Nome da saída Tipo Descrição
Score Single A pontuação ilimitada que foi calculada pelo modelo para determinar a previsão.

Recomendação

Uma tarefa de recomendação permite produzir uma lista de produtos ou serviços recomendados. ML.NET usa Matrix factorization (MF), um algoritmo de de filtragem colaborativa para recomendações quando você tem dados históricos de classificação de produtos em seu catálogo. Por exemplo, você tem dados históricos de classificação de filmes para seus usuários e deseja recomendar outros filmes que eles provavelmente assistirão em seguida.

Algoritmos de treinamento de recomendação

Você pode treinar um modelo de recomendação com o seguinte algoritmo:

Previsão

A tarefa de previsão usa dados de séries temporais passadas para fazer previsões sobre o comportamento futuro. Os cenários aplicáveis à previsão incluem previsão do tempo, previsões de vendas sazonais e manutenção preditiva.

Formadores de previsão

Você pode treinar um modelo de previsão com o seguinte algoritmo:

ForecastBySsa

Deteção de objetos

A deteção de objetos é uma tarefa supervisionada de aprendizagem de máquina que é usada para prever a classe (categoria) de uma imagem, mas também fornece uma caixa delimitadora indicando onde essa categoria está dentro da imagem. Em vez de classificar um único objeto em uma imagem, a deteção de objetos pode detetar vários objetos dentro de uma imagem. Exemplos de deteção de objetos incluem:

  • Detetar carros, sinais ou pessoas em imagens de uma estrada.
  • Deteção de defeitos em imagens de produtos.
  • Deteção de áreas de preocupação em imagens de raios-X.

Atualmente, o treinamento de modelo de deteção de objeto só está disponível no do Construtor de Modelos usando o Aprendizado de Máquina do Azure.