0Pricing
Learn AI with Python · Lección

SVM para clasificación con sklearn

SVC, LinearSVC, selección del kernel, class_weight='balanced' y probability=True.

SVM para clasificación con sklearn es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

SVM en scikit-learn

scikit-learn ofrece varios clasificadores SVM. El principal es SVC, que admite fronteras lineales y basadas en kernels mediante su 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))

Los parámetros principales de SVC

Tres parámetros determinan el comportamiento de SVC:

  • kernel: el tipo de frontera (linear, rbf, poly)
  • C: la penalización por errores / regularización
  • gamma: la amplitud del kernel para rbf/poly
from sklearn.svm import SVC

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

Escalar siempre primero

Las SVM son sensibles a la escala. Incluya el escalador y SVC en un pipeline para que el escalado se ajuste únicamente con los datos de entrenamiento, incluso dentro de la validación 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 conjuntos de datos grandes

SVC(kernel="linear") escala mal cuando hay muchas muestras. LinearSVC utiliza un solver más rápido, optimizado para problemas lineales, y gestiona mucho mejor los datos grandes y de alta dimensión.

from sklearn.svm import LinearSVC

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

SVC frente a LinearSVC

Utilice LinearSVC para datos grandes o dispersos, como el texto. Utilice SVC cuando necesite kernels para crear fronteras no lineales. Tenga en cuenta que LinearSVC utiliza una función de pérdida ligeramente diferente y no incluye predict_proba.

Desequilibrio de clases

Cuando una clase es poco frecuente, la SVM tiende a favorecer a la clase mayoritaria. Establecer class_weight="balanced" pondera automáticamente las clases de forma inversamente proporcional a su frecuencia.

from sklearn.svm import SVC

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

Pesos de clase personalizados

También puede pasar un diccionario explícito a class_weight para dar más importancia a una clase específica que con el balanceo automático.

from sklearn.svm import SVC

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

Estimaciones de probabilidad

De forma predeterminada, SVC devuelve etiquetas duras. Establezca probability=True para habilitar predict_proba (mediante calibración interna), necesario para ROC AUC y el ajuste de umbrales. Esto ralentiza el entrenamiento.

from sklearn.svm import SVC

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

SVM multiclase

SVC gestiona automáticamente más de dos clases mediante un esquema uno contra uno. No necesita cambiar el código: solo ajuste el modelo con etiquetas multiclase y funcionará.

from sklearn.svm import SVC

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

Ajuste de C y gamma con GridSearchCV

El procedimiento habitual consiste en realizar una búsqueda en cuadrícula sobre C y gamma en una escala logarítmica, todo dentro de un pipeline de escalado.

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_)

Consejos prácticos

Los SVM destacan en conjuntos de datos pequeños o medianos con márgenes claros. Tienen dificultades con datos muy grandes (utilice LinearSVC o cambie a boosting). Escale siempre las características, ajuste C y gamma, y utilice class_weight para corregir el desequilibrio.

Comprobación rápida

Compruebe sus conocimientos sobre los SVM de sklearn.

Resumen

Resumen: Utilice SVC con kernel, C y gamma para la clasificación no lineal, siempre dentro de un pipeline de escalado. Cambie a LinearSVC para datos grandes o de texto. Gestione el desequilibrio con class_weight="balanced" y ajuste conjuntamente C y gamma con GridSearchCV.

Preguntas frecuentes

¿La lección «SVM para clasificación con sklearn» es gratis?

Sí — el texto completo de «SVM para clasificación con sklearn» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «SVM para clasificación con sklearn»?

SVC, LinearSVC, selección del kernel, class_weight='balanced' y probability=True. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «SVM para clasificación con sklearn»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Teoría de SVM: márgenes y vectores de soporte
  2. Truco del kernel: RBF, polinómico y sigmoide
  3. SVM para clasificación con sklearn
  4. SVM para regresión (SVR)
← Volver a Learn AI with Python