[sklearn][standardscaler] 我可以反转模型输出的标准计算器吗?



我有一些数据结构如下,试图从特征中预测t

train_df
t: time to predict
f1: feature1
f2: feature2 
f3:......

t可以使用标准缩放器进行缩放吗,所以我改为预测t',然后反转标准缩放器以返回实时?

例如:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(train_df['t'])
train_df['t']= scaler.transform(train_df['t'])

运行回归模型,

检查分数,

!! 使用实时值检查预测的 t' (反向标准缩放器) <- 可能吗?

是的,它方便地称为inverse_transform

该文档提供了其使用示例。

下面是示例代码。您可以将此处data替换为train_df['colunm_name']。 希望对您有所帮助。

from sklearn.preprocessing import StandardScaler
data = [[1,1], [2,3], [3,2], [1,1]]
scaler = StandardScaler()
scaler.fit(data)
scaled = scaler.transform(data)
print(scaled)
# for inverse transformation
inversed = scaler.inverse_transform(scaled)
print(inversed)

虽然@Rohan的答案通常适用于我和我的 DataFrame 列,但我必须根据下面的 StackOverflow 答案重塑数据。

Sklearn 转换错误:预期的 2D 数组,而是获得 1D 数组

scaler = StandardScaler()
scaler.fit(df[[col_name]])
scaled = scaler.transform(df[[col_name]])