数据正规化(data normalization)的原理及实现(numpy) | 您所在的位置:网站首页 › 正规化和规范化是一个意思吗 › 数据正规化(data normalization)的原理及实现(numpy) |
原理
数据正规化(data normalization)是将数据的每个样本(向量)变换为单位范数的向量,各样本之间是相互独立的.其实际上,是对向量中的每个分量值除以正规化因子.常用的正规化因子有 L1, L2 和 Max.假设,对长度为 n 的向量,其正规化因子 z 的计算公式,如下所示: 注意:Max 与无穷范数 不同,无穷范数 是需要先对向量的所有分量取绝对值,然后取其中的最大值;而 Max 是向量中的最大分量值,不需要取绝对值的操作. 补充:一阶范数也称为曼哈顿距离(Manhanttan distance)或街区距离;二阶范数也称为欧式距离(Euclidean distance) 实现 利用numpy的linalg.norm实现 linalg = linear algebra,norm就是范数的意思。 函数调用 x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False) 参数: x:表示矩阵 axis:处理类型 axis=1表示按行向量处理,求多个行向量的范数 axis=0表示按列向量处理,求多个列向量的范数 axis=None表示矩阵范数 keepding:是否保持矩阵的二维特性。True表示保持矩阵的二维特性,False相反 def normalizeRows(x): """ Implement a function that normalizes each row of the matrix x (to have unit length). Argument: x -- A numpy matrix of shape (n, m) Returns: x -- The normalized (by row) numpy matrix. You are allowed to modify x. """ ### START CODE HERE ### (≈ 2 lines of code) # Compute x_norm as the norm 2 of x. Use np.linalg.norm(..., ord = 2, axis = ..., keepdims = True) x_norm = np.linalg.norm(x, axis = 1, keepdims = True) # Divide x by its norm. x = x / x_norm ### END CODE HERE ### return x
|
CopyRight 2018-2019 实验室设备网 版权所有 |