Reputation: 359
I have some data structured as below, trying to predict t
from the features.
train_df
t: time to predict
f1: feature1
f2: feature2
f3:......
Can t
be scaled with StandardScaler, so I instead predict t'
and then inverse the StandardScaler to get back the real time?
For example:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(train_df['t'])
train_df['t']= scaler.transform(train_df['t'])
After this, I would like to:
t'
with the real time value by using the inverse StandardScalerIs this possible?
Upvotes: 30
Views: 60482
Reputation: 11
While @Rohan's answer generally worked for me and my DataFrame column, I had to reshape the data according to the below StackOverflow answer.
Sklearn transform error: Expected 2D array, got 1D array instead
scaler = StandardScaler()
scaler.fit(df[[col_name]])
scaled = scaler.transform(df[[col_name]])
Upvotes: 1
Reputation: 526
Here is sample code. You can replace here data
with train_df['colunm_name']
.
Hope it helps.
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)
Upvotes: 14
Reputation: 8829
Yeah, and it's conveniently called inverse_transform
.
The documentation provides examples of its use.
Upvotes: 24