Aprendizado Supervisionado com Vetores de Suporte

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste tutorial, aprenderemos sobre Máquinas de Vetores de Suporte (SVM), que são um conjunto de métodos de aprendizagem supervisionada usados para classificação, regressão e detecção de valores discrepantes. As SVM são eficazes em espaços de alta dimensionalidade e podem ter um bom desempenho mesmo quando o número de dimensões é maior que o número de amostras.

As vantagens das SVM incluem sua eficácia em espaços de alta dimensionalidade, eficiência de memória e versatilidade em termos de diferentes funções kernel. No entanto, é importante evitar o overfitting e escolher o kernel e o termo de regularização corretos para o problema em questão.

Neste tutorial, abordaremos os seguintes tópicos:

  1. Classificação com SVM
  2. Classificação multiclasse
  3. Pontuações e probabilidades
  4. Problemas desequilibrados
  5. Regressão com SVM
  6. Estimativa de densidade e detecção de novidades

Dicas de Máquina Virtual

Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para praticar.

Às vezes, pode ser necessário esperar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante a aprendizagem, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para si.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 88%. Recebeu uma taxa de avaliações positivas de 67% dos estudantes.

Classificação com SVM

  • Comece importando as bibliotecas necessárias:
from sklearn import svm
  • Defina as amostras de treino X e as etiquetas das classes y:
X = [[0, 0], [1, 1]]
y = [0, 1]
  • Crie uma instância do classificador SVC e ajuste os dados:
clf = svm.SVC()
clf.fit(X, y)
  • Utilize o modelo treinado para prever novos valores:
clf.predict([[2., 2.]])

Classificação Multi-classe

  • Os classificadores SVC e NuSVC podem ser usados para classificação multi-classe utilizando a abordagem "um-contra-um":
X = [[0], [1], [2], [3]]
Y = [0, 1, 2, 3]
clf = svm.SVC(decision_function_shape='ovo')
clf.fit(X, Y)
dec = clf.decision_function([[1]])

Pontuações e Probabilidades

  • As máquinas de vetores de suporte (SVMs) não fornecem diretamente estimativas de probabilidade, mas você pode habilitar a estimativa de probabilidade definindo o parâmetro probability como True:
clf = svm.SVC(probability=True)
clf.fit(X, y)
  • Em seguida, você pode usar o método predict_proba para obter as probabilidades de cada classe:
clf.predict_proba([[2., 2.]])
  • Observe que a estimativa de probabilidade é cara e requer validação cruzada, portanto, utilize-a criteriosamente.

Problemas Desbalanceados

  • As máquinas de vetores de suporte (SVMs) podem lidar com problemas desbalanceados ajustando o parâmetro class_weight:
clf = svm.SVC(class_weight={1: 10})
clf.fit(X, y)

Regressão com SVM

  • Para problemas de regressão, as máquinas de vetores de suporte (SVMs) podem ser usadas com a classe SVR:
X = [[0, 0], [1, 1]]
y = [0.5, 2.5]
regr = svm.SVR()
regr.fit(X, y)
regr.predict([[1, 1]])

Estimativa de Densidade e Detecção de Novidades

  • As máquinas de vetores de suporte (SVMs) também podem ser usadas para estimativa de densidade e detecção de novidades com a classe OneClassSVM:
clf = svm.OneClassSVM()
clf.fit(X)
clf.predict(X)

Resumo

Neste tutorial, aprendemos sobre Máquinas de Vetores de Suporte (SVM) e suas aplicações em classificação, regressão, estimativa de densidade e detecção de novidades. Cobrimos os passos para classificação, classificação multiclasse, pontuações e probabilidades, problemas desbalanceados, regressão e estimativa de densidade. As SVMs são ferramentas poderosas para aprendizado de máquina e podem ser usadas em diversos cenários para alcançar previsões precisas.