Compartilhar via


Máquina de vetor de suporte localmente profundo de duas classes

Importante

O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).

A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.

Cria um modelo de classificação binária usando o algoritmo de Máquina do Vetor de Suporte de profundidade local

Categoria: Machine Learning/Inicializar Modelo/Classificação

Observação

Aplica-se a: somente Machine Learning Studio (clássico)

Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.

Visão geral do módulo

Este artigo descreve como usar o módulo do Vector Machine de Suporte Localmente Profundo de Duas Classes no Machine Learning Studio (clássico), para criar um classificador SVM (computadores vetores de suporte não linear) de duas classes otimizado para uma previsão eficiente.

Os SVMs (computadores vetores de suporte) são uma classe extremamente popular e bem pesquisada de modelos de aprendizagem supervisionados, que podem ser usados em tarefas de classificação linear e não linear. Uma pesquisa recente se concentrou em maneiras de otimizar esses modelos para dimensionar com eficiência para conjuntos de treinamento maiores. Nessa implementação da Microsoft Research, a função de kernel usada para o mapeamento de pontos de dados para espaço de recurso foi projetada especificamente para reduzir o tempo necessário para treinamento, mantendo o máximo da precisão de classificação.

Esse modelo é um método de aprendizagem supervisionado e, portanto, requer um conjunto de dados marcado, que inclui uma coluna de rótulo.

Depois de definir os parâmetros do modelo, treine-o fornecendo o modelo e um conjunto de dados marcado como entrada para treinarhiperparâmetros de modelo ou de ajuste. O modelo treinado pode então ser usado para prever valores para novas entradas.

