Tarefas de aprendizado de máquina no ML.NET
Uma tarefa de machine learning é o tipo de previsão ou inferência que está sendo feita com base no problema ou na pergunta que está sendo feita e nos dados disponíveis. Por exemplo, a tarefa de classificação atribui dados a categorias e as tarefas de clustering agrupa os dados de acordo com a similaridade.
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 no ML.NET e alguns casos de uso comuns.
Depois de decidir a tarefa ideal para seu cenário, será preciso escolher o melhor algoritmo para treinar seu modelo. Os algoritmos disponíveis são listados na seção para cada tarefa.
Classificação binária
Uma tarefa de aprendizado de máquina supervisionado 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, em que cada rótulo é um número inteiro de 0 ou 1. A saída de um algoritmo de classificação binária é um classificador, que pode ser usado para prever a classe de novas instâncias sem rótulo. Exemplos de cenários de classificação binária incluem:
- Reconhece como "positivo" ou "negativo".
- Diagnosticar se um paciente tem uma determinada doença ou não.
- Tomar a decisão de marcar um email 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.
Treinadores da 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
Saídas e entradas de classificação binária
Para obter melhores resultados com a classificação binária, os dados de treinamento devem ser equilibrados (ou seja, números iguais de dados de treinamento positivos e negativos). Os valores ausentes devem ser manipulados antes do treinamento.
Os dados da coluna de 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 treinadores geram as seguintes colunas:
Nome da Coluna de Saída | Tipo de coluna | Descrição |
---|---|---|
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 é mapeada para false e uma pontuação positiva é mapeada para true . |
Classificação multiclasse
Uma tarefa de aprendizado de máquina supervisionado 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. Ele é executado por meio de TermTransform, que converte-o para o tipo de Chave (numérico). A saída de um algoritmo de classificação é um classificador, que pode ser usado para prever a classe de novas instâncias sem rótulo. Exemplos de cenários de classificação multiclasse incluem:
- Categorizar voos como "antecipado", "pontual" ou "atrasado".
- Entender as resenhas de filmes como "positivas", "neutras" ou "negativas".
- Categorizar as avaliações de hotel como "local", "preço", "limpeza", etc.
Para obter mais informações, consulte o artigo Classificação multiclasse na Wikipédia.
Observação
Uma vs todas as atualizações de aprendizes de classificação binária para atuar em conjuntos de dados multiclasse. Mais informações em Wikipedia.
Treinadores 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
Saídas e entradas de classificação multiclasse
Os dados da coluna de rótulo de entrada devem ser do tipo chave. A coluna de recursos deve ser um vetor de tamanho fixo de Single.
Este treinador produz o seguinte:
Nome de saída | Tipo | Descrição |
---|---|---|
Score |
Vetor de Single | As pontuações de todas as classes. Um valor mais alto significa maior probabilidade de se enquadrar na classe associada. Se o elemento iº elemento tiver o maior valor, o índice de rótulo previsto será i. Observe que i é o í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º categoria no tipo de rótulo de entrada com valor de chave. |
Regressão
Uma tarefa de aprendizado de máquina supervisionado que é usada para prever o valor do rótulo de um conjunto de recursos relacionados. O rótulo pode ser de qualquer valor real e não pertence a 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 será alterado à 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 de 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 nos 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.
Treinadores de regressão
Você pode treinar um modelo de regressão usando os seguintes algoritmos:
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
Saídas e entradas de regressão
Os dados da coluna de rótulo de entrada devem ser Single.
Os treinadores para esta tarefa produzem a seguinte saída:
Nome de saída | Tipo | Descrição |
---|---|---|
Score |
Single | A pontuação bruta prevista pelo modelo |
Clustering
Uma tarefa de aprendizado de máquina não supervisionado 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 relacionamentos em um conjunto de dados que você pode não obter logicamente por meio de navegação ou observação simples. As entradas e saídas de um algoritmo de clustering depende a metodologia escolhida. Você pode usar uma abordagem baseada em distribuição, centroide, conectividade ou densidade. Atualmente, o ML.NET oferece suporte a uma abordagem baseada em centroides usando o clustering de K-Means. Exemplos de cenários de clustering incluem:
- Compreender os segmentos de hóspedes do hotel com base nos hábitos e características das opções de hotel.
- Identificar segmentos de clientes e dados demográficos para ajudar a criar campanhas de publicidade segmentadas.
- Categorizar o inventário com base nas métricas de fabricação.
Treinador de clustering
Você pode treinar um modelo de clustering usando os seguintes algoritmos:
Entradas e saídas de clustering
Os dados de recursos de entrada devem ser Single. Nenhum rótulo é necessário.
Este treinador produz o seguinte:
Nome de saída | Tipo | Descrição |
---|---|---|
Score |
vetor de Single | As distâncias do ponto de dados fornecido para todos os centroides do cluster |
PredictedLabel |
Tipo de chave | O índice do cluster mais próximo previsto pelo modelo. |
Detecção de anomalias
Esta tarefa cria um modelo de detecção de anomalias usando a Análise de Componente Principal (PCA). A Detecção de Anomalias Baseada em PCA ajuda a criar um modelo em cenários onde é fácil obter dados de treinamento de uma classe, como transações válidas, mas é difícil obter exemplos suficientes das anomalias direcionadas.
O PCA, uma técnica estabelecida no aprendizado de máquina, é frequentemente usado na análise exploratória de dados, pois revela a estrutura interna dos dados e explica sua variação. O PCA trabalha analisando dados que contêm muitas variáveis. Ele procura correlações entre as variáveis e determina a combinação de valores que melhor detecta as diferenças nos resultados. Esses valores de recursos combinados são usados para criar um espaço de recurso mais compacto chamado de componentes principais.
A detecção de anomalias abrange várias tarefas importantes no aprendizado de máquina:
- Identificar transações que são potencialmente fraudulentas.
- Aprender padrões que indicam que ocorreu uma invasão da rede.
- Localizar clusters anormais de pacientes.
- Verificar valores inseridos em um sistema.
Como as anomalias são eventos raros por definição, pode ser difícil coletar um exemplo representativo dos dados para usar na modelagem. Os algoritmos incluídos nesta categoria foram especialmente projetados para abordar os principais desafios de criar e treinar modelos usando conjuntos de dados desequilibrados.
Treinador de detecção de anomalias
Você pode treinar um modelo de detecção de anomalias usando os seguintes algoritmos:
Saídas e entradas de detecção de anomalias
Os recursos de entrada devem ser um vetor de tamanho fixo de Single.
Este treinador produz o seguinte:
Nome de saída | Tipo | Descrição |
---|---|---|
Score |
Single | A pontuação não negativa não associada calculada pelo modelo de detecçã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 cria um classificador a partir de um conjunto de exemplos rotulados. Este conjunto de exemplo consiste em grupos de instâncias que podem ser marcados 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 classificar novos grupos de instâncias com pontuações desconhecidas para cada instância. Os aprendizes de classificação do ML.NET são baseados na classificação de máquinas aprendidas.
Algoritmos de treinamento de classificação
Você pode treinar um modelo de classificação usando os seguintes algoritmos:
Entrada e saídas de classificação
O tipo de dados de rótulo de entrada deve ser do tipo chave ou Single. O valor do rótulo determina a relevância, em que valores mais altos indicam maior relevância. Se o rótulo for um tipo chave, o índice de chave será o valor de relevância, em que o menor índice é o menos relevante. Se o rótulo for um Single, valores maiores indicarão maior relevância.
Os dados do recurso devem ser um vetor de tamanho fixo de Single e a coluna de grupo de linha de entrada deve ser do tipo chave.
Este treinador produz o seguinte:
Nome de saída | Tipo | Descrição |
---|---|---|
Score |
Single | A pontuação não associada 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. O ML.NET usa a Fatoração matricial (MF), um algoritmo de filtragem colaborativa para as recomendações quando você tem dados históricos de classificação do produto 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 posteriormente.
Algoritmos de treinamento de recomendação
Você pode treinar um modelo de recomendação usando os seguintes algoritmos:
Previsão
A tarefa de previsão usa dados de série temporal anteriores 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.
Treinadores de previsão
Você pode treinar um modelo de previsão usando o seguinte algoritmo:
Classificação de imagens
Uma tarefa de aprendizado de máquina supervisionado 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. Ele é executado por meio de TermTransform, que converte-o para o tipo de Chave (numérico). A saída de um algoritmo de classificação de imagem é um classificador, que pode ser usado 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 está com defeito ou não.
- Determinar quais tipos de flores como "Rosa", "Girassol", etc.
Treinadores da classificação de imagem
Você pode treinar um modelo de classificação de imagem usando os seguintes algoritmos de treinamento:
Saídas e entradas de classificação de imagem
Os dados da coluna de rótulo de entrada devem ser do tipo chave. A coluna de recursos deve ser um vetor de tamanho variável de Byte.
Este treinador gera as seguintes colunas:
Nome de saída | Tipo | Descrição |
---|---|---|
Score |
Single | As pontuações de todas as classes. Um valor mais alto significa maior probabilidade de se enquadrar na classe associada. Se o elemento iº elemento tiver o maior valor, o índice de rótulo previsto será i. Observe que “i” é um índice de base zero. |
PredictedLabel |
Tipo de chave | O índice do rótulo previsto. Se seu valor for i, o rótulo real será a iº categoria no tipo de rótulo de entrada com valor de chave. |
Detecção de objetos
Uma tarefa de aprendizado de máquina supervisionada 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 detecção de objeto pode detectar vários objetos dentro de uma imagem. Os exemplos de detecção de objeto incluem:
- Detectar carros, placas ou pessoas em imagens de uma estrada.
- Detectar defeitos em imagens de produtos.
- Detectar áreas de preocupação em imagens de Raio-X.
Atualmente, o treinamento do modelo de detecção de objetos só está disponível no Model Builder usando o Azure Machine Learning.