'線性代數在數據科學中的十個強大應用'

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

線性代數在數據科學中的十個強大應用

最後的部分?我們不需要手動添加其他函數。SVM有一種稱為內核技巧的技術。閱讀有關支持向量機的這篇文章(https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),瞭解SVM,內核技巧以及如何在Python中實現它。

降維

您將經常使用具有數百甚至數千個變量的數據集。這是行業運作的方式。查看每個變量並確定哪個變量更重要是否切合實際?

這並沒有多大意義。我們需要降低變量的數量來執行任何類型的連貫性分析。這就是為什麼減少維數的原因。現在,我們來看看常用的兩種降維方法。

5. 主成分分析(PCA)

主成分分析(PCA)是一種無監督降維技術。PCA會找到最大方差的方向並沿著它們的投影以減小維度。

在不深入數學的情況下,這些方向就是數據的協方差矩陣特徵向量

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

線性代數在數據科學中的十個強大應用

最後的部分?我們不需要手動添加其他函數。SVM有一種稱為內核技巧的技術。閱讀有關支持向量機的這篇文章(https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),瞭解SVM,內核技巧以及如何在Python中實現它。

降維

您將經常使用具有數百甚至數千個變量的數據集。這是行業運作的方式。查看每個變量並確定哪個變量更重要是否切合實際?

這並沒有多大意義。我們需要降低變量的數量來執行任何類型的連貫性分析。這就是為什麼減少維數的原因。現在,我們來看看常用的兩種降維方法。

5. 主成分分析(PCA)

主成分分析(PCA)是一種無監督降維技術。PCA會找到最大方差的方向並沿著它們的投影以減小維度。

在不深入數學的情況下,這些方向就是數據的協方差矩陣特徵向量

線性代數在數據科學中的十個強大應用

方陣的特徵向量是特殊的非零向量,即使在對矩陣應用線性變換(乘法)之後,其方向也不會改變。它們顯示為下圖中的紅色矢量:

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

線性代數在數據科學中的十個強大應用

最後的部分?我們不需要手動添加其他函數。SVM有一種稱為內核技巧的技術。閱讀有關支持向量機的這篇文章(https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),瞭解SVM,內核技巧以及如何在Python中實現它。

降維

您將經常使用具有數百甚至數千個變量的數據集。這是行業運作的方式。查看每個變量並確定哪個變量更重要是否切合實際?

這並沒有多大意義。我們需要降低變量的數量來執行任何類型的連貫性分析。這就是為什麼減少維數的原因。現在,我們來看看常用的兩種降維方法。

5. 主成分分析(PCA)

主成分分析(PCA)是一種無監督降維技術。PCA會找到最大方差的方向並沿著它們的投影以減小維度。

在不深入數學的情況下,這些方向就是數據的協方差矩陣特徵向量

線性代數在數據科學中的十個強大應用

方陣的特徵向量是特殊的非零向量,即使在對矩陣應用線性變換(乘法)之後,其方向也不會改變。它們顯示為下圖中的紅色矢量:

線性代數在數據科學中的十個強大應用

您可以使用scikit-learn包中的PCA類輕鬆地在Python中實現PCA:

from sklearn.decomposition import PCA
// say you want to reduce to 2 features
pca = PCA(n_components = 2)
// obtain transformed data
data_transformed = pca.fit_transform(data)