Como configurar Two-Class computador vetor de suporte localmente profundo

  1. Adicione o módulo vector machine de suporte Locally-Deep de duas classes ao experimento no Studio (clássico).

  2. Especifique como você deseja que o modelo seja treinado, definindo a opção Criar o modo de treinador.

    • Parâmetro Único: se você sabe como configurar o modelo, forneça um conjunto específico de valores como argumentos.

    • Intervalo de parâmetros: se você não tiver certeza dos melhores parâmetros, poderá encontrar os parâmetros ideais especificando vários valores e usando o módulo Ajustar Hiperparâmetros de Modelo para encontrar a configuração ideal. O treinador itera em várias combinações das configurações fornecidas e determina a combinação de valores que produz o melhor modelo.

  3. Para Profundidade da árvore, especifique a profundidade máxima da árvore que pode ser criada pelo modelo local de SVM de aprendizagem de kernel profundo (LD-SVM).

    Observe que o custo de treinamento aumenta linearmente com a profundidade da árvore; portanto, escolha uma profundidade apropriada dependendo de quanto tempo você pode permitir que seja gasto ao criar o modelo.

    O tempo de treinamento deve praticamente dobrar à medida que a profundidade aumenta em uma unidade.

    A precisão da previsão deve aumentar, alcançar um pico e, em seguida, diminuir com o aumento da profundidade.

  4. Para Lambda W, especifique o peso que deve ser dado ao termo de regularização.

    A regularização restringe componentes de grande valor no classificador treinado. Quando o número de amostras for insuficiente, dado o número de recursos, você pode usar a regularização L2 para evitar superajuste. Valores maiores para Lambda W significam que mais ênfase é colocada na regularização dos pesos do classificador e menos no erro de classificação do conjunto de treinamento.

    Se o valor padrão (0,1) não funcionar bem, você também deverá tentar {0,0001, 0,001 e 0,01}.

  5. Para Lambda Theta, especifique quanto espaço deve ser deixado entre um limite de região e o ponto de dados mais próximo.

    Esse modelo funciona particionando o espaço de dados e de recursos em regiões. Quando Lambda Theta é minimizado de tal forma que os limites de região no modelo treinado estão muito próximos dos pontos de dados de treinamento, o modelo pode gerar um erro de treinamento baixo, mas um erro de teste alto, devido à sobreajuste.

    Para reduzir o número de parâmetros que precisam ser validados, uma boa regra geral é definir Lambda Theta como um décimo do valor usado para Lambda W. Valores maiores significam que mais ênfase é colocada na prevenção de sobreajuste do que na minimização de erros de classificação no conjunto de treinamento.

    Se o valor padrão (0,01) não funcionar bem, você deverá tentar também {0,0001, 0,001 e 0,1}.

  6. Para Lambda Theta Prime, digite um valor para controlar a quantidade de curvatura permitida nos limites de decisão no modelo.

    Valores maiores dão ao modelo a flexibilidade de aprender limites de decisão curvo, enquanto valores menores podem restringir os limites de decisão a um padrão linear mais stepwise.

    Esse parâmetro funciona em conjunto com o parâmetro Sigma . Para reduzir o número de parâmetros que precisam ser validados, uma boa regra geral é definir Primo teta lambda como um décimo do valor usado para W lambda.

    Se o valor padrão (0,01) não funcionar bem, você deverá tentar também {0,0001, 0,001 e 0,1}.

  7. Para nitidez Sigmóide, digite um valor a ser usado para o parâmetro de dimensionamento σ.

    Valores maiores significam que o tanh no kernel local Θ (theta) está saturado, enquanto um valor menor implica um intervalo operacional mais linear para theta. Você pode encontrar a fórmula de otimização completa na seção Notas Técnicas .

    Se o valor padrão (1) não funcionar bem, você poderá tentar também {0,1, 0,01, 0,001}.

  8. Em Número de iterações, indique quantas vezes o algoritmo deve atualizar os parâmetros do classificador com um subconjunto aleatório de exemplos.

  9. Para o normalizador de recursos, escolha um método para usar na normalização de valores de recurso. Há suporte para os seguintes métodos:

    • Normalizador de binning: o normalizador de binning cria compartimentos de tamanho igual e, em seguida, normaliza cada valor em cada compartimento a ser dividido pelo número total de compartimentos.

    • Normalizador gaussiano: o normalizador gaussiano redimensiona os valores de cada recurso para ter uma média de 0 e uma variação de 1. Isso é feito computando a média e a variação de cada recurso. Em seguida, para cada instância, o valor médio é subtraído e o resultado dividido pela raiz quadrada da variação (o desvio padrão).

    • Normalizador Min-Max: o normalizador de mínimo máximo redimensiona linearmente cada recurso para o intervalo [0,1].

      O redimensionamento do intervalo [0,1] é feito mudando os valores de cada recurso para que o valor mínimo seja 0 e, em seguida, dividindo pelo novo valor máximo (que é a diferença entre os valores máximos e mínimos originais).

    • Não normalize: nenhuma normalização é executada.

  10. Na semente de número aleatório, digite um valor a ser usado como uma semente se você quiser garantir a reprodutibilidade entre execuções.

  11. Selecione a opção Permitir níveis categóricos desconhecidos para criar um grupo para valores desconhecidos nos conjuntos de teste ou validação.

    Se você desmarcá-la, o modelo pode aceitar apenas os valores que estão contidos nos dados de treinamento. No primeiro caso, o modelo pode ser menos preciso para valores conhecidos, mas ele pode fornecer melhores previsões para novos valores (desconhecidos).

  12. Conexão um conjunto de dados marcado e um dos módulos de treinamento:

    Observação

    Se você transmitir um intervalo de parâmetros para o módulo Treinar modelo, ele usará apenas o primeiro valor da lista de intervalo de parâmetros.

    Se você transmitir um só conjunto de valores de parâmetro para o módulo Ajustar hiperparâmetros do modelo, quando ele espera um intervalo de configurações para cada parâmetro, ele vai ignorar os valores e usará os valores padrão para o aprendiz.

    Se selecionar a opção Intervalo de Parâmetros e inserir um único valor para qualquer parâmetro, esse valor único especificado será usado em toda a varredura, mesmo que outros parâmetros sejam alterados em um intervalo de valores.

  13. Execute o experimento.

Resultados

Após a conclusão do treinamento:

  • Para ver um resumo dos parâmetros do modelo, clique com o botão direito do mouse na saída do módulo Treinar Modelo ou ajustar o módulo Hiperparâmetros de Modelo e selecione Visualizar.

  • Para salvar um snapshpt do modelo treinado, clique com o botão direito do mouse na saída do modelo treinado e selecione Salvar como Modelo Treinado. Esse modelo não é atualizado em execuções sucessivas do mesmo experimento.

  • Para executar a validação cruzada em um conjunto de dados rotulado, conecte o modelo não treinado ao Modelo de Validação Cruzada.

Observações técnicas

Esta seção contém detalhes de implementação, dicas e respostas para perguntas frequentes.

Dicas de uso

Esse tipo de classificador LD-SVM é mais útil nas seguintes condições:

  • Você tem um problema de classificação binária ou pode reduzir o problema para uma tarefa de classificação binária.

  • Você tentou um classificador linear, mas ele não foi bem executado.

  • Você tentou uma SVM não linear ou outro classificador e obteve uma boa precisão de classificação, mas demorou muito tempo para treinar o modelo.

  • Você pode permitir sacrificar a precisão da previsão para reduzir o tempo de treinamento.

Modelos de LD-SVM são uma boa opção quando seus dados são tão complicados que modelos lineares (como a regressão logística) são executadas de forma insatisfatória. Modelos de LD-SVM também são muito pequenos para serem usados em dispositivos móveis ou outros cenários onde modelos complexos (como redes neurais) são muito grandes para serem consumidos com eficiência.

