美文网首页
Python Numpy中的范数

Python Numpy中的范数

作者: 数据人阿多 | 来源:发表于2020-08-16 22:19 被阅读0次

    数学概念

    范数,是具有 “长度” 概念的函数。在线性代数、泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小。

    在数学上,范数包括向量范数矩阵范数

    L1 范数和 L2 范数,用于机器学习的 L1 正则化、L2 正则化。对于线性回归模型,使用 L1 正则化的模型建叫做 Lasso 回归,使用 L2 正则化的模型叫做 Ridge 回归(岭回归)。

    其作用是:
    L1 正则化是指权值向量 w 中各个元素的绝对值之和,可以产生稀疏权值矩阵(稀疏矩阵指的是很多元素为 0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是 0. ),即产生一个稀疏模型,可以用于特征选择;

    L2 正则化是指权值向量 w 中各个元素的平方和然后再求平方根,可以防止模型过拟合(overfitting);一定程度上,L1 也可以防止过拟合。

    Numpy函数介绍

    np.linalg.norm(x, ord=None, axis=None, keepdims=False)
    

    np.linalg.norm:linalg=linear(线性)+algebra(代数),norm则表示范数

    • x:表示矩阵(也可以是一维)
    • ord:范数类型
    • axis:轴向
      axis=1表示按行向量处理,求多个行向量的范数
      axis=0表示按列向量处理,求多个列向量的范数
      axis=None表示矩阵范数。
    • keepdims:是否保持矩阵的二维特性
      True表示保持矩阵的二维特性,False相反
    范数

    例子

    • 向量
    >>> import numpy as np
    >>> x=np.array([1,2,3,4])
    >>> np.linalg.norm(x)      #默认是二范数,所有向量元素绝对值的平方和再开方
    5.477225575051661
    >>> np.sqrt(1**2+2**2+3**2+4**2)
    5.477225575051661
    >>> np.linalg.norm(x,ord=1)    #所有向量元素绝对值之和
    10.0
    >>> 1+2+3+4
    10
    >>> np.linalg.norm(x,ord=np.inf)     #max(abs(x_i)),所有向量元素绝对值中的最大值
    4.0
    >>> np.linalg.norm(x,ord=-np.inf)   #min(abs(x_i)),所有向量元素绝对值中的最小值
    1.0
    
    • 矩阵
    >>> import numpy as np
    >>> x=np.arange(12).reshape(3,4)
    >>> x
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    >>> np.linalg.norm(x)  #默认是二范数,最大特征值的算术平方根
    22.494443758403985
    >>> np.linalg.norm(x,ord=1)   #所有矩阵列向量绝对值之和的最大值
    21.0
    >>> x
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    >>> np.linalg.norm(x,ord=1,axis=1)   #行向量的一范数
    array([ 6., 22., 38.])
    >>> np.linalg.norm(x,ord=2,axis=1)     #行向量的二范数
    array([ 3.74165739, 11.22497216, 19.13112647])
    >>> np.linalg.norm(x,ord=1,axis=1,keepdims=True)   #结果仍然是个矩阵
    array([[ 6.],
           [22.],
           [38.]])
    

    历史相关文章


    以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号,不定期分享干货

    相关文章

      网友评论

          本文标题:Python Numpy中的范数

          本文链接:https://www.haomeiwen.com/subject/cpuxjktx.html