请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

pass

这里需要注意两点:

第一点: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上单独计算均值和方差的话,又该怎么设置呢?

正在回答 回答被采纳积分+3

1回答

正十七 2020-04-15 22:24:53

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

>>> 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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号