Por outro lado, esse modelo não deve ser usado se você não se importa com o tamanho do modelo ou se um modelo linear é necessário para simplicidade ou velocidade de previsão. Também não há nenhum ponto para alterar para LD-SVM se os classificadores lineares já estão dando bons resultados ou se você pode obter alta precisão de classificação adicionando pequenas quantidades de não linearidade.

Detalhes de implementação

O modelo LD-SVM foi desenvolvido pela Microsoft Research como parte dos esforços contínuos para acelerar a previsão SVM não linear. O trabalho de Gonen e Alpaydin (2008) sobre o método de Aprendizagem de kernel múltiplo localizado foi especialmente valioso. O uso de uma função de kernel local permite que o modelo aprenda incorporação arbitrária de recursos locais, incluindo recursos altamente dimensionais, esparsos e computacionalmente profundos que apresentam não linearidades no modelo.

O LD-SVM é mais rápido do que a maioria dos outros classificadores por vários motivos:

  • O modelo aprende os limites de decisão lineares localmente. Portanto, um ponto de teste pode ser classificado com eficiência ao testá-lo contra seu limite de decisão local, em vez de testar contra todo o conjunto de limites de decisão em todo o espaço do recurso.

  • O modelo usa rotinas baseadas principalmente na eficiência para otimizar o espaço de incorporações de recursos locais estruturados em árvore que são dimensionados para grandes conjuntos de treinamento com mais de meio milhão de pontos de treinamento.

  • O custo de testar um ponto com relação ao seu limite de decisão local é logarítmico no número de pontos de treinamento.

Como consequência dessas otimizações, o treinamento do modelo LD-SVM é exponencialmente mais rápido que o treinamento de modelos SVM tradicionais.

Fórmula de otimização

optimization formula

Pesquisa

Para obter mais informações sobre o algoritmo e a pesquisa subjacente, consulte o kernel profundo local Learning para a previsão de SVM não linear eficiente.

Parâmetros do módulo

Nome Intervalo Type Padrão Descrição
Criar modo de aprendizagem Lista Opção de parâmetro de aprendiz Parâmetro único Opções avançadas de aprendiz:

1. Criar aprendiz usando um único parâmetro
2. Criar aprendiz usando um intervalo de parâmetros
Profundidade da árvore >=1 Integer 3 A profundidade da árvore SVM profunda local.
Lambda W >=1,401298E-45 Float 0,1 Peso de regularização do parâmetro classificador W.
Teta lambda >=1,401298E-45 Float 0,01 Peso de regularização do parâmetro classificador Teta Lambda.
Primo teta lambda >=1,401298E-45 Float 0,01 Peso de regularização do parâmetro classificador Teta Lambda prime.
Nitidez sigmoide >=1,401298E-45 Float 1.0 A nitidez sigmoide.
Profundidade da árvore [1;int.MaxValue] ParameterRangeSettings 1; 3; 5; 7 O intervalo da profundidade da árvore SVM profunda local.
Lambda W [1.401298E-45;3.40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Intervalo para o peso de regularização para o parâmetro classificador Lambda W.
Teta lambda [1.401298E-45;3.40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Intervalo para o peso de regularização para o parâmetro classificador Teta Lambda.
Primo teta lambda [1.401298E-45;3.40282347E+38] ParameterRangeSettings 0.1; 0.01; 0.001 Intervalo para o peso de regularização para o parâmetro classificador Teta Lambda prime.
Nitidez sigmoide [1.401298E-45;3.40282347E+38] ParameterRangeSettings 1.0; 0.1; 0.01 O intervalo para a nitidez sigmoide.
Normalizador de recurso Lista Tipo de normalizador Normalizador Mín-Máx O tipo de normalização a ser aplicado aos exemplos de aprendizado.
Número de iterações >=1 Integer 15000 Número de iterações de aprendizado.
Número de iterações [1;int.MaxValue] ParameterRangeSettings 10000; 15000; 20000 O intervalo para o número de iterações de aprendizado.
Propagação de número aleatório Qualquer Integer A propagação para o gerador de número aleatório que é usado pelo modelo. Deixe em branco para o padrão.
Permitir níveis categóricos desconhecidos Qualquer Booliano verdadeiro Se True, cria um nível adicional para cada coluna categórica. Quaisquer níveis no conjunto de dados teste que não estão disponíveis no conjunto de dados de treinamento são mapeados para este nível adicional.

Saída

Nome Tipo Descrição
Modelo não treinado Interface ILearner Um modelo de classificação binária não treinado.

Confira também

Classificação
Lista de Módulo A-Z