Source code for src.dfencoder.scalers

import numpy as np
from sklearn.preprocessing import QuantileTransformer

[docs]class StandardScaler(object): """Impliments standard (mean/std) scaling.""" def __init__(self): self.mean = None self.std = None
[docs] def fit(self, x): self.mean = x.mean() self.std = x.std()
[docs] def transform(self, x): result = x.astype(float) result -= self.mean result /= self.std return result
[docs] def inverse_transform(self, x): result = x.astype(float) result *= self.std result += self.mean return result
[docs] def fit_transform(self, x): self.fit(x) return self.transform(x)
[docs]class GaussRankScaler(object): """ So-called "Gauss Rank" scaling. Forces a transformation, uses bins to perform inverse mapping. Uses sklearn QuantileTransformer to work. """ def __init__(self): self.transformer = QuantileTransformer(output_distribution='normal')
[docs] def fit(self, x): x = x.reshape(-1, 1) self.transformer.fit(x)
[docs] def transform(self, x): x = x.reshape(-1, 1) result = self.transformer.transform(x) return result.reshape(-1)
[docs] def inverse_transform(self, x): x = x.reshape(-1, 1) result = self.transformer.inverse_transform(x) return result.reshape(-1)
[docs] def fit_transform(self, x): self.fit(x) return self.transform(x)
[docs]class NullScaler(object): def __init__(self): pass
[docs] def fit(self, x): pass
[docs] def transform(self, x): return x
[docs] def inverse_transform(self, x): return x
[docs] def fit_transform(self, x): return self.transform(x)