pass

来源:2-5 实战分类模型之数据归一化

战战的坚果

2020-04-08

这里需要注意两点:

第一点:fit_transform的输入必须是二维矩阵[n_examples, features],

第二点:fit_transform会在每个feature上单独计算均值和方差然后做归一化,我们在这里需要的是全局的均值和方差,所以最后一维是1.
老师,上面的讲解我不太懂,首先fit_transform的输入必须是二维矩阵[n_examples, features], n_examples代表样本总数,features代表特征数,那么n_examples是None?, features是2828?,features这个概念我不清楚。
在这里计算全局的均值和方差,所以让n_examples = None
28*28?令features=1吗?
老师说fit_transform会在每个feature上单独计算均值和方差然后做归一化,如果在每个feature上单独计算均值和方差的话,又该怎么设置呢?

写回答

1回答

正十七

2020-04-15

同学你好,可以看下面这个例子:

>>> from sklearn.preprocessing import StandardScaler
>>> data = [[0, 0], [0, 0], [1, 1], [1, 1]]
>>> scaler = StandardScaler()
>>> print(scaler.fit(data))
StandardScaler()
>>> print(scaler.mean_)
[0.5 0.5]
>>> print(scaler.transform(data))
[[-1. -1.]
 [-1. -1.]
 [ 1.  1.]
 [ 1.  1.]]
>>> print(scaler.transform([[2, 2]]))
[[3. 3.]

输入为4x2的矩阵,得到的均值有两个,4是样本数目,2是feature数目,所以这个操作是为每个特征求一个均值和方差,去做归一化。

再看看我们的需求,我们的需求是给给定所有的图片,每张图片有28*28个像素点,然后我们需要计算所有图片的所有像素点上的均值和方差,注意,只要一个均值和方差。所以我们把最后以为设成1。

同理,如果你想给图片的每个位置分别计算均值和方差,那么输入就应该是[None, 28 * 28]。

1
0

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程

相似问题

pass

回答 1

pass

回答 1

pass

回答 1

pass

回答 1

pass

回答 1