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.

La puntuación de validación de regresión no se ve bien.

Tengo un problema. Cuando observas la primera foto, puedes ver que la puntuación de validación no se ve bien.
Cuando comento esta línea plt.plot(np.sqrt(val_errors), "b-", linewidth=3, label="val") puedes ver perfectamente el gráfico de entrenamiento.
¿Por qué se ve tan grande el valor de validación?

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

X = dfListingsFeature_regresion.drop(columns=['host_id', 'id', 'price']) # Características
y = dfListingsFeature_regresion['price'] # Variable objetivo
print(dfListingsFeature_nor.shape)

from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split

def plot_learning_curves(model, X, y):
    X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=10)
    train_errors, val_errors = [], []
    for m in range(1, 1000 + 1):
        model.fit(X_train[:m], y_train[:m])
        y_train_predict = model.predict(X_train[:m])
        y_val_predict = model.predict(X_val)
        train_errors.append(mean_squared_error(y_train[:m], y_train_predict))
        val_errors.append(mean_squared_error(y_val, y_val_predict))

plt.figure(figsize=(20,20))
plt.plot(np.sqrt(train_errors), "r-+", linewidth=2, label="train")
plt.plot(np.sqrt(val_errors), "b-", linewidth=3, label="val")
plt.legend(loc="upper right", fontsize=14)
plt.xlabel("Tamaño del conjunto de entrenamiento", fontsize=14)
plt.ylabel("RMSE", fontsize=14)

lin_reg = LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=True)
plot_learning_curves(lin_reg, X, y)

plt.axis([0, 80, 0, 3])
plt.show()

imagen

imagen

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La puntuación de validación parece ser grande debido a que el error cuadrático medio (RMSE) se muestra en una escala logarítmica. La escala está configurada para mostrar un rango más amplio de los valores de error, lo que hace que las diferencias entre ellos sean más notables. Cuanto mayor sea el RMSE, mayor será el error y más lejos aparecerá en la escala logarítmica. Cuando se incluye la línea de la puntuación de validación, muestra que el error es mayor para el conjunto de validación que para el conjunto de entrenamiento. Esto indica que el modelo está sobreajustado, lo que significa que funciona bien en el conjunto de entrenamiento pero no generaliza bien a nuevos datos.

Comments are closed.