class_docstr: Transform data by scaling features to given feature range.
  Note that if `strict_range` is set, transformed values will always be within given range,
  regardless whether transform data exceeds training data value range (as in 1.x ver)
  
  The transformation is given by::
      X_scaled = (X - X.min()) / (X.max() - X.min()) * feature_range + feature_range_min
               = (X - X.min()) * (feature_range / (X.max() - X.min()) + feature_range_min
class_docstr_tok: ["Transform","data","by","scaling","features","to","given","feature","range",".","Note","that","if","`","strict_range","`","is","set",",","transformed","values","will","always","be","within","given","range",",","regardless","whether","transform","data","exceeds","training","data","value","range","(","as","in","1.x","ver",")","The","transformation","is","given","by",":",":","X_scaled","=","(","X","-","X.min","(",")",")","\/","(","X.max","(",")","-","X.min","(",")",")","*","feature_range","+","feature_range_min","=","(","X","-","X.min","(",")",")","*","(","feature_range","\/","(","X.max","(",")","-","X.min","(",")",")","+","feature_range_min"]
code: def __init__(self, select_col, feature_range, strict_range):
      self.feature_range = feature_range
      self.select_col = select_col
      self.strict_range = strict_range
      self._scale = None
      self._scale_min = None
      self._range_min = None
      self._range_max = None
  
imports: import logging
  import pandas
  from fate.arch import Context
  from ..abc.module import Module
label_desc: Use image node_id 1 to create a new MinMaxScaler object from inherited base classes: Module with example: obj = MinMaxScaler(select_col, feature_range, strict_range)