Aprendizaje supervisado con vectores de soporte

Beginner

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

Introducción

En este tutorial, aprenderemos sobre las Máquinas de Vectores de Soporte (SVM, por sus siglas en inglés), que son un conjunto de métodos de aprendizaje supervisado utilizados para la clasificación, la regresión y la detección de valores atípicos. Las SVM son efectivas en espacios de alta dimensión y todavía pueden funcionar bien cuando el número de dimensiones es mayor que el número de muestras.

Las ventajas de las SVM incluyen su efectividad en espacios de alta dimensión, su eficiencia en memoria y su versatilidad en términos de diferentes funciones de kernel. Sin embargo, es importante evitar el sobreajuste y elegir el kernel y el término de regularización adecuados para el problema dado.

En este tutorial, cubriremos los siguientes temas:

  1. Clasificación con SVM
  2. Clasificación multi-clase
  3. Puntuaciones y probabilidades
  4. Problemas desequilibrados
  5. Regresión con SVM
  6. Estimación de densidad y detección de novedades

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 88%. Ha recibido una tasa de reseñas positivas del 67% por parte de los estudiantes.

Clasificación con SVM

  • Comience importando las bibliotecas necesarias:
from sklearn import svm
  • Defina las muestras de entrenamiento X y las etiquetas de clase y:
X = [[0, 0], [1, 1]]
y = [0, 1]
  • Cree una instancia del clasificador SVC y ajuste los datos:
clf = svm.SVC()
clf.fit(X, y)
  • Utilice el modelo entrenado para predecir nuevos valores:
clf.predict([[2., 2.]])

Clasificación multi-clase

  • Los clasificadores SVC y NuSVC se pueden utilizar para la clasificación multi-clase utilizando el enfoque "uno contra uno":
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]])

Puntuaciones y Probabilidades

  • Las SVM no proporcionan directamente estimaciones de probabilidad, pero puede habilitar la estimación de probabilidad estableciendo el parámetro probability en True:
clf = svm.SVC(probability=True)
clf.fit(X, y)
  • Luego puede utilizar el método predict_proba para obtener las probabilidades de cada clase:
clf.predict_proba([[2., 2.]])
  • Tenga en cuenta que la estimación de probabilidad es costosa y requiere validación cruzada, por lo que úsela con prudencia.

Problemas desequilibrados

  • Las SVM pueden manejar problemas desequilibrados ajustando el parámetro class_weight:
clf = svm.SVC(class_weight={1: 10})
clf.fit(X, y)

Regresión con SVM

  • Para problemas de regresión, se pueden utilizar SVM con la clase SVR:
X = [[0, 0], [1, 1]]
y = [0.5, 2.5]
regr = svm.SVR()
regr.fit(X, y)
regr.predict([[1, 1]])

Estimación de densidad y detección de novedades

  • Las SVM también se pueden utilizar para la estimación de densidad y la detección de novedades con la clase OneClassSVM:
clf = svm.OneClassSVM()
clf.fit(X)
clf.predict(X)

Resumen

En este tutorial, aprendimos sobre las Máquinas de Vectores de Soporte (SVM) y sus aplicaciones en clasificación, regresión, estimación de densidad y detección de novedades. Cubrimos los pasos para la clasificación, la clasificación multi-clase, las puntuaciones y las probabilidades, los problemas desequilibrados, la regresión y la estimación de densidad. Las SVM son herramientas poderosas para el aprendizaje automático y se pueden utilizar en una variedad de escenarios para obtener predicciones precisas.