Repaso: reparaciones de monopatines
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 40 de 58.
Desafío
IntermedioEl mostrador de alquiler de un parque de skate quiere un modelo que detecte las tablas devueltas que necesitan reparación. El programa lee el valor máximo de k que se probará.
- Separa el 25% como filas de prueba (
random_state=0). - Para cada k en
ks, valida de forma cruzada k-NN en las filas de entrenamiento (cv=5). Dibuja las medias en forma de barras e imprime el mejor k. - Busca en una cuadrícula el
max_depthde un árbol entre los valores dedepths(cv=5,random_state=0) e imprime el mejor. - Gana la media más alta: imprime
Winner: k-NNoWinner: treecon su precisión en los datos de prueba.
Para otro parque y 13:
Best k: 13 (mean 0.785)
Best depth: 5 (mean 0.763)
Winner: k-NN, test accuracy 0.822Coddy describe después tu gráfico. El suyo se ve así:
Pruébalo tú mismo
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
# El valor máximo de k que se probará, por ejemplo, 15
max_k = int(input())
# Una fila por cada monopatín devuelto: alquileres desde su último mantenimiento, puntuaciones de desgaste de 0 a 10
# y grietas en la tabla; 1 en repair significa que fue al taller
boards = pd.read_csv("skateboards.csv")
features = ["rentals", "wheel_wear", "bearing_noise", "grip_wear", "truck_wobble", "deck_cracks"]
X = boards[features]
y = boards["repair"]
# Cada característica es un recuento o una puntuación pequeña, así que k-NN no necesita escalado aquí
ks = list(range(1, max_k + 1, 2))
depths = [2, 3, 4, 5, 6, 7, 8]
fig, ax = plt.subplots()
ax.set_title("Skateboard Repairs: Accuracy by k")
ax.set_xlabel("k (neighbors)")
ax.set_ylabel("Mean CV accuracy")
ax.set_xticks(ks)
ax.set_ylim(0.6, 0.9) # empieza en 0.6 para que se aprecien las pequeñas diferencias
# Escribe tu código a continuación
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éstamosPractica por tu cuenta: Compilador de Python online