es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener el criterio de parada temprana para la regresión Lasso.

Tengo un problema. ¿Existe una opción para obtener una detención temprana? Porque vi en un gráfico que después de un tiempo ocurre el sobreajuste, así que quiero obtener lo más óptimo.

dfListingsFeatureregresión = pd.read_csv(r"https://raw.githubusercontent.com/Coderanker3/dataset4/main/listingscleaned.csv")
d = {True: 1, False: 0, np.nan : np.nan} 
dfListingsFeatureregresión['hostissuperhost'] = dfListingsFeatureregresión['hostissuperhost'].map(d).astype('int')

X = dfListingsFeatureregresión.drop(columns=['hostid', 'id', 'price']) # Características
y = dfListingsFeatureregresión['price'] # Variable objetivo
print(dfListingsFeatureregresiónnor.shape)

steps = [('selección de características', SelectFromModel(estimador=LogisticRegression(maxiter=1000))),
         ('lasso', Lasso(alpha=0.1))]

pipeline = Pipeline(steps)

Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, test_size=0.2, random_state=30)

parámetros = { }

grid = GridSearchCV(pipeline, param_grid=parámetros, cv=5)
grid.fit(Xtrain, ytrain)

print("puntuación = %3.2f" %(grid.score(Xtest, ytest)))
print('Puntuación del conjunto de entrenamiento: ' + str(grid.score(Xtrain, ytrain)))
print('Puntuación del conjunto de prueba: ' + str(grid.score(Xtest, ytest)))

<h1>Predicción</h1>

ypred = grid.predict(Xtest)

print("RMSE Val:", metrics.mean_squared_error(ytest, ypred, squared=False))

ypredtrain = grid.predict(Xtrain)
print("Entrenamiento:", metrics.mean_squared_error(ytrain, ypredtrain, squared=False))

r2 = metrics.r2_score(ytest, ypred)
print(r2)
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, existe una opción para obtener parada anticipada. Puede utilizar el parámetro ‘early_stopping’ ofrecido por algunos modelos de regresión en scikit-learn. Este parámetro detiene el entrenamiento del modelo cuando la puntuación de validación deja de mejorar.

    Por ejemplo, en la regresión de Lasso, puede establecer el parámetro ‘early_stopping’ en True para habilitar la parada anticipada. Aquí hay un ejemplo:

    lasso = Lasso(alpha=0.1, early_stopping=True)
    

    Esto detendrá el entrenamiento del modelo cuando la puntuación de validación deja de mejorar. Puede establecer el parámetro ‘tol’ para controlar la tolerancia del criterio de parada.

    En su código, puede agregar el parámetro ‘early_stopping’ al estimador Lasso en el pipeline, de esta manera:

    steps = [('feature_selection', SelectFromModel(estimator=LogisticRegression(max_iter=1000))),
             ('lasso', Lasso(alpha=0.1, early_stopping=True))]
    

    Esto habilitará la parada anticipada para el modelo de regresión de Lasso en su pipeline.

Comments are closed.