Created
May 15, 2020 19:38
-
-
Save marskar/e704be99b1564b8aaecd4fe19f74e379 to your computer and use it in GitHub Desktop.
A simple Python class to min-max scale sequences of numbers.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from typing import Tuple, List | |
class MinMaxScaler: | |
def __init__(self, values: Tuple) -> List: | |
self.values = values | |
self.min_val = min(values) | |
self.max_val = max(values) | |
self.max_min_diff = self.max_val - self.min_val | |
def min_max_scale(self, x: Tuple): | |
return [(x_i - self.min_val) / self.max_min_diff for x_i in x] | |
def inverse_min_max_scale(self, x: Tuple): | |
return [x_i * self.max_min_diff + self.min_val for x_i in x] | |
if __name__ == '__main__': | |
original_values = 5, 8, 12 | |
mms = MinMaxScaler(original_values) | |
scaled_values = mms.min_max_scale(mms.values) | |
scaled_values # [0.0, 0.42857142857142855, 1.0] | |
mms.inverse_min_max_scale(scaled_values) # [5.0, 8.0, 12.0] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment