Partilhar via


Two-Class máquina de vetor de apoio local

Importante

O suporte para o Estúdio de ML (clássico) terminará a 31 de agosto de 2024. Recomendamos a transição para o Azure Machine Learning até essa data.

A partir de 1 de dezembro de 2021, não poderá criar novos recursos do Estúdio de ML (clássico). Até 31 de agosto de 2024, pode continuar a utilizar os recursos existentes do Estúdio de ML (clássico).

A documentação do Estúdio de ML (clássico) está a ser descontinuada e poderá não ser atualizada no futuro.

Cria uma classificação binária modelo usando o algoritmo de máquina de vetor de suporte localmente profundo

Categoria: Machine Learning / Modelo de Inicialização / Classificação

Nota

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

Módulos semelhantes de arrasto e queda estão disponíveis em Azure Machine Learning designer.

Visão geral do módulo

Este artigo descreve como usar o módulo de máquina de vetor de suporte local de duas classes localmente em Machine Learning Studio (clássico), para criar um classificador de vetor de apoio não linear de duas classes (SVM) que é otimizado para uma previsão eficiente.

As máquinas vetoriais de suporte (SVMs) são uma classe extremamente popular e bem pesquisada de modelos de aprendizagem supervisionados, que podem ser usados em tarefas lineares e não lineares de classificação. Pesquisas recentes focaram-se em formas de otimizar estes modelos para escalar eficientemente para conjuntos de formação maiores. Nesta implementação do Microsoft Research, a função kernel que é usada para mapear pontos de dados para o espaço de funcionalidades é especificamente projetada para reduzir o tempo necessário para a formação, mantendo a maior parte da precisão de classificação.

Esta modelo é um método de aprendizagem supervisionado, pelo que requer um conjunto de dados marcado, que inclui uma coluna de etiquetas.

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

