1. 程式人生 > 其它 >matlab求向量的二範數_Python Numpy中的範數

matlab求向量的二範數_Python Numpy中的範數

技術標籤:matlab求向量的二範數

數學概念

範數,是具有 “長度” 概念的函式。線上性代數、泛函分析及相關的數學領域,範數是一個函式,是向量空間內的所有向量賦予非零的正長度或大小。

在數學上,範數包括向量範數矩陣範數

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相反

37867792d6e0f59ee57235eb20482078.png
範數

例子

  • 向量

 1>>>importnumpyasnp
2>>>x=np.array([1,2,3,4])
3>>>np.linalg.norm(x)#預設是二範數,所有向量元素絕對值的平方和再開方
45.477225575051661
5>>>np.sqrt(1**2+2**2+3**2+4**2)
65.477225575051661
7>>>np.linalg.norm(x,ord=1)#所有向量元素絕對值之和
810.0
9>>>1+2+3+4
1010
11>>>np.linalg.norm(x,ord=np.inf)#max(abs(x_i)),所有向量元素絕對值中的最大值
124.0
13>>>np.linalg.norm(x,ord=-np.inf)#min(abs(x_i)),所有向量元素絕對值中的最小值
141.0
  • 矩陣

 1>>>importnumpyasnp
2>>>x=np.arange(12).reshape(3,4)
3>>>x
4array([[0,1,2,3],
5[4,5,6,7],
6[8,9,10,11]])
7>>>np.linalg.norm(x)#預設是二範數,最大特徵值的算術平方根
822.494443758403985
9>>>np.linalg.norm(x,ord=1)#所有矩陣列向量絕對值之和的最大值
1021.0
11>>>x
12array([[0,1,2,3],
13[4,5,6,7],
14[8,9,10,11]])
15>>>np.linalg.norm(x,ord=1,axis=1)#行向量的一範數
16array([6.,22.,38.])
17>>>np.linalg.norm(x,ord=2,axis=1)#行向量的二範數
18array([3.74165739,11.22497216,19.13112647])
19>>>np.linalg.norm(x,ord=1,axis=1,keepdims=True)#結果仍然是個矩陣
20array([[6.],
21[22.],
22[38.]])

歷史相關文章

  • Pythoner還在為了練習Numpy而沒有真實資料而煩惱嗎?

  • Numpy中的shuffle和permutation區別


以上是自己實踐中遇到的一些問題,分享出來供大家參考學習,歡迎關注微信公眾號,不定期分享乾貨

09dfaceb16245b08f835fc1604b3316f.png