我在sklearn 的Digits(https://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html)數據集上應用了PCA - 一組8×8的手寫數字圖像。我獲得的結果相當令人印象深刻。數字看起來很好地聚集在一起:

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

線性代數在數據科學中的十個強大應用

最後的部分?我們不需要手動添加其他函數。SVM有一種稱為內核技巧的技術。閱讀有關支持向量機的這篇文章(https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),瞭解SVM,內核技巧以及如何在Python中實現它。

降維

您將經常使用具有數百甚至數千個變量的數據集。這是行業運作的方式。查看每個變量並確定哪個變量更重要是否切合實際?

這並沒有多大意義。我們需要降低變量的數量來執行任何類型的連貫性分析。這就是為什麼減少維數的原因。現在,我們來看看常用的兩種降維方法。

5. 主成分分析(PCA)

主成分分析(PCA)是一種無監督降維技術。PCA會找到最大方差的方向並沿著它們的投影以減小維度。

在不深入數學的情況下,這些方向就是數據的協方差矩陣特徵向量

線性代數在數據科學中的十個強大應用

方陣的特徵向量是特殊的非零向量,即使在對矩陣應用線性變換(乘法)之後,其方向也不會改變。它們顯示為下圖中的紅色矢量:

線性代數在數據科學中的十個強大應用

您可以使用scikit-learn包中的PCA類輕鬆地在Python中實現PCA:

from sklearn.decomposition import PCA
// say you want to reduce to 2 features
pca = PCA(n_components = 2)
// obtain transformed data
data_transformed = pca.fit_transform(data)

我在sklearn 的Digits(https://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html)數據集上應用了PCA - 一組8×8的手寫數字圖像。我獲得的結果相當令人印象深刻。數字看起來很好地聚集在一起:

線性代數在數據科學中的十個強大應用

參閱我們的12維降維技術綜合指南(https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),並用Python代碼深入瞭解PCA和其他11種降維技術。老實說,這是你可以找到關於這個主題的最好的文章之一。

6.奇異值分解

在我看來,奇異值分解(SVD)被低估了,沒有進行足夠的討論。這是一種令人驚歎的矩陣分解技術,具有多種應用。我將在以後的文章中嘗試介紹其中的一些內容。

現在,讓我們談談維度降低中的SVD。具體而言,這稱為截斷SVD

  • 我們從大的mxn數值數據矩陣A開始,其中m是行數,n是特徵的數量
  • 將其分解為3個矩陣,如下所示:
"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

線性代數在數據科學中的十個強大應用

最後的部分?我們不需要手動添加其他函數。SVM有一種稱為內核技巧的技術。閱讀有關支持向量機的這篇文章(https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),瞭解SVM,內核技巧以及如何在Python中實現它。

降維

您將經常使用具有數百甚至數千個變量的數據集。這是行業運作的方式。查看每個變量並確定哪個變量更重要是否切合實際?

這並沒有多大意義。我們需要降低變量的數量來執行任何類型的連貫性分析。這就是為什麼減少維數的原因。現在,我們來看看常用的兩種降維方法。

5. 主成分分析(PCA)

主成分分析(PCA)是一種無監督降維技術。PCA會找到最大方差的方向並沿著它們的投影以減小維度。

在不深入數學的情況下,這些方向就是數據的協方差矩陣特徵向量

線性代數在數據科學中的十個強大應用

方陣的特徵向量是特殊的非零向量,即使在對矩陣應用線性變換(乘法)之後,其方向也不會改變。它們顯示為下圖中的紅色矢量:

線性代數在數據科學中的十個強大應用

您可以使用scikit-learn包中的PCA類輕鬆地在Python中實現PCA:

from sklearn.decomposition import PCA
// say you want to reduce to 2 features
pca = PCA(n_components = 2)
// obtain transformed data
data_transformed = pca.fit_transform(data)

我在sklearn 的Digits(https://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html)數據集上應用了PCA - 一組8×8的手寫數字圖像。我獲得的結果相當令人印象深刻。數字看起來很好地聚集在一起:

線性代數在數據科學中的十個強大應用

參閱我們的12維降維技術綜合指南(https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),並用Python代碼深入瞭解PCA和其他11種降維技術。老實說,這是你可以找到關於這個主題的最好的文章之一。

6.奇異值分解

在我看來,奇異值分解(SVD)被低估了,沒有進行足夠的討論。這是一種令人驚歎的矩陣分解技術,具有多種應用。我將在以後的文章中嘗試介紹其中的一些內容。

現在,讓我們談談維度降低中的SVD。具體而言,這稱為截斷SVD

  • 我們從大的mxn數值數據矩陣A開始,其中m是行數,n是特徵的數量
  • 將其分解為3個矩陣,如下所示:
線性代數在數據科學中的十個強大應用

  • 根據對角矩陣選擇k個奇異值,並相應地截斷(修剪)3個矩陣:
"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

線性代數在數據科學中的十個強大應用

最後的部分?我們不需要手動添加其他函數。SVM有一種稱為內核技巧的技術。閱讀有關支持向量機的這篇文章(https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),瞭解SVM,內核技巧以及如何在Python中實現它。

降維

您將經常使用具有數百甚至數千個變量的數據集。這是行業運作的方式。查看每個變量並確定哪個變量更重要是否切合實際?

這並沒有多大意義。我們需要降低變量的數量來執行任何類型的連貫性分析。這就是為什麼減少維數的原因。現在,我們來看看常用的兩種降維方法。

5. 主成分分析(PCA)

主成分分析(PCA)是一種無監督降維技術。PCA會找到最大方差的方向並沿著它們的投影以減小維度。

在不深入數學的情況下,這些方向就是數據的協方差矩陣特徵向量

線性代數在數據科學中的十個強大應用

方陣的特徵向量是特殊的非零向量,即使在對矩陣應用線性變換(乘法)之後,其方向也不會改變。它們顯示為下圖中的紅色矢量:

線性代數在數據科學中的十個強大應用

您可以使用scikit-learn包中的PCA類輕鬆地在Python中實現PCA:

from sklearn.decomposition import PCA
// say you want to reduce to 2 features
pca = PCA(n_components = 2)
// obtain transformed data
data_transformed = pca.fit_transform(data)

我在sklearn 的Digits(https://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html)數據集上應用了PCA - 一組8×8的手寫數字圖像。我獲得的結果相當令人印象深刻。數字看起來很好地聚集在一起:

線性代數在數據科學中的十個強大應用

參閱我們的12維降維技術綜合指南(https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),並用Python代碼深入瞭解PCA和其他11種降維技術。老實說,這是你可以找到關於這個主題的最好的文章之一。

6.奇異值分解

在我看來,奇異值分解(SVD)被低估了,沒有進行足夠的討論。這是一種令人驚歎的矩陣分解技術,具有多種應用。我將在以後的文章中嘗試介紹其中的一些內容。

現在,讓我們談談維度降低中的SVD。具體而言,這稱為截斷SVD

  • 我們從大的mxn數值數據矩陣A開始,其中m是行數,n是特徵的數量
  • 將其分解為3個矩陣,如下所示:
線性代數在數據科學中的十個強大應用

  • 根據對角矩陣選擇k個奇異值,並相應地截斷(修剪)3個矩陣:
線性代數在數據科學中的十個強大應用

  • 最後,將截斷的矩陣相乘以獲得變換後的矩陣A_k。它的尺寸為mx k。因此,它具有k < n的k個特徵

以下是在Python中實現截斷的SVD的代碼(它與PCA非常相似):

from sklearn.decomposition import TruncatedSVD
//減少到2個特徵
svd = TruncatedSVD(n_features = 2)
//獲取轉換後的數據
data_transformed = svd.fit_transform(data)

在將截斷的SVD應用於Digits數據時,我得到了下面的圖。您會注意到它不像我們在PCA之後獲得的那樣集群:

"

概覽

  • 線性代數為各種各樣的數據科學算法或應用提供支撐
  • 我們將介紹十種強大的線性代數應用示例,他可以幫助你成為更好的數據科學家
  • 我們將這些應用細分到各個領域--基礎機器學習(ML),降維,自然語言處理(NLP)和計算機視覺(CV)

介紹

線性代數與數據科學的關係就像羅賓與蝙蝠俠。這位數據科學忠實的夥伴經常會被大家所忽視,但實際上,它是數據科學主要領域--包括計算機視覺(CV)與自然語言處理(NLP)等熱門領域的強力支撐。

數據開發者往往會因為數學太難而嘗試避開這個主題。因為有很多現成的數據處理庫可以幫助他們避開線性代數這個煩惱。

這是極其錯誤的想法。線性代數是我們所熟知的所用強大機器學習算法的背後核心,同樣是數據科學家技能的重要組成部分,接下來就讓我們一起詳細剖析下線性代數在數據科學中的強大應用。

線性代數在數據科學中的十個強大應用

在本文中,我會詳細解釋線性代數在數據科學中的十大應用。這些應用大致分為四個領域:

  • 機器學習
  • 降維
  • 自然語言處理(NLP)
  • 計算機視覺(CV)

另外每一個應用還為大家準備了相關的資源,以便感興趣的同學更進一步瞭解。

目錄:

  • 為什麼學習線性代數
  • 機器學習中的線性代數
  • 損失函數
  • 正則化
  • 協方差矩陣
  • 支持向量機分類器
  • 降維中的線性代數
  • 主成分分析(PCA)
  • 奇異值分解(SVD)
  • 自然語言處理中的線性代數
  • 詞嵌入(Word Embeddings)
  • 潛在語義分析
  • 計算機視覺中的線性代數
  • 圖像用張量表示
  • 卷積與圖像處理

為什麼學習線性代數

我也曾多次問過自己這個問題。當只需導入Python包就可以構建模型時,為什麼還要花時間學習線性代數呢? 我是這樣認為的,線性代數是數據科學的基礎之一,假如沒有堅實的基礎,就無法建造一棟真正的摩天大樓。比如:

當你希望使用主成分分析(PCA)來減少數據的維數時,如果你不知道算法的機制(數學原理),那麼你就無法確定該怎樣調整組件,以及會對數據產生什麼影響。

通過對線性代數的理解,可以對機器學習和深度學習算法有更深一層的感悟,而不是將它們視為黑盒子。從而可以選擇適當的超參數,建立更好的模型。

機器學習中的線性代數

最大的問題是,機器學習在什麼地方需要線性代數?讓我們看一下非常熟悉的四個應用。

1. 損失函數

你需要非常熟悉模型是如何擬合給定的數據(如線性迴歸模型):

  • 從一些預測函數開始(線性迴歸模型的線性函數)
  • 使用數據的獨立特徵預測輸出
  • 計算預測輸出與實際結果的距離
  • 使用Gradient Descent等策略根據距離優化預測函數

如何計算預測輸出與實際結果的差異?損失函數。

損失函數是向量範數在線性代數中的應用。範數可以簡單地說是向量的量綱。有許多類型的向量範數。

  • L1範數:也稱為曼哈頓距離或Taxicab 範數。如果只允許行進方向與空間軸平行,從原點到矢量的距離,在L1範數的距離就是你行進的距離。
線性代數在數據科學中的十個強大應用

在這個2D空間中,您可以通過沿x軸行進3個單位然後沿y軸平行移動4個單位(如圖所示)到達矢量(3,4)。或者您可以先沿y軸行進4個單位,然後沿x軸行進3個單位。在任何一種情況下,您將共旅行7個單位。

  • L2範數:也稱為歐幾里德距離。L2 範數是向量距原點的最短距離,如下圖中的紅色路徑所示:
線性代數在數據科學中的十個強大應用

這個距離是用畢達哥拉斯定理計算的。它是(3^2+4^2)的平方根,等於5。

但是,範數如何用於找出預測值與真實值之間的差異?假設預測值存儲在向量P中,並且真實值存儲在向量E中。P-E是它們之間的差異。P-E的範數就是預測的總損失。

2. 正則化

正則化是數據科學中非常重要的概念。它是用來防止模型過擬合的方法。正則化實際上是規範化的另一種應用。

如果模型在訓練時發生了過擬合,模型就會對新數據的預測結果不好,因為模型甚至學習了訓練數據中的噪聲。它無法預測之前沒有訓練過的數據。下面的圖片揭示了這個思想:

線性代數在數據科學中的十個強大應用

正則化通過向損失函數添加權重向量來懲罰過於複雜的模型。 由於我們希望最小化成本函數,因此需要最小化此範數。正則化的結果是權重向量中無關緊要的部分變為零,防止預測函數過於複雜。

我們上面討論的L1和L2範數用於兩種類型的正則化:

  • L1正則化與Lasso 迴歸一起使用
  • L2正則化與Ridge 迴歸一起使用

3. 協方差矩陣

雙變量分析是數據探索中的重要一步。我們想研究變量對之間的關​​系。協方差或相關性是用於研究兩個連續變量之間關係的度量。

協方差表示變量之間線性關係的方向。正協方差表示一個變量的增加或減少在另一個變量中同樣增加或減少。負協方差表明一個變量的增加或減少同時另一個變量與它相反。

線性代數在數據科學中的十個強大應用

另一方面,相關性是協方差的標準化值。 相關性值告訴我們線性關係的強度和方向,範圍從-1到1。

您可能會認為這是統計學而非線性代數的概念。好吧,記得我告訴過你線性代數是無處不在的嗎?使用線性代數中的轉置和矩陣乘法的概念,協方差矩陣有一個非常簡潔的表達式:

線性代數在數據科學中的十個強大應用

其中X是包含所有數字特徵的標準化數據矩陣。

4. 支持向量機分類器

支持向量機(SVM)是最常見的分類算法之一,經常產生令人印象深刻的結果。它是向量空間概念在線性代數中的應用。

支持向量機是一種判別分類器,通過查找決策面來工作。它是一種有監督的機器學習算法。

在此算法中,我們將每個數據項繪製為n維空間中的點(其中n是特徵數),每個特徵的值是特定座標的值。然後,通過找到最好的區分兩個類的超平面來進行分類,即最大餘量,下面的例子中是C.

線性代數在數據科學中的十個強大應用

超平面是一個子空間,其維數比其對應的向量空間小1,因此它是2D向量空間的直線,3D向量空間的2D平面等等。使用向量範數來計算邊界。但是,如果數據像下面的情況那樣該怎樣線性分離呢?

線性代數在數據科學中的十個強大應用

我們一般認為決策面必須是圓形或橢圓形,但怎麼找到它?這裡,使用了內核轉換的概念。在線性代數中,從一個空間轉換到另一個空間的想法非常普遍。

讓我們介紹一個變量z=x^2+y^2。如果我們沿z軸和x軸繪製數據,就是下面的樣子:

線性代數在數據科學中的十個強大應用

這顯然可以通過線z=a線性分離,其中a是一些正常數。在轉換回原始空間時,我們得到x^2+y^2=a作為決策曲面,這是一個圓圈!

線性代數在數據科學中的十個強大應用

最後的部分?我們不需要手動添加其他函數。SVM有一種稱為內核技巧的技術。閱讀有關支持向量機的這篇文章(https://www.analyticsvidhya.com/blog/2017/09/understaing-support-vector-machine-example-code/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),瞭解SVM,內核技巧以及如何在Python中實現它。

降維

您將經常使用具有數百甚至數千個變量的數據集。這是行業運作的方式。查看每個變量並確定哪個變量更重要是否切合實際?

這並沒有多大意義。我們需要降低變量的數量來執行任何類型的連貫性分析。這就是為什麼減少維數的原因。現在,我們來看看常用的兩種降維方法。

5. 主成分分析(PCA)

主成分分析(PCA)是一種無監督降維技術。PCA會找到最大方差的方向並沿著它們的投影以減小維度。

在不深入數學的情況下,這些方向就是數據的協方差矩陣特徵向量

線性代數在數據科學中的十個強大應用

方陣的特徵向量是特殊的非零向量,即使在對矩陣應用線性變換(乘法)之後,其方向也不會改變。它們顯示為下圖中的紅色矢量:

線性代數在數據科學中的十個強大應用

您可以使用scikit-learn包中的PCA類輕鬆地在Python中實現PCA:

from sklearn.decomposition import PCA
// say you want to reduce to 2 features
pca = PCA(n_components = 2)
// obtain transformed data
data_transformed = pca.fit_transform(data)

我在sklearn 的Digits(https://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html)數據集上應用了PCA - 一組8×8的手寫數字圖像。我獲得的結果相當令人印象深刻。數字看起來很好地聚集在一起:

線性代數在數據科學中的十個強大應用

參閱我們的12維降維技術綜合指南(https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/?utm_source=blog&utm_medium=10-applications-linear-algebra-data-science),並用Python代碼深入瞭解PCA和其他11種降維技術。老實說,這是你可以找到關於這個主題的最好的文章之一。

6.奇異值分解

在我看來,奇異值分解(SVD)被低估了,沒有進行足夠的討論。這是一種令人驚歎的矩陣分解技術,具有多種應用。我將在以後的文章中嘗試介紹其中的一些內容。

現在,讓我們談談維度降低中的SVD。具體而言,這稱為截斷SVD

  • 我們從大的mxn數值數據矩陣A開始,其中m是行數,n是特徵的數量
  • 將其分解為3個矩陣,如下所示:
線性代數在數據科學中的十個強大應用

  • 根據對角矩陣選擇k個奇異值,並相應地截斷(修剪)3個矩陣:
線性代數在數據科學中的十個強大應用

  • 最後,將截斷的矩陣相乘以獲得變換後的矩陣A_k。它的尺寸為mx k。因此,它具有k < n的k個特徵

以下是在Python中實現截斷的SVD的代碼(它與PCA非常相似):

from sklearn.decomposition import TruncatedSVD
//減少到2個特徵
svd = TruncatedSVD(n_features = 2)
//獲取轉換後的數據
data_transformed = svd.fit_transform(data)

在將截斷的SVD應用於Digits數據時,我得到了下面的圖。您會注意到它不像我們在PCA之後獲得的那樣集群:

線性代數在數據科學中的十個強大應用

作為機器學習與數據科學背後的線性代數知識系列開篇,本篇主要介紹了機器學習與數據科學背後的數學技術十大應用之基礎機器學習部分與降維部分。涵蓋損失函數、正則化、協方差矩陣、支持向量機(SVM)、主成分分析(PCA)與奇異值分解(SVD)背後的線性代數知識。相信這也是各位數據科學愛好者常用的各項技術,希望可以幫大家理清思路和對這些算法有更進一步的認識。

"

相關推薦

推薦中...