<p>我想问题是特定于您的数据集的。例如,当我使用示例数据集时,<code>scaled_series</code>和<code>inverted_series</code>给出了两种不同的输出:</p>
<pre class="lang-py prettyprint-override"><code>Scaled Series output:
0 0.729412
1 0.741176
2 0.741176
3 0.670588
4 0.870588
dtype: float32
Inverted Series output:
0 0.698347
1 0.706612
2 0.706612
3 0.657025
4 0.797521
dtype: float32
</code></pre>
<p><code>scaled_series</code>和<code>inverted_series</code>都给出了不同的输出,但值彼此接近。如果您在使用<code>scale</code>之前<code>MinMaxScalar</code>保存了您的数据:</p>
<pre class="lang-py prettyprint-override"><code>from sklearn.preprocessing import scale
X = scale(X)
</code></pre>
<p>结果:</p>
<pre class="lang-py prettyprint-override"><code>Scaled Series output:
0 0.729412
1 0.741176
2 0.741176
3 0.670588
4 0.870588
dtype: float32
Inverted Series output:
0 -0.188240
1 -0.123413
2 -0.123413
3 -0.512372
4 0.589678
dtype: float32
</code></pre>
<p>现在,输出不是彼此接近,而是完全不同</p>
<p>代码:</p>
<hr/>
<pre class="lang-py prettyprint-override"><code>from sklearn.datasets import fetch_olivetti_faces
from sklearn.preprocessing import MinMaxScaler, scale
from pandas import Series
X, _ = fetch_olivetti_faces(return_X_y=True)
X = scale(X)
scaler = MinMaxScaler(feature_range=(0, 1))
scaler = scaler.fit(X)
scaled_X = scaler.transform(X)
scaled_series = Series(scaled_X[:, 17])
print("\nScaled Series output:")
print(scaled_series.head())
inverted_X = scaler.inverse_transform(scaled_X)
inverted_series = Series(inverted_X[:, 17])
print("\nInverted Series output:")
print(inverted_series.head())
</code></pre>