Aprendizaje supervisado con vectores de soporte

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-71099{{"Aprendizaje supervisado con vectores de soporte"}} end

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.