我是机器学习的新手,我想知道在数据缩放时如何评估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,是否有一种正确的方法来取消缩放,以便理解它
谢谢!
发布于 2020-10-02 00:38:22
在这里,您没有缩放目标变量,因此rmse的单位与目标变量相同。因为目标变量是以100,000美元为单位的,所以可以使用rmse度量来定义观测数据和预测数据之间的差异。这意味着rmse = 0.976993881287582 => 97,699美元。
https://stackoverflow.com/questions/64158598
复制相似问题