Support Vector Machines (SVM) para concursos

Se você está se preparando para concursos públicos na área de tecnologia, é provável que já tenha se deparado com perguntas sobre esse algoritmo. Mas fique tranquilo(a), porque estamos aqui para descomplicar tudo!

Avatar


30 de Junho de 2023

Vamos falar sobre SVM, a famosa Support Vector Machine! Se você está se preparando para concursos públicos na área de tecnologia, é provável que já tenha se deparado com perguntas sobre esse algoritmo. Mas fique tranquilo(a), porque estamos aqui para descomplicar tudo!

SVM, ou Máquina de Vetores de Suporte, é uma técnica de aprendizado de máquina usada para problemas de classificação e regressão. Mas, vamos focar na classificação por enquanto. A ideia principal por trás do SVM é criar um hiperplano que separe os dados em diferentes classes, de forma que fique o mais distante possível de cada uma delas. Imagina como se fosse uma espécie de “margem de segurança” para classificar corretamente os pontos.

O formato do hiperplano depende da quantidade de dimensões ou de atributos do conjunto de dados utilizados. Se são duas dimensões, o hiperplano é uma linha; se são três dimensões, o hiperplano é um plano. Se existem mais de três dimensões, falamos em um hiperplano n-dimensional:

Uma das coisas legais do SVM é que ele pode trabalhar tanto com dados linearmente separáveis quanto com dados que não são linearmente separáveis. Para esses últimos, ele utiliza truques matemáticos, como o “truque do kernel”, para mapear os dados para um espaço dimensional superior, onde eles possam ser separados linearmente. É como dar uma voltinha no espaço para enxergar melhor a separação!

Ao contrário de alguns algoritmos como os de árvore de decisão, o SVM não fornece diretamente uma explicação visual de como ocorre a classificação. Ele se baseia puramente nos pontos de suporte, que são os pontos mais próximos do hiperplano. Esses pontos são superimportantes, porque são eles que definem a localização do hiperplano e, consequentemente, a classificação dos demais dados.

Imaginando abordagens ainda não exploradas pelos examinadores, eles podem perguntar sobre os tipos de kernel que podem ser utilizados. Kernel é uma função que permite realizar a tal da transformação para um espaço dimensional superior. Os tipos de kernel mais comuns são o linear, o polinomial e o radial basis function (RBF). Cada um tem suas próprias características e é adequado para diferentes tipos de problemas.

Vamos detalhar um pouco mais as funções de kernel:

Kernel Linear:

A função de kernel linear é uma das mais simples e diretas. Ela é adequada para problemas em que os dados são linearmente separáveis. Essa função não realiza nenhuma transformação nos dados, apenas calcula o produto escalar entre eles. Ela é eficiente computacionalmente e funciona bem em casos em que a separação das classes é linear.

Kernel Polinomial:

A função de kernel polinomial permite mapear os dados em um espaço dimensional superior usando funções polinomiais. Ela é útil para problemas em que os dados não são linearmente separáveis, mas podem ser separados por meio de uma curva polinomial. O grau do polinômio é um parâmetro importante que afeta a complexidade do modelo e sua capacidade de ajuste.

Kernel RBF (Radial Basis Function):

O kernel RBF é um dos mais populares para SVM. Ele mapeia os dados em um espaço dimensional infinito por meio de uma função gaussiana. Essa função atribui pesos aos pontos de acordo com sua proximidade com um ponto central, conhecido como centroide. O RBF é especialmente útil para problemas não linearmente separáveis, pois pode capturar decisões de fronteira mais complexas.

Kernel Sigmoid:

A função de kernel sigmoid é usada para transformar os dados em um espaço dimensional superior usando uma função sigmoidal. Ela é frequentemente aplicada em problemas de classificação binária. No entanto, vale ressaltar que o kernel sigmoid não é tão amplamente utilizado quanto os kernels linear, polinomial e RBF.

 

Além disso, também é importante entender os parâmetros do SVM, como o custo (C) e o parâmetro de suavização do kernel (gamma). Esses parâmetros influenciam na flexibilidade do modelo e no equilíbrio entre a precisão e a capacidade de generalização. Destaco os principais parâmetros ajustáveis de uma SVM:

C (Cost):

