0Pricing
Learn AI with Python · Aula

SVMs para classificação com sklearn

SVC, LinearSVC, seleção de kernel, class_weight='balanced' e probability=True.

SVMs para classificação com sklearn é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

SVMs no scikit-learn

O scikit-learn oferece vários classificadores SVM. O principal é o SVC, que oferece suporte a fronteiras lineares e baseadas em núcleos por meio do parâmetro kernel.

from sklearn.svm import SVC

model = SVC(kernel="rbf", C=1.0, gamma="scale")
model.fit(Xtr, ytr)
print(model.score(Xte, yte))

Os principais parâmetros do SVC

Três parâmetros determinam o comportamento do SVC:

  • kernel o tipo de fronteira (linear, rbf, poly)
  • C a penalidade por erro/a regularização
  • gamma a largura do núcleo para rbf/poly
from sklearn.svm import SVC

model = SVC(kernel="rbf", C=10, gamma=0.1)

Sempre padronize primeiro

Os SVMs são sensíveis à escala. Envolva o escalonador e o SVC em um fluxo de processamento para que o escalonamento seja ajustado apenas com os dados de treinamento, inclusive durante a validação cruzada.

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
pipe.fit(Xtr, ytr)

LinearSVC para grandes conjuntos de dados

SVC(kernel="linear") não escala bem para muitas amostras. O LinearSVC usa um solucionador mais rápido, otimizado para problemas lineares, e lida muito melhor com dados grandes e de alta dimensão.

from sklearn.svm import LinearSVC

model = LinearSVC(C=1.0, max_iter=5000)
model.fit(Xtr, ytr)

SVC versus LinearSVC

Use LinearSVC para dados grandes ou esparsos, como texto. Use SVC quando precisar de núcleos para fronteiras não lineares. Observe que o LinearSVC usa uma função de perda um pouco diferente e não oferece predict_proba.

Desequilíbrio entre classes

Quando uma classe é rara, o SVM tende a favorecer a classe majoritária. Definir class_weight="balanced" atribui automaticamente pesos às classes de forma inversamente proporcional à sua frequência.

from sklearn.svm import SVC

model = SVC(kernel="rbf", class_weight="balanced")
model.fit(Xtr, ytr)

Pesos personalizados das classes

Você também pode passar um dicionário explícito para class_weight a fim de dar mais peso a uma classe específica do que ao balanceamento automático.

from sklearn.svm import SVC

model = SVC(class_weight={0: 1, 1: 5})  # class 1 errors cost 5x

Estimativas de probabilidade

Por padrão, SVC retorna rótulos definitivos. Defina probability=True para habilitar predict_proba (por meio de calibração interna), necessário para ROC AUC e ajuste de limiares. Isso torna o treinamento mais lento.

from sklearn.svm import SVC

model = SVC(probability=True)
model.fit(Xtr, ytr)
proba = model.predict_proba(Xte)[:, 1]

SVMs multiclasses

SVC lida automaticamente com mais de duas classes usando um esquema um contra um. Você não precisa alterar o código; basta fazer fit com rótulos multiclasses para que tudo funcione.

from sklearn.svm import SVC

model = SVC(decision_function_shape="ovr")
model.fit(X_multiclass, y_multiclass)

Ajuste de C e gama com GridSearchCV

A receita padrão é fazer uma busca em grade sobre C e gamma em escala logarítmica, tudo dentro de um fluxo de processamento com escalonamento.

from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
param = {
    "svc__C": [0.1, 1, 10, 100],
    "svc__gamma": [0.001, 0.01, 0.1, 1],
}
gs = GridSearchCV(pipe, param, cv=5, scoring="f1")
gs.fit(Xtr, ytr)
print(gs.best_params_)

Dicas práticas

SVMs apresentam ótimo desempenho em conjuntos de dados pequenos ou médios, com margens bem definidas. Elas têm dificuldade com dados muito grandes (use LinearSVC ou mude para métodos de reforço). Sempre escale os dados, ajuste C e gama e use class_weight para lidar com o desbalanceamento.

Verificação rápida

Teste os seus conhecimentos sobre SVM do sklearn.

Recapitulação

Recapitulação: use SVC com kernel, C e gamma para classificação não linear, sempre dentro de um fluxo de processamento com escalonamento. Mude para LinearSVC em dados grandes ou de texto. Lide com o desbalanceamento usando class_weight="balanced" e ajuste C e gamma em conjunto com GridSearchCV.

Perguntas Frequentes

A aula “SVMs para classificação com sklearn” é grátis?

Sim — o texto completo de “SVMs para classificação com sklearn” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “SVMs para classificação com sklearn”?

SVC, LinearSVC, seleção de kernel, class_weight='balanced' e probability=True. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “SVMs para classificação com sklearn”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Teoria de SVM: margens e vetores de suporte
  2. Truque do kernel: RBF, polinomial e sigmoide
  3. SVMs para classificação com sklearn
  4. SVMs para regressão (SVR)
← Voltar para Learn AI with Python