pandasで標準化を元に戻すという意味のないことを考えてみました。
まず標準化の式はこうなので
t=\frac{x-μ}{σ}
元に戻すにはこうなります。
x=tσ+μ
では実際にやってみます
import pandas as pd
df = pd.read_csv("iris.csv")
df.drop("category", axis=1).describe()
続いて標準化関数です。
def standard(x):
val = {}
for col in x.columns:
val[col] = {"std" : x[col].std()}, {"mean" : x[col].mean()}
x[col] = (x[col] - x[col].mean()) / x[col].std()
return x, val
そして元に戻す関数です。
def reverse(x, val):
for col in x.columns:
x[col] = x[col] * val[col][0]["std"] + val[col][1]["mean"]
return x
では実際に標準化と元に戻すのをやってみましょう。
x, val = standard(df.drop("category", axis=1))
x.describe()
x = reverse(x, val)
x.describe()
というわけで元に戻りました。
まとめ
Pandasでやらないといけないときの参考に