Aprendizaje Supervisado con Scikit-Learn

Beginner

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

Introducción

En el aprendizaje supervisado, queremos aprender la relación entre dos conjuntos de datos: los datos observados X y una variable externa y que queremos predecir.
Hay dos tipos principales de problemas de aprendizaje supervisado: la clasificación y la regresión. En la clasificación, el objetivo es predecir la clase o categoría de una observación, mientras que en la regresión, el objetivo es predecir una variable objetivo continua.

En este laboratorio, exploraremos los conceptos de aprendizaje supervisado y veremos cómo implementarlos utilizando scikit-learn, una popular biblioteca de aprendizaje automático en Python. Cubriremos temas como la clasificación por vecinos más cercanos, la regresión lineal y las máquinas de vectores de soporte (SVM).

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 94%. Ha recibido una tasa de reseñas positivas del 91% por parte de los estudiantes.

Clasificación por Vecinos Más Cercanos

En este paso, exploraremos el concepto de clasificación por vecinos más cercanos y cómo se puede implementar utilizando scikit-learn. Utilizaremos el conjunto de datos iris, que consta de mediciones de diferentes flores de iris.

Cargar el Conjunto de Datos Iris
import numpy as np
from sklearn import datasets

iris_X, iris_y = datasets.load_iris(return_X_y=True)
Dividir los Datos en Conjuntos de Entrenamiento y Prueba
np.random.seed(0)
indices = np.random.permutation(len(iris_X))
iris_X_train = iris_X[indices[:-10]]
iris_y_train = iris_y[indices[:-10]]
iris_X_test = iris_X[indices[-10:]]
iris_y_test = iris_y[indices[-10:]]
Crear y Ajustar un Clasificador por Vecinos Más Cercanos
from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier()
knn.fit(iris_X_train, iris_y_train)
Hacer Predicciones
predictions = knn.predict(iris_X_test)

Regresión Lineal

En este paso, exploraremos el concepto de regresión lineal y cómo se puede implementar utilizando scikit-learn. Utilizaremos el conjunto de datos de diabetes, que consta de variables fisiológicas de pacientes y su evolución de la enfermedad después de un año.

Cargar el Conjunto de Datos de Diabetes
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
Crear y Ajustar un Modelo de Regresión Lineal
from sklearn import linear_model

regr = linear_model.LinearRegression()
regr.fit(diabetes_X_train, diabetes_y_train)
Hacer Predicciones y Calcular Métricas de Rendimiento
predictions = regr.predict(diabetes_X_test)
mse = np.mean((predictions - diabetes_y_test)**2)
variance_score = regr.score(diabetes_X_test, diabetes_y_test)

Máquinas de Vectores de Soporte (SVM)

En este paso, exploraremos el concepto de máquinas de vectores de soporte (SVM) y cómo se pueden utilizar para tareas de clasificación. Las SVM buscan encontrar un hiperplano que separe al máximo los puntos de datos de diferentes clases.

Crear y Ajustar una SVM Lineal
from sklearn import svm

svc = svm.SVC(kernel='linear')
svc.fit(iris_X_train, iris_y_train)
Crear y Ajustar SVM con Diferentes Kernels
svc_poly = svm.SVC(kernel='poly', degree=3)
svc_rbf = svm.SVC(kernel='rbf')

svc_poly.fit(iris_X_train, iris_y_train)
svc_rbf.fit(iris_X_train, iris_y_train)

Resumen

En este laboratorio, aprendimos sobre diferentes técnicas de aprendizaje supervisado y cómo implementarlas utilizando scikit-learn. Cubrimos la clasificación por vecinos más cercanos, la regresión lineal y las máquinas de vectores de soporte (SVM). Estas técnicas nos permiten predecir variables de salida a partir de observaciones de alta dimensión y clasificar datos en diferentes categorías. Al aplicar estas técnicas a conjuntos de datos del mundo real, podemos obtener información y hacer predicciones en diversos dominios como la salud, las finanzas y las ciencias sociales.