营销型网站建设合同范本/微博推广方式
归一化的目的
归一化的目的是使得最终梯度下降的时候可以不同维度的θ参数可以在接近的调整幅度上。
归一化的本质
本质是要统一输入数据的数量级。
最大最小值归一化
这里
举个例子,比如第 j 列的数值是[1, 2, 3, 5, 5],那么归一化 之后是[0, 0.25, 0.75, 1, 1]。如果第 j 列的数值是[1, 2, 3, 5, 50001],那么归一化之后是[0, 0.00004, 0.00006, 0.0001, 1]。
优点:一定可以把数据归到0~1之间
缺点:如果有一个离群值,会使得一个数字为1,其他数据几乎为0,所以受离群值影响较大。
标准归一化
标准归一化包含了均值归一化和方差归一化,经过处理的数据符合正态分布,即均值为0,标准差为1。
其中μ为所有样本数据的均值,σ为所有样本数据的标准差。
相对于最大值最小值归一化来说,因为标准归一化是除以的是标准差,而标准差的计算 会考虑到所有样本数据,所以受到离群值的影响会小一些。但是如果是使用标准归一化不一定会把数据缩放到 0 到 1 之间了。
强调
我们在做特征工程的时候,很多时候如果对训练集的数据进行了预处理,比如这里讲的 归一化,那么未来对测试集的时候,和模型上线来新的数据的时候,都要进行相同的数据预 处理流程,而且所使用的均值和方差是来自当时训练集的均值和方差! 因为我们人工智能要干的事情就是从训练集数据中找规律,然后利用找到的规律去预测 未来。这也就是说假设训练集和测试集以及未来新来的数据是属于同分布的!从代码上面来 说如何去使用训练集的均值和方差呢?如果是上面代码的话,就需要把 scaler 对象持久化, 回头模型上线的时候再加载进来去对新来的数据使用。