Python 如何从缩放数据重建原始数据?

Python 如何从缩放数据重建原始数据?,python,machine-learning,scipy,scikit-learn,Python,Machine Learning,Scipy,Scikit Learn,我有一些数据,我用scikit learn进行了缩放。 缩放后,我希望恢复原始数据。这可能吗?如果没有,如何从原始数据中获得对应关系 这里有一个玩具的例子 from sklearn.datasets import load_iris from sklearn.preprocessing import scale iris = load_iris() X = iris.data X_scale = scale(X) print X[:4] print X_scale[:4] 生产 [[ 5.1

我有一些数据,我用scikit learn进行了缩放。 缩放后,我希望恢复原始数据。这可能吗?如果没有,如何从原始数据中获得对应关系

这里有一个玩具的例子

from sklearn.datasets import load_iris
from sklearn.preprocessing import scale
iris = load_iris()
X = iris.data
X_scale = scale(X)
print X[:4]
print X_scale[:4]
生产

[[ 5.1  3.5  1.4  0.2]
 [ 4.9  3.   1.4  0.2]
 [ 4.7  3.2  1.3  0.2]
 [ 4.6  3.1  1.5  0.2]]
[[-0.90068117  1.03205722 -1.3412724  -1.31297673]
 [-1.14301691 -0.1249576  -1.3412724  -1.31297673]
 [-1.38535265  0.33784833 -1.39813811 -1.31297673]
 [-1.50652052  0.10644536 -1.2844067  -1.31297673]]

如何从第二个数据恢复原始数据?

最常见的特征缩放方法之一是将数据集的平均值设置为零,将标准偏差设置为一,从而缩放数据。这对于许多学习算法非常有用。这只需使用以下方法即可实现:

scaled_array = (original_array - mean_of_array)/std_of_array
在Sklearn中,每个数组列都以这种方式缩放。要找到原始数据,只需重新排列上述数据,或者只计算未标度数据中每列的标准偏差和平均值。然后,您可以随时使用它将缩放数据转换回原始数据


有关Sklearn的缩放工作原理的更多信息,请参阅以下文档。要了解更多有关特征缩放的一般信息,可以从开始。

最常见的特征缩放方法之一是将数据集的平均值设置为零,将标准偏差设置为一,从而缩放数据。这对于许多学习算法非常有用。这只需使用以下方法即可实现:

scaled_array = (original_array - mean_of_array)/std_of_array
在Sklearn中,每个数组列都以这种方式缩放。要找到原始数据,只需重新排列上述数据,或者只计算未标度数据中每列的标准偏差和平均值。然后,您可以随时使用它将缩放数据转换回原始数据


有关Sklearn的缩放工作原理的更多信息,请参阅以下文档。要了解更多有关功能扩展的一般信息,可以从开始。

MarkyD43为这个问题提供了一个很好的答案。下面是将数据转换回原始版本的代码版本

from sklearn.datasets import load_iris
from sklearn.preprocessing import scale
iris = load_iris()
X = iris.data

mean_of_array = X.mean(axis=0)
std_of_array = X.std(axis=0)

X_scale = scale(X)

X_original = (X_scale * std_of_array) + mean_of_array

print X[:4]
print X_original[:4]
生产

[[ 5.1  3.5  1.4  0.2]
 [ 4.9  3.   1.4  0.2]
 [ 4.7  3.2  1.3  0.2]
 [ 4.6  3.1  1.5  0.2]]
[[ 5.1  3.5  1.4  0.2]
 [ 4.9  3.   1.4  0.2]
 [ 4.7  3.2  1.3  0.2]
 [ 4.6  3.1  1.5  0.2]]

MarkyD43为这个问题提供了一个很好的答案。下面是将数据转换回原始版本的代码版本

from sklearn.datasets import load_iris
from sklearn.preprocessing import scale
iris = load_iris()
X = iris.data

mean_of_array = X.mean(axis=0)
std_of_array = X.std(axis=0)

X_scale = scale(X)

X_original = (X_scale * std_of_array) + mean_of_array

print X[:4]
print X_original[:4]
生产

[[ 5.1  3.5  1.4  0.2]
 [ 4.9  3.   1.4  0.2]
 [ 4.7  3.2  1.3  0.2]
 [ 4.6  3.1  1.5  0.2]]
[[ 5.1  3.5  1.4  0.2]
 [ 4.9  3.   1.4  0.2]
 [ 4.7  3.2  1.3  0.2]
 [ 4.6  3.1  1.5  0.2]]

谢谢,这是一个很好的答案。谢谢,这是一个很好的答案。