O parâmetro C controla o trade-off entre a maximização da margem e a minimização do erro de classificação. Um valor baixo de C permitirá uma margem mais ampla, permitindo que alguns pontos de treinamento sejam classificados incorretamente. Por outro lado, um valor alto de C buscará uma margem mais estreita e tentará classificar corretamente o máximo de pontos possível. A escolha do valor de C depende do equilíbrio desejado entre a precisão do modelo e sua capacidade de generalização.

Gamma:

O parâmetro gamma afeta a influência de cada ponto de treinamento na formação do hiperplano de decisão. Valores baixos de gamma indicam uma influência maior e uma região de decisão mais restrita, tornando o modelo mais propenso a sobreajuste. Valores altos de gamma dão menos peso aos pontos de treinamento, resultando em uma região de decisão mais suave e geralmente levando a um melhor desempenho de generalização.

Kernel:

O kernel é uma função usada para mapear os dados para um espaço dimensional superior, onde a separação linear é mais eficiente ou até mesmo possível. Já detalhamos na postagem as funções de kernel mais utilizadas. A escolha do kernel depende da natureza dos dados e do tipo de problema de classificação que você está enfrentando.

Degree (para kernels polinomiais):

Se você estiver usando um kernel polinomial, o parâmetro degree controla o grau do polinômio usado para a transformação dos dados. Um valor mais alto de grau permitirá que o modelo se ajuste melhor aos dados de treinamento, mas pode levar ao sobreajuste.

 

Por fim, vale destacar que o SVM é amplamente utilizado em diversas áreas, como reconhecimento de padrões, bioinformática, processamento de imagens e muito mais. Dominar essa técnica pode abrir portas para diferentes oportunidades profissionais.

Para finalizar, um pouco de prática:

Prova: Instituto Consulplan – 2021 – SEFAZ-PI – Analista de Banco de Dados

Considerando os métodos de Mineração de Dados, analise a seguinte descrição: “constrói os denominados classificadores lineares, que separam o conjunto de dados por meio de um hiperplano, sendo considerado um dos mais efetivos para a tarefa de classificação.” Trata-se de:

A Wang-Mendel.

B Backpropagation.

C SVM (Support Vector Machines).

D Classificador Bayesiano Ingênuo.

Gabarito: C

Comentários: Observe que a definição apresentada dá uma serie de dicas sobre qual algoritmo está sendo cobrado: classificador linear, separação por um hiperplano, utilização em tarefas de classificação. Assim, nosso gabarito é a letra C. Sobre as outras alternativas: Wang-Mendel nunca ouvi falar, Backpropagation é o algoritmo de treinamento das redes neurais artificiais e um classificador bayesiano ingênuo (Naive Bayes) é baseado no teorema das probabilidades condicionais.

Prova: CESPE / CEBRASPE – 2022 – Petrobras – Ciência de Dados

As máquinas de vetores de suporte (SVMs) são originalmente utilizadas para a classificação de dados em duas classes, ou seja, na geração de dicotomias. Nas SVMs com margens rígidas, conjuntos de treinamento linearmente separáveis podem ser classificados. Acerca das características das SVMs com margens rígidas, julgue o item a seguir.

Um conjunto linearmente separável é composto por exemplos que podem ser separados por pelo menos um hiperplano. As SVMs lineares buscam o hiperplano ótimo segundo a teoria do aprendizado estatístico, definido como aquele em que a margem de separação entre as classes presentes nos dados é minimizada.

Gabarito: E

Comentários: O erro da questão é informar que a margem de separação entre as classes deve ser minimizada, quando, na verdade, deve ser maximizada. Ou seja a distância entre os vetores de suporte e o hiperplano deve ser a maior possível.

Prova: CESPE / CEBRASPE – 2021 – SERPRO – Analista – Especialização: Ciência de Dados

Em razão de seu bom desempenho, o algoritmo SVM (support vector machines) é invariante à escala dimensional dos conjuntos de dados, o que torna dispensável a padronização e o pré-processamento dos dados.

Gabarito: E

Comentários: SVM é dependente da quantidade de dimensões do conjunto de dados. Quanto mais dimensões, mais dificuldade teremos em traçar o hiperplano e o formato do hiperplano depende da quantidade de dimensões. Além disso, desconheço algoritmo ou processo de aprendizado de máquina que desconsidere a transformação de dados. Isso é balela do examinador!

 


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
Clique nos links abaixo:

CONCURSOS ABERTOS

CONCURSOS 2023

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:

TELEGRAM

Avatar


30 de Junho de 2023