Progreso de la diabetes
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 55 de 58.
Una clínica de diabetes programa visitas de seguimiento según cuánto progresará la enfermedad de cada paciente en un año. En la sección 2, una característica solo explicaba una parte:
Ahora se introducen las diez mediciones de load_diabetes. ¿En qué modelo debería confiar la clínica y cuántos puntos se desviará?
Quiere una selección justa mediante validación cruzada, errores honestos en pacientes no vistos y una comprobación de los residuos para detectar cualquier cosa que el modelo pase por alto.
Desafío
DifícilEl programa lee los valores alfa de Ridge en alphas; el código inicial configura un gráfico con título.
- Separa una cuarta parte para pruebas con
random_state=0. - Evalúa un
LinearRegressiony unRidgepor cada valor alfa mediante validación cruzada de 5 particiones en las filas de entrenamiento. Imprime cada R cuadrado medio (3 decimales) y, después, el ganador. - Entrena el ganador e imprime su MAE y RMSE de prueba (1 decimal) y su R cuadrado (3).
- Representa en un gráfico de dispersión los residuos de prueba, valor real menos valor predicho, frente a las predicciones. Añade una línea en cero y, después, muestra el gráfico.
Para otra clínica y los valores alfa 0.5 y 2.0:
Linear: CV R squared 0.472
Ridge 0.5: CV R squared 0.481
Ridge 2.0: CV R squared 0.402
Winner: Ridge 0.5
Test errors: MAE 47.3, RMSE 58.9, R squared 0.414Después, Coddy describe tu gráfico de residuos.
Pruébalo tú mismo
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
diabetes = load_diabetes(as_frame=True)
X = diabetes.data
y = diabetes.target
# Los valores de alpha de Ridge que se probarán
n = int(input())
alphas = []
for i in range(n):
alphas.append(float(input()))
fig, ax = plt.subplots()
ax.set_title("Residuals on Test Patients")
ax.set_xlabel("Predicted progression")
ax.set_ylabel("Residual (true - predicted)")
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje supervisado
1Tu primer modelo
Aprender de ejemplosConjuntos de entrenamiento y pruebaAjustar y predecirEvaluar un modeloRepaso: clasificador de semillas4Regresión logística
Predicciones de sí o noEl umbral de decisiónLos pesos como evidenciaVarias clasesRepaso: filtro de spam2Vecinos más cercanos
Cómo decide k-NNCómo elegir kFronteras de decisiónEscalado para los vecinosRepaso: vecinos del vino5Medición de clasificadores
La matriz de confusiónPrecisión y exhaustividadLa puntuación F1Clases desequilibradasCurvas ROCRepaso: prueba de detección8Validación cruzada
Validación K-FoldComparación justa de modelosBúsqueda en cuadrículaRepaso: reparaciones de monopatines11Proyecto: especies de pingüinos
Conoce a los pingüinosPrepara los datosElige un modeloAjusta el modelo ganadorPublica el modelo3Regresión lineal
Predicción de númerosVarias característicasMedición de erroresGráficos de residuosRepaso: alquiler de bicicletas6Árboles de decisión
Los árboles hacen preguntasLeer un árbolProfundidad del árbolImportancia de las característicasRepaso: decisiones de préstamos9Métodos de conjunto
Bosques aleatoriosPor qué funcionan los bosquesAumento de gradienteRepaso: guardabosques12Desafíos finales
Progreso de la diabetesAprobación de créditoDígitos escritos a manoAbandono de clientesPractica por tu cuenta: Compilador de Python online