Spaces:
Sleeping
Sleeping
add data module
Browse files- src/data/.gitkeep +0 -0
- src/data/processing.py +48 -0
src/data/.gitkeep
ADDED
File without changes
|
src/data/processing.py
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import numpy as np
|
2 |
+
|
3 |
+
class Scaler():
|
4 |
+
|
5 |
+
def __init__(self, scaler='standard', range=(0,1)):
|
6 |
+
|
7 |
+
if not scaler.lower() in ['minmax', 'standard']:
|
8 |
+
raise ValueError('Incorrect scaler. Please choose between minmax and standard.')
|
9 |
+
|
10 |
+
self.scaler = scaler.lower()
|
11 |
+
self.min = range[0]
|
12 |
+
self.max = range[1]
|
13 |
+
|
14 |
+
def fit(self, X):
|
15 |
+
|
16 |
+
if self.scaler == 'minmax':
|
17 |
+
self.data_min = np.nanmin(X)
|
18 |
+
self.data_max = np.nanmax(X)
|
19 |
+
|
20 |
+
else:
|
21 |
+
self.data_mean = np.nanmean(X)
|
22 |
+
self.data_std = np.nanstd(X)
|
23 |
+
|
24 |
+
return self
|
25 |
+
|
26 |
+
def transform(self, X):
|
27 |
+
|
28 |
+
X = X.copy()
|
29 |
+
|
30 |
+
if self.scaler == 'minmax':
|
31 |
+
X = (X-self.data_min)/(self.data_max - self.data_min)*(self.max-self.min) + self.min
|
32 |
+
|
33 |
+
else:
|
34 |
+
X = (X-self.data_mean)/self.data_std
|
35 |
+
|
36 |
+
return X
|
37 |
+
|
38 |
+
def inverse_transform(self, X):
|
39 |
+
|
40 |
+
X = X.copy()
|
41 |
+
|
42 |
+
if self.scaler == 'minmax':
|
43 |
+
X = ((X-self.min)*(self.data_max-self.data_min)/(self.max-self.min)) + self.data_min
|
44 |
+
|
45 |
+
else:
|
46 |
+
X = X*self.data_std + self.data_mean
|
47 |
+
|
48 |
+
return X
|