Clasificador SVM en el Conjunto de Datos Iris

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

El conjunto de datos iris es un conjunto de datos clásico utilizado para problemas de clasificación. En este laboratorio, aprenderemos cómo trazar diferentes clasificadores SVM en el conjunto de datos iris utilizando scikit-learn de Python. Compararemos diferentes clasificadores SVM lineales en una proyección 2D del conjunto de datos iris.

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 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 sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/inspection -.-> lab-49170{{"Clasificador SVM en el Conjunto de Datos Iris"}} ml/sklearn -.-> lab-49170{{"Clasificador SVM en el Conjunto de Datos Iris"}} end

Importar las bibliotecas necesarias y cargar el conjunto de datos

import matplotlib.pyplot as plt
from sklearn import svm, datasets
from sklearn.inspection import DecisionBoundaryDisplay

## import some data to play with
iris = datasets.load_iris()
## Take the first two features. We could avoid this by using a two-dim dataset
X = iris.data[:, :2]
y = iris.target

Crear clasificadores SVM y ajustar los datos

C = 1.0  ## Parámetro de regularización SVM
models = (
    svm.SVC(kernel="linear", C=C),
    svm.LinearSVC(C=C, max_iter=10000, dual="auto"),
    svm.SVC(kernel="rbf", gamma=0.7, C=C),
    svm.SVC(kernel="poly", degree=3, gamma="auto", C=C),
)
models = (clf.fit(X, y) for clf in models)

Trazar la superficie de decisión para los clasificadores

## Configurar una cuadrícula 2x2 para la representación gráfica.
fig, sub = plt.subplots(2, 2)
plt.subplots_adjust(wspace=0.4, hspace=0.4)

X0, X1 = X[:, 0], X[:, 1]

## crear un DecisionBoundaryDisplay para cada clasificador
for clf, title, ax in zip(models, titles, sub.flatten()):
    disp = DecisionBoundaryDisplay.from_estimator(
        clf,
        X,
        response_method="predict",
        cmap=plt.cm.coolwarm,
        alpha=0.8,
        ax=ax,
        xlabel=iris.feature_names[0],
        ylabel=iris.feature_names[1],
    )
    ## trazar los puntos de datos
    ax.scatter(X0, X1, c=y, cmap=plt.cm.coolwarm, s=20, edgecolors="k")
    ax.set_xticks(())
    ax.set_yticks(())
    ax.set_title(title)

plt.show()

Interpretar los resultados

El código anterior generará una representación gráfica con cuatro subtramas. Cada subtrama muestra la superficie de decisión para un clasificador SVM diferente. El título de cada subtrama indica el tipo de kernel SVM utilizado en ese clasificador. Los puntos de datos están codificados por color según su clase objetivo.

Resumen

En este laboratorio, aprendimos cómo representar gráficamente diferentes clasificadores SVM en el conjunto de datos iris utilizando scikit-learn de Python. Comparamos diferentes clasificadores SVM lineales en una proyección bidimensional del conjunto de datos iris e interpretamos los resultados. Los clasificadores SVM son herramientas poderosas para problemas de clasificación y se pueden utilizar para una amplia variedad de conjuntos de datos.