【发布时间】:2017-12-18 12:56:34
【问题描述】:
我是 python 新手,在记录目标时面临通过交叉验证计算 RMSE 的困难。
我已经通过以下方式定义了 RMSE 函数(当没有记录目标时):
def rmse_cv(model):
rmse= np.sqrt(-cross_val_score(model, X_train_s, Y_train, scoring="neg_mean_squared_error", cv = 5))
return(rmse)
model_ridge = Ridge()
alphas = [0.005, 0.05, 0.1, 0.3, 1, 3, 5, 10, 15]
cv_ridge = [rmse_cv(Ridge(alpha = alpha)).mean() for alpha in alphas]
print(cv_ridge)
现在,我想用记录的目标 Y_log_train 替换 Y_train 并计算未记录空间中的 RMSE。在进行交叉验证时,我不确定如何执行此操作。
如果我必须为一个 alpha 值运行模型并获得训练数据的 RMSE,我将按照以下步骤操作:
model_ridge = Ridge(alpha =10).fit(X_train_s, Y_log_train)
y_pred_log_r = model_ridge.predict(X_train_s)
y_pred_r = np.exp(y_pred_log_r)
RMSE_ridge_train =np.sqrt(mean_squared_error(Y_train, y_pred_r))
【问题讨论】:
标签: python scikit-learn regression prediction cross-validation