title: sklearn MinMaxScaler: Inverse does not equal original
body: <p>Consider the following python3 example where we use MinMaxScaler from scikit-learn to normalize a range of numbers, and then de-normalized them back to their original values.</p>
  
  <pre><code>from pandas import Series
  from sklearn.preprocessing import MinMaxScaler
  
  data = [10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0]
  series = Series(data)
  
  values = series.values
  values = values.reshape((len(values), 1))
  
  scaler = MinMaxScaler(feature_range=(0,1))
  scaler = scaler.fit(values)
  
  normalized = scaler.transform(values)
  inversed = scaler.inverse_transform(normalized)
  </code></pre>
  
  <p>One would expect that <code>inversed</code> equals <code>values</code>. Alas:</p>
  
  <pre><code>&gt;&gt;&gt; inversed == values
  array([[ True],
         [ True],
         [False],
         [ True],
         [ True],
         [False],
         [ True],
         [ True],
         [ True],
         [ True]])
  
  &gt;&gt;&gt; print(values)
  [[ 10.]
   [ 20.]
   [ 30.]
   [ 40.]
   [ 50.]
   [ 60.]
   [ 70.]
   [ 80.]
   [ 90.]
   [100.]]
  
  &gt;&gt;&gt; print(inversed)
  [[ 10.]
   [ 20.]
   [ 30.]
   [ 40.]
   [ 50.]
   [ 60.]
   [ 70.]
   [ 80.]
   [ 90.]
   [100.]]
  </code></pre>
  
  <p>What's happening here? Why is <code>inversed[2]</code> and <code>inversed[5]</code> unequal to <code>values[2]</code> and <code>values[5]</code>?</p>