Como configurar Two-Class máquina de vetor de apoio profundo local

  1. Adicione o módulo de Locally-Deep de suporte de duas classes à sua experiência em Studio (clássico).

  2. Especifique como pretende que o modelo seja treinado, definindo a opção modo de formação Create.

    • Parâmetro único: Se souber como pretende configurar o modelo, forneça um conjunto específico de valores como argumentos.

    • Intervalo de parâmetros: Se não tiver a certeza dos melhores parâmetros, pode encontrar os parâmetros ideais especificando vários valores e utilizando o módulo Tune Model Hyperparameters para encontrar a configuração ideal. O treinador iteração sobre várias combinações das configurações fornecidas e determina a combinação de valores que produz a melhor modelo.

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

    O custo da formação aumenta linearmente com a profundidade das árvores; por isso, escolha uma profundidade adequada, dependendo do tempo que puder gastar ao construir o modelo.

    O tempo de treino deve aproximadamente duplicar à medida que a profundidade é aumentada por um.

    A precisão da previsão deve aumentar, atingir um pico e depois diminuir com a profundidade crescente.

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

    A regularização restringe os componentes de grande valor no classificador treinado. Quando o número de amostras é insuficiente dado o número de funcionalidades, pode utilizar a regularização L2 para evitar a sobremontagem. Valores maiores para a Lambda W significam que é dada maior ênfase à regularização dos pesos classificados e menos no erro de classificação do conjunto de treino.

    Se o valor predefinido (0.1) não funcionar bem, também deverá tentar {0.0001, 0.001 e 0.01}.

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

    Esta modelo funciona dividindo o espaço de dados e característica do espaço em regiões. Quando Lambda Theta é minimizada de tal forma que os limites da região no modelo treinados estão muito perto dos pontos de dados de treino, o modelo pode produzir um erro de treino baixo, mas um erro de teste elevado, devido a excesso de adaptação.

    Para reduzir o número de parâmetros que precisam de ser validados, uma boa regra do polegar é definir Lambda Theta para um décimo do valor que é usado para Lambda W. Valores maiores significam que é dada maior ênfase à prevenção da sobreajustagem do que na minimização dos erros de classificação no conjunto de treino.

    Se o valor predefinido (0.01) não funcionar bem, também deve tentar {0.0001, 0.001 e 0.1}.

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

    Valores maiores dão ao modelo a flexibilidade para aprender limites de decisão curvos, enquanto valores menores podem limitar os limites da decisão a um padrão linear mais passo a passo.

    Este parâmetro funciona em conjunto com o parâmetro Sigma . Para reduzir o número de parâmetros que precisam de ser validados, uma boa regra do polegar é definir Lambda Theta Prime para um décimo do valor de Lambda W.

    Se o valor predefinido (0.01) não funcionar bem, também deve tentar {0.0001, 0.001 e 0.1,}.

  7. Para a nitidez sigmoide, escreva um valor a utilizar para o parâmetro de escala σ.

    Valores maiores significam que o tanh no núcleo local Φ (teta) está saturado, enquanto um valor menor implica uma gama de funcionamento mais linear para. Pode encontrar a fórmula de otimização completa na secção Notas Técnicas .

    Se o valor predefinido (1) não funcionar bem, também pode tentar {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 normalizar funcionalidades, escolha um método para utilizar na normalização dos valores de funções. São apoiados os seguintes métodos:

    • Normalizador de binário: O normalizador de binário cria caixotes de tamanho igual e, em seguida, normaliza cada valor em cada caixote para ser dividido pelo número total de caixotes.

    • Normalizador gaussiano: O normalizador gaussiano redimensiona os valores de cada característica para ter uma média de 0 e uma variação de 1. Isto é feito calculando 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 min-max redimensiona linearmente todas as características para o intervalo [0,1].

      A rescalificação para o intervalo [0,1] é feita mudando os valores de cada recurso de modo a que o valor mínimo seja 0, e depois dividindo-se pelo novo valor máximo (que é a diferença entre os valores máximos originais e mínimos).

    • Não normalize: Não é efetuada qualquer normalização.

  10. Em sementes de número aleatório, digite um valor a utilizar como semente se quiser garantir a reprodutibilidade através de corridas.

  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 o desmarcar, o modelo só pode aceitar os valores contidos nos dados de formação. No primeiro caso, o modelo pode ser menos preciso para valores conhecidos, mas pode fornecer melhores previsões para novos valores (desconhecidos).

  12. Ligação um conjunto de dados marcado e um dos módulos de treino:

    Nota

    Se passar uma gama de parâmetros para o Modelo de Comboio, utiliza apenas o primeiro valor na lista de parâmetros.

    Se passar um único conjunto de valores de parâmetros para o módulo Tune Model Hyperparameters , quando espera uma gama de definições para cada parâmetro, ignora os valores e utiliza os valores predefinidos para o aluno.

    Se selecionar a opção De Alcance de Parâmetros e introduzir um único valor para qualquer parâmetro, esse valor único especificado é utilizado ao longo da varredura, mesmo que outros parâmetros se alterem através de uma gama de valores.

  13. Execute a experimentação.

Resultados

Após o treino estar completo:

  • Para ver um resumo dos parâmetros do modelo, clique com o botão direito na saída do módulo Train Model ou no módulo Tune Model Hyperparameters e selecione Visualize.

  • Para guardar um encaixe do modelo treinado, clique à direita na saída de modelo treinado e selecione Save As Trained Model. Esta modelo não é atualizada em sucessivas execuções da mesma experiência.

  • Para efetuar a validação cruzada contra um conjunto de dados rotulado, ligue o modelo não treinado ao Modelo De Validação Cruzada.

Notas técnicas

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

Dicas de utilização

Este classificador LD-SVM é mais útil nas seguintes condições:

  • Tem um problema de classificação binária, ou pode reduzir o seu problema a uma tarefa de classificação binária.

  • Tentou um classificador linear, mas não teve um bom desempenho.

  • Experimentou um SVM não linear ou outro classificador, e teve uma boa precisão de classificação, mas demorou muito tempo a treinar o modelo.

  • Podes sacrificar a precisão da previsão para reduzir o tempo de treino.

Os modelos LD-SVM são uma boa escolha quando os seus dados são suficientemente complicados para que os modelos lineares (como a regressão logística) funcionem mal. Os modelos LD-SVM também são pequenos o suficiente para serem usados em dispositivos móveis ou outros cenários onde modelos complexos (como redes neurais) são demasiado grandes para serem consumidos de forma eficiente.

Inversamente, este modelo não deve ser utilizado se não se importar com modelo tamanho ou se for necessária uma modelo linear para a simplicidade ou velocidade de previsão. Também não faz sentido mudar para LD-SVM se os classificadores lineares já estiverem a dar bons resultados, ou se conseguires obter uma elevada 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 não linear de SVM. O trabalho de Gonen e Alpaydin (2008) sobre o método de aprendizagem de múltiplos núcleos localizados foi particularmente valioso. A utilização de uma função de núcleo local permite que o modelo aprenda incorporações arbitrárias de recursos locais, incluindo características altamente dimensionais, escassas e computacionalmente profundas que introduzam não linearidades no modelo.

O LD-SVM é mais rápido do que a maioria dos outros classificadores por várias razões:

  • O modelo aprende limites de decisão que são localmente lineares. Por conseguinte, um ponto de teste pode ser classificado de forma eficiente testando-o contra a sua fronteira de decisão local, em vez de testar contra todo o conjunto de limites de decisão em todo o espaço de características.

  • O modelo usa rotinas baseadas em primários eficientes para otimizar o espaço de incorporações locais estruturadas por árvores que escalam para grandes conjuntos de treino com mais de meio milhão de pontos de treino.

  • O custo de testar um ponto contra a sua fronteira de decisão local é logarítmico no número de pontos de treino.

Como consequência destas otimizações, a formação do modelo LD-SVM é exponencialmente mais rápida do que a formação de modelos SVM tradicionais.

Fórmula de otimização

optimization formula

Investigação

Para obter mais informações sobre o algoritmo e a pesquisa subjacente, consulte Aprendizagem de Kernel Profundo Local para Previsão eficiente não linear de SVM.

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Description
Criar modo de treinador Lista Opção de parâmetro do aprendiz Parâmetro único Opções avançadas de aprendizagem:

1. Crie um aprendiz usando um único parâmetro
2. Crie o aprendiz usando uma gama de parâmetros
Profundidade da árvore >=1 Número inteiro 3 A profundidade da árvore SVM localmente profunda.
Lambda W >=1.401298E-45 Float 0.1 Peso de regularização para o parâmetro classificador Lambda W.
Lambda Theta >=1.401298E-45 Float 0.01 Peso de regularização para o parâmetro classificador Lambda Theta.
Lambda Theta Prime >=1.401298E-45 Float 0.01 Peso de regularização para o parâmetro classificador Lambda Theta prime.
Nitidez sigmoide >=1.401298E-45 Float 1.0 A nitidez sigmoide.
Profundidade da árvore [1;int. MaxValue] ParâmetroRangeSettings 1; 3; 5; 7 O alcance para a profundidade da árvore SVM localmente profunda.
Lambda W [1.401298E-45;3.40282347E+38] ParâmetroRangeSettings 0.1; 0.01; 0.001 Gama para o peso de regularização para o parâmetro classificador Lambda W.
Lambda Theta [1.401298E-45;3.40282347E+38] ParâmetroRangeSettings 0.1; 0.01; 0.001 Gama para o peso de regularização para o parâmetro classificador Lambda Theta.
Lambda Theta Prime [1.401298E-45;3.40282347E+38] ParâmetroRangeSettings 0.1; 0.01; 0.001 Gama para o peso de regularização para o parâmetro classificador Lambda Theta prime'.
Nitidez sigmoide [1.401298E-45;3.40282347E+38] ParâmetroRangeSettings 1.0; 0.1; 0.01 O alcance para a nitidez sigmoide.
Normalizador de recurso Lista Tipo de normalizador Min-Max normalizador O tipo de normalização a aplicar-se a exemplos de aprendizagem.
Número de iterações >=1 Número inteiro 15 000 Número de iterações de aprendizagem.
Número de iterações [1;int. MaxValue] ParâmetroRangeSettings 10000; 15000; 20000 O intervalo para o número de iterações de aprendizagem.
Semente de número aleatório Qualquer Número inteiro A semente para o gerador de números aleatórios que é usado pela modelo. Deixe-o em branco para o padrão.
Permitir níveis categóricos desconhecidos Qualquer Booleano Verdadeiro Se verdadeiro, cria um nível adicional para cada coluna categórica. Quaisquer níveis no conjunto de dados de teste que não estejam disponíveis no conjunto de dados de formação são mapeados para este nível adicional.

Saída

Nome Tipo Description
modelo destreinados Interface ILearner Uma classificação binária destreinada modelo.

Ver também

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