20.1 为神经网络预处理数据
问题描述
对数据进行预处理,使其可以用于神经网络。
解决方案
使用scikit-learn的StandardScaler标准化每个特征:


讨论
本节的内容和4.3节很相似,但因为它对于学习神经网络非常重要,所以我们在此复习一遍。一般来说,一个神经网络的参数会被初始化(或者说被创建)为一些小的随机数。如果特征值比参数值大很多,神经网络往往表现得不如人意。另外,观察值的特征值经过这些神经元的传递后,会进行相加,所以让所有的特征值拥有同样的单位就很重要。由于上面这些原因,最佳实践(尽管有些时候并非必须如此,比如当我们的数据都是二元特征的时候)就是先标准化每一个特征值,使其均值为0,标准差为1。使用scikitlearn的StandardScaler,很容易实现这一步。
可以查看我们的第一个特征的均值和标准差来看标准化的效果:




本书评论