请稍等 ...
×

采纳答案成功!

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

reshape的疑问

老师,对于下面这句代码
x_train_scaled = scaler.fit_transform(
x_train.astype(np.float32).reshape(-1, 1)).reshape(-1, 28, 28)
这里 x_train.astype(np.float32).reshape(-1, 1)为什么要reshape成(-1,1),不应该是reshape成(-1,28*28)吗

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

1回答

正十七 2019-10-17 22:45:55

https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler.fit_transform

这里需要注意两点:

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

第二点:fit_transform会在每个feature上单独计算均值和方差然后做归一化,我们在这里需要的是全局的均值和方差,所以最后一维是1.

1 回复 有任何疑惑可以回复我~
  • 提问者 wxz123 #1
    老师,假如有n个样本,每个样本有m个特征,对于sklearn中StandardScaler的fit_transform方法,我的理解是对m组(每组有n个数)特征分别进行独立的归一化处理,而咱们课程中讲的是将n_examples*28*28看成一整个大组,对整个整个大组进行归一化,看成一个大组这样做的目的是要比对28*28组分别进行独立归一化处理的效果要好吗?还是有什么别的目的呢?
    回复 有任何疑惑可以回复我~ 2019-10-17 23:30:36
  • MSOP 回复 提问者 wxz123 #2
    同问,好像是每个特征单独归一化,,单从最后准确率看不出问题,因为归一化本质不影响训练的正确性,只是加快速度和准确率
    回复 有任何疑惑可以回复我~ 2022-01-25 17:00:51

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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