Aprendizaje supervisado con scikit-learn
George Boorman
Core Curriculum Manager
Regresión Ridge/Lasso: elegir alpha
KNN: elegir n_neighbors
Hiperparámetros: parámetros que especificamos antes de ajustar el modelo
alpha y n_neighborsProbar muchos valores diferentes de hiperparámetros
Colocarlos todos por separado
Comprobar su rendimiento
Elegir los valores de mejor rendimiento
Esto se denomina ajuste de hiperparámetros.
Es esencial utilizar la validación cruzada para evitar el sobreajuste del conjunto de prueba.
Todavía podemos dividir los datos y realizar una validación cruzada en el conjunto de entrenamiento.
Conservaremos el conjunto de pruebas para la evaluación final.



from sklearn.model_selection import GridSearchCVkf = KFold(n_splits=5, shuffle=True, random_state=42)param_grid = {"alpha": np.arange(0.0001, 1, 10), "solver": ["sag", "lsqr"]}ridge = Ridge()ridge_cv = GridSearchCV(ridge, param_grid, cv=kf)ridge_cv.fit(X_train, y_train)print(ridge_cv.best_params_, ridge_cv.best_score_)
{'alpha': 0.0001, 'solver': 'sag'}
0.7529912278705785
from sklearn.model_selection import RandomizedSearchCVkf = KFold(n_splits=5, shuffle=True, random_state=42) param_grid = {'alpha': np.arange(0.0001, 1, 10), "solver": ['sag', 'lsqr']} ridge = Ridge()ridge_cv = RandomizedSearchCV(ridge, param_grid, cv=kf, n_iter=2) ridge_cv.fit(X_train, y_train)print(ridge_cv.best_params_, ridge_cv.best_score_)
{'solver': 'sag', 'alpha': 0.0001}
0.7529912278705785
test_score = ridge_cv.score(X_test, y_test)print(test_score)
0.7564731534089224
Aprendizaje supervisado con scikit-learn