【问题标题】:evaluate scaled RMSE评估缩放的 RMSE
【发布时间】:2021-01-17 08:47:38
【问题描述】:

我是机器学习的新手,想了解如何在扩展数据时评估 RMSE。 我使用了加利福尼亚住房数据集并使用 SVR 对其进行了训练:

from sklearn.datasets import fetch_california_housing

housing = fetch_california_housing()
X = housing["data"]
y = housing["target"]

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

然后我为 SVR 缩放数据并训练模型:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

from sklearn.svm import LinearSVR

lin_svr = LinearSVR(random_state=42)
lin_svr.fit(X_train_scaled, y_train)

当我想评估 RMSE 时,结果被缩放,所以对我来说没有多大意义:

from sklearn.metrics import mean_squared_error

y_pred = lin_svr.predict(X_train_scaled)
rmse = np.sqrt(mean_squared_error(y_train, y_pred))

rmse 为 0.976993881287582

我如何理解结果? (y列是几万美元)

我尝试通过对数据进行缩放来y_pred,但结果没有意义:

y_pred = lin_svr.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
np.sqrt(mse)

所以问题是,当数据被缩放时我如何解释 RMSE,是否有正确的方法来取消它以理解它

谢谢!

【问题讨论】:

    标签: scikit-learn svm


    【解决方案1】:

    这里不缩放目标变量,因此 rmse 的单位与目标变量相同。因为目标变量的单位是 100,000 美元,所以使用 rmse 测量来定义观察数据和预测数据之间的差异。这意味着 rmse = 0.976993881287582 => 97,699 美元。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 2011-05-10
      • 2021-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      相关资源
      最近更新 更多