Tarefas de aprendizado de máquina no ML.NET
Uma tarefa de aprendizado de máquina é o tipo de previsão ou inferência que está sendo feita, com base no problema ou pergunta que está sendo feita e nos 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 que você pode escolher em ML.NET e alguns casos de uso comuns.
Depois de decidir qual tarefa funciona para o seu cenário, então você precisa escolher o melhor algoritmo para treinar seu modelo. Os algoritmos disponíveis estão listados na seção para cada tarefa.
Classificação binária
Uma tarefa supervisionada de aprendizado de máquina que é usada para prever a qual das duas classes (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 do Twitter como "positivo" ou "negativo".
- Diagnosticar se um paciente tem uma determinada doença ou não.
- Tomar a decisão de marcar um e-mail como "spam" ou não.
- Determinar se uma foto contém um item específico ou não, como um cão ou uma fruta.
Para obter 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:
- AveragedPerceptronTrainer
- SdcaLogisticRegressionBinaryTrainer
- SdcaNonCalibratedBinaryTrainer
- SymbolicSgdLogisticRegressionBinaryTrainer
- LbfgsLogisticRegressionBinaryTrainer
- LightGbmBinaryTrainer
- FastTreeBinaryTrainer
- FastForestBinaryTrainer
- GamBinaryTrainer
- FieldAwareFactorizationMachineTrainer
- PriorTrainer
- LinearSvmTrainer
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 recursos 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 | Description |
---|---|---|
Score |
Single | A pontuação bruta calculada pelo modelo |
PredictedLabel |
Boolean | O rótulo previsto, com base no sinal da pontuação. Uma pontuação negativa mapeia para false e uma pontuação positiva mapeia para true . |
Classificação multiclasse
Uma tarefa supervisionada de aprendizado de máquina que é usada para prever a classe (categoria) de uma instância de dados. 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", "limpeza", etc.
Para obter mais informações, consulte o artigo de classificação multiclasse na Wikipédia.
Nota
Um contra todos atualiza qualquer aluno de classificação binária para atuar em conjuntos de dados multiclasse. Mais informações na Wikipédia.
Formadores de classificação multiclasse
Você pode treinar um modelo de classificação multiclasse usando os seguintes algoritmos de treinamento:
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
Entradas e saídas de classificação multiclasse
Os dados da coluna do rótulo de entrada devem ser do tipo chave . A coluna de feição deve ser um vetor de tamanho fixo de Single.
Este formador produz o seguinte:
Nome da saída | Tipo | Description |
---|---|---|
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. Note que i é um índice baseado em zero. |
PredictedLabel |
tipo de chave | O índice do rótulo previsto. Se seu valor for i, o rótulo real será a i-ésima categoria no tipo de rótulo de entrada com valor chave. |
Regressão
Uma tarefa supervisionada de aprendizado de máquina que é usada para prever o valor do rótulo a partir de um conjunto de recursos relacionados. O rótulo pode ter qualquer valor real e não provém de um conjunto finito de valores como nas 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.
Formadores de regressão
Você pode treinar um modelo de regressão usando os seguintes algoritmos:
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
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 | Description |
---|---|---|
Score |
Single | A pontuação bruta que foi prevista pelo modelo |
Clustering
Uma tarefa de aprendizado de máquina não supervisionada que é 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.
Formador de agrupamento
Você pode treinar um modelo de clustering usando o seguinte algoritmo:
Agrupamento de entradas e saídas
Os dados dos recursos de entrada devem ser Single. Não são necessários rótulos.
Este formador produz o seguinte:
Nome da saída | Tipo | Description |
---|---|---|
Score |
vetor de Single | As distâncias dos dados fornecidos apontam para os centróides de todos os clusters |
PredictedLabel |
tipo de chave | O índice do cluster mais próximo previsto pelo modelo. |
Deteção de anomalias
Esta tarefa 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 construir 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
Os recursos de entrada devem ser um vetor de tamanho fixo de Single.
Este formador produz o seguinte:
Nome da saída | Tipo | Description |
---|---|---|
Score |
Single | O escore não negativo e não limitado que foi calculado pelo modelo de deteção de anomalias |
PredictedLabel |
Boolean | Um valor true/false que representa se a entrada é uma anomalia (PredictedLabel=true) ou não (PredictedLabel=false) |
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 ranker é treinado para classificar novos grupos de instâncias com pontuações desconhecidas para cada instância. ML.NET os alunos do ranking são baseados no ranking de aprendizado de máquina.
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 do tipo chave 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 , o índice de 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 do recurso devem ser um vetor de tamanho fixo e a coluna do grupo de linhas de Single entrada deve ser do tipo de chave .
Este formador produz o seguinte:
Nome da saída | Tipo | Description |
---|---|---|
Score |
Single | A pontuação ilimitada que foi calculada pelo modelo para determinar a predição |
Recomendação
Uma tarefa de recomendação permite produzir uma lista de produtos ou serviços recomendados. ML.NET usa a fatoração matricial (MF), um algoritmo 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:
Classificação de Imagens
Uma tarefa supervisionada de aprendizado de máquina que é 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 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 do rótulo de entrada devem ser do tipo chave . A coluna de feição deve ser um vetor de tamanho variável de Byte.
Este formador produz as seguintes colunas:
Nome da saída | Tipo | Description |
---|---|---|
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.Note que i é índice baseado em zero. |
PredictedLabel |
Tipo de chave | O índice do rótulo previsto. Se seu valor for i, o rótulo real será a i-ésima categoria no tipo de rótulo de entrada com valor chave. |
Deteção de Objetos
Uma tarefa supervisionada de aprendizado de máquina que é usada para prever a classe (categoria) de uma imagem, mas também fornece uma caixa delimitadora para 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 objetos só está disponível no Construtor de Modelos usando o Aprendizado de Máquina do Azure.