ターゲットがログに記録されているときにクロス検証によってRMSEを計算するのが難しくなります。ターゲットがログに記録されているときにクロス検証を使用して、ログに記録されていない領域での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を計算します。私は、クロスバリデーションをしながらこれを行う方法がわかりません。私は1つのアルファ値のためのモデルを実行して、トレーニングデータの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))
た私は、私はそれをどのように行うだろう、疑問に思って?あなたの応答をありがとう! – user6200992
同じ計算です。 1つは 'y1 = x'を使用し、もう1つは' z = log(x) 'のところで' y2 = z'を使います。次に、y1とy2の両方のRMSEを計算して比較します。 – zfisher
私はそれをしましたが、値は比較できません。彼らは非常に異なっています。実際には、RMSEの値がアルファ= 10と同じであるかどうかを、2つのアプローチを使用して調べてみましたが、私の質問で言及しましたが、それらは異なっています。それが私が正しい提案を求めている理由です。 – user6200992