我有一个包含8个因变量的数据集(其中2个为分类数据)。我已经应用了ExtraTreeClassifier()
来剔除一些因变量。我还对X和y进行了特征缩放。
from sklearn.preprocessing import StandardScaler sc = StandardScaler() X = sc.fit_transform(X) X = sc.transform(X) y = sc.fit_transform(y) y = sc.transform(y)
之后,我将数据集进行了如下拆分:
from sklearn.cross_validation import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X_new, encoded2, test_size = 0.25, random_state = 0)
现在,我正在应用DecisionTreeRegressor
算法进行预测。但我希望得到实际的预测值(目前我得到的是缩放后的值)。如何做到这一点?是否有其他方法可以实现?因为我目前的方法给出的RMSE=0.02,而如果我不对因变量进行特征缩放,RMSE=18.4。请建议如何解决这种问题。
回答:
首先,对目标变量(y
)进行缩放并不是必需的,但如果你确实进行了缩放,StandardScaler
和其他类似的预处理技术都有一个inverse_transform
函数,通过它你可以得到原始值。
从StandardScaler
的文档中可以看到:
inverse_transform(X[, copy])
将数据缩放回原始表示