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 to_model(self):
      return dict(
          scale=self._scale.to_dict(),
          scale_dtype=self._scale.dtype.name,
          scale_min=self._scale_min.to_dict(),
          scale_min_dtype=self._scale_min.dtype.name,
          range_min=self._range_min.to_dict(),
          range_min_dtype=self._range_min.dtype.name,
          range_max=self._range_max.to_dict(),
          range_max_dtype=self._range_max.dtype.name,
          strict_range=self.strict_range,
          select_col=self.select_col,
      )
  
imports: import logging
  import pandas
  from fate.arch import Context
  from ..abc.module import Module
label_desc: Use image node_id 4 for calling the MinMaxScaler obj's underlying member method code with example usage: obj.to_model() and returns: dict