<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 用于機器學習的線性代數(7 天迷你課程) > 原文: [https://machinelearningmastery.com/linear-algebra-machine-learning-7-day-mini-course/](https://machinelearningmastery.com/linear-algebra-machine-learning-7-day-mini-course/) ### 機器學習速成課程的線性代數。 #### 在 7 天內掌握機器學習中使用的線性代數。 線性代數是一個數學領域,普遍認為它是更深入理解機器學習的先決條件。 盡管線性代數是一個具有許多深奧理論和發現的大型領域,但機械學習從業者需要從該領域獲取的螺母和螺栓工具和符號。憑借線性代數的堅實基礎,可以專注于良好或相關的部分。 在本速成課程中,您將了解如何開始并自信地閱讀并實現 7 天內使用 Python 進行機器學習時使用的線性代數符號。 這是一個重要且重要的帖子。您可能想要將其加入書簽。 讓我們開始吧。 * **更新 Mar / 2018** :修正了 SVD 課程中的一個小錯字。 ![Linear Algebra for Machine Learning (7-Day Mini-Course)](img/93cd9318dda15f37785b47a21f882d12.jpg) 用于機器學習的線性代數(7 天迷你課程) 照片由 [Jeff Kubina](https://www.flickr.com/photos/kubina/118170566/) 拍攝,保留一些權利。 ## 誰是這個崩潰課程? 在我們開始之前,讓我們確保您在正確的位置。 本課程適用于可能了解某些應用機器學習的開發人員。也許你知道如何使用流行的工具來完成預測性建模問題的端到端,或者至少是大多數主要步驟。 本課程的課程會假設您的一些事情,例如: * 你知道你的基本 Python 編程方式。 你可能知道一些基本的 NumPy 用于數組操作。 * 您想學習線性代數,以加深您對機器學習的理解和應用。 你不需要知道: * 你不需要成為一個數學家! * 您不需要成為機器學習專家! 這個速成課程將帶您從了解機器學習的開發人員到可以瀏覽線性代數基礎知識的開發人員。 注意:此速成課程假設您有一個至少安裝了 NumPy 的 Python3 SciPy 環境。如果您需要有關環境的幫助,可以按照此處的分步教程進行操作: * [如何使用 Anaconda 設置用于機器學習和深度學習的 Python 環境](https://machinelearningmastery.com/setup-python-environment-machine-learning-deep-learning-anaconda/) ## 速成課程概述 這個速成課程分為 7 節課。 您可以每天完成一節課(推薦)或在一天內完成所有課程(硬核)。這取決于你有空的時間和你的熱情程度。 下面列出了 7 個課程,這些課程將幫助您開始并使用線性代數在 Python 中進行機器學習: * **第 01 課**:用于機器學習的線性代數 * **第 02 課**:線性代數 * **第 03 課**:向量 * **第 04 課**:矩陣 * **第 05 課**:矩陣類型和操作 * **第 06 課**:矩陣分解 * **第 07 課**:奇異值分解 每節課可能需要 60 秒或 30 分鐘。花點時間,按照自己的進度完成課程。在下面的評論中提出問題甚至發布結果。 課程期望你去學習如何做事。我會給你提示,但每節課的部分內容是強迫你學習去尋找有關線性代數和 NumPy API 以及 Python 中最好的工具的幫助(提示:我直接在這個博客上得到了所有的答案;使用搜索框)。 我確實以相關帖子的鏈接形式提供了更多幫助,因為我希望你建立一些信心和慣性。 在評論中發布您的結果;我會為你加油! 掛在那里;不要放棄。 注意:這只是一個速成課程。有關更多細節和充實的教程,請參閱我的書,主題為“[機器學習線性代數基礎知識](https://machinelearningmastery.com/linear_algebra_for_machine_learning/)”。 ## 第 01 課:機器學習的線性代數 在本課程中,您將了解機器學習從業者應該加深對線性代數理解的 5 個理由。 ### 1.你需要學習線性代數表示法 您需要能夠讀取和寫入向量和矩陣表示法。使用向量和矩陣表示法在書籍,論文和網站上描述算法。 ### 你需要學習線性代數算術 與線性代數的符號相結合是執行的算術運算。您需要知道如何添加,減去和乘以標量,向量和矩陣。 ### 你需要學習線性代數的統計學 您必須學習線性代數才能學習統計數據。特別是多變量統計。為了能夠閱讀和解釋統計數據,您必須學習線性代數的符號和操作。現代統計學使用線性代數的符號和工具來描述統計方法的工具和技術。從用于數據均值和方差的向量,到描述多個高斯變量之間的關系的協方差矩陣。 ### 4.你需要學習矩陣分解 基于符號和算術的構思是矩陣分解的思想,也稱為矩陣分解。您需要知道如何對矩陣進行分解以及它意味著什么。矩陣分解是線性代數中的關鍵工具,廣泛用作線性代數(如矩陣逆)和機器學習(最小二乘)中許多更復雜運算的元素。 ### 5.你需要學習線性最小二乘法 您需要知道如何使用矩陣分解來求解線性最小二乘法。這種類型的問題可以被定義為平方誤差的最小化,稱為最小二乘,并且可以用線性代數的語言重新編程,稱為線性最小二乘。線性最小二乘問題可以使用諸如矩陣分解之類的矩陣運算在計算機上有效地解決。 ### 還有一個原因 如果我能再給出一個理由,那就是:因為它很有趣。認真。 ### 你的任務 在本課程中,您必須列出 3 個理由,為什么您個人想要學習線性代數。 在下面的評論中發表您的答案。我很樂意看到你想出了什么。 在下一課中,您將發現線性代數的簡明定義。 ## 第 02 課:線性代數 在本課程中,您將發現線性代數的簡明定義。 ### 線性代數 線性代數是數學的一個分支,但事實是線性代數是數學的數學。矩陣和向量是數據的語言。 線性代數是線性組合。也就是說,使用稱為向量的數字列和稱為矩陣的二維數字數組的算術來創建新的列和數字數組。 ### 數值線性代數 線性代數在計算機中的應用通常被稱為數值線性代數。 它不僅僅是代碼庫中線性代數運算的實現;它還包括仔細處理應用數學問題,例如使用數字計算機的有限浮點精度。 ### 線性代數的應用 由于線性代數是數據的數學,線性代數的工具被用于許多領域。 * 工程中的矩陣,例如一系列彈簧。 * 圖形和網絡,例如分析網絡。 * 馬爾可夫矩陣,人口和經濟學,如人口增長。 * 線性規劃,單純形優化方法。 * 傅立葉級數:函數線性代數,廣泛用于信號處理。 * 用于統計和概率的線性代數,例如回歸的最小二乘法。 * 計算機圖形學,例如圖像的各種平移,縮放和旋轉。 ### Your Task 在本課程中,您必須從定義線性代數領域的研究論文,博客或書籍中找到五個引號。 在下面的評論中發表您的答案。我很樂意看到你發現了什么。 在下一課中,您將發現向量和簡單的向量算法。 ## 第 03 課:向量 在本課程中,您將發現向量和簡單的向量算法。 ### 什么是向量? 向量是一個或多個稱為標量的值的元組。 向量通常用小寫字符表示,例如“v”;例如: ``` v = (v1, v2, v3) ``` 其中 v1,v2,v3 是標量值,通常是實數值。 ### 定義向量 我們可以將 Python 中的向量表示為 NumPy 數組。 可以從數字列表創建 NumPy 數組。例如,下面我們定義一個長度為 3 且整數值為 1,2 和 3 的向量。 ``` # create a vector from numpy import array v = array([1, 2, 3]) print(v) ``` ### 向量乘法 兩個相等長度的向量可以相乘。 ``` c = a * b ``` 與加法和減法一樣,該操作以元素方式執行以產生相同長度的新向量。 ``` a * b = (a1 * b1, a2 * b2, a3 * b3) ``` 我們可以直接在 NumPy 中執行此操作。 ``` # multiply vectors from numpy import array a = array([1, 2, 3]) print(a) b = array([1, 2, 3]) print(b) c = a * b print(c) ``` ### Your Task 在本課程中,您必須實現其他向量算術運算,例如加法,除法,減法和向量點積。 Post your answer in the comments below. I would love to see what you discover. 在下一課中,您將發現矩陣和簡單矩陣算法。 ## 第 04 課:矩陣 在本課程中,您將發現矩陣和簡單矩陣運算。 ### 什么是矩陣? 矩陣是具有一個或多個列和一個或多個行的標量的二維陣列。 矩陣的符號通常是大寫字母,例如 A,并且條目由它們的行(i)和列(j)的二維下標引用,例如 aij。例如: ``` A = ((a11, a12), (a21, a22), (a31, a32)) ``` ### 定義矩陣 我們可以使用二維 NumPy 數組在 Python 中表示矩陣。 可以在給定列表列表的情況下構造 NumPy 數組。例如,下面是 2 行 3 列矩陣。 ``` # create matrix from numpy import array A = array([[1, 2, 3], [4, 5, 6]]) print(A) ``` ### 矩陣加法 可以將具有相同尺寸的兩個矩陣相加在一起以創建新的第三矩陣。 ``` C = A + B ``` 所得矩陣中的標量元素被計算為添加的每個矩陣中元素的相加。 我們可以在 python 中使用 plus 運算符直接在兩個 NumPy 數組上實現它。 ``` # add matrices from numpy import array A = array([[1, 2, 3], [4, 5, 6]]) print(A) B = array([[1, 2, 3], [4, 5, 6]]) print(B) C = A + B print(C) ``` ### 矩陣點產品 矩陣乘法(也稱為矩陣點乘積)比先前的操作更復雜并且涉及規則,因為并非所有矩陣都可以相乘。 ``` C = A * B ``` 矩陣乘法的規則如下:第一矩陣(A)中的列數(n)必須等于第二矩陣(B)中的行數(m)。 例如,矩陣 A 的尺寸為 m 行 n 列,矩陣 B 的尺寸為 n 和 k。 A 行和 n 行 b 中的 n 列相等。結果是一個 m 行和 k 列的新矩陣。 ``` C(m,k) = A(m,n) * B(n,k) ``` 矩陣乘法的直覺是我們計算矩陣 A 中每一行與矩陣 B 中每列之間的點積。例如,我們可以逐步降低 A 列的行數并將每一行乘以 B 中的第 1 列來給出標量 C 列第 1 列中的值 矩陣乘法運算可以使用 dot()函數在 NumPy 中實現。 ``` # matrix dot product from numpy import array A = array([[1, 2], [3, 4], [5, 6]]) print(A) B = array([[1, 2], [3, 4]]) print(B) C = A.dot(B) print(C) ``` ### Your Task 在本課程中,您必須實現更多矩陣算術運算,例如減法,除法,Hadamard 乘積和向量矩陣乘法。 Post your answer in the comments below. I would love to see what you come up with. 在下一課中,您將發現不同類型的矩陣和矩陣運算。 ## 第 05 課:矩陣類型和操作 在本課程中,您將發現不同類型的矩陣和矩陣運算。 ### 顛倒 可以轉置定義的矩陣,這將創建一個新的矩陣,其中列和行的數量被翻轉。 這由矩陣旁邊的上標“T”表示。 ``` C = A^T ``` 我們可以通過調用 T 屬性在 NumPy 中轉置矩陣。 ``` # transpose matrix from numpy import array A = array([[1, 2], [3, 4], [5, 6]]) print(A) C = A.T print(C) ``` ### 逆溫 反轉矩陣的操作由矩陣旁邊的-1 上標表示;例如,A ^ -1。該操作的結果稱為原始矩陣的逆;例如,B 是 A 的倒數。 ``` B = A^-1 ``` 并非所有矩陣都是可逆的。 可以使用 inv()函數在 NumPy 中反轉矩陣。 ``` # invert matrix from numpy import array from numpy.linalg import inv # define matrix A = array([[1.0, 2.0], [3.0, 4.0]]) print(A) # invert matrix B = inv(A) print(B) ``` ### 方陣 方陣是矩陣,其中行數(n)等于列數(m)。 ``` n = m ``` 方矩陣與矩形矩陣形成對比,矩形矩陣的行數和列數不相等。 ### 對稱矩陣 對稱矩陣是一種方形矩陣,其中右上角三角形與左下角三角形相同。 為了對稱,對稱軸始終是矩陣的主要對角線,從左上角到右下角。 對稱矩陣總是正方形并且等于它自己的轉置。 ``` M = M^T ``` ### 三角矩陣 三角矩陣是一種方矩陣,其在矩陣的右上或左下具有所有值,其余元素填充零值。 僅在主對角線上方具有值的三角矩陣稱為上三角矩陣。然而,僅在主對角線下方具有值的三角矩陣被稱為下三角矩陣。 ### 對角矩陣 對角矩陣是主對角線外部的值具有零值的矩陣,其中主對角線從矩陣的左上角到右下角。 對角矩陣通常用變量 D 表示,并且可以表示為完整矩陣或主對角線上的值向量。 ### Your Task 在本課程中,您必須為其他矩陣運算開發示例,例如行列式,跟蹤和排名。 Post your answer in the comments below. I would love to see what you come up with. 在下一課中,您將發現矩陣分解。 ## 課 06:矩陣分解 在本課程中,您將了解矩陣分解的基礎知識,也稱為矩陣分解。 ### 什么是矩陣分解? 矩陣分解是一種將矩陣簡化為其組成部分的方法。 這種方法可以簡化更復雜的矩陣運算,這些運算可以在分解的矩陣上執行,而不是在原始矩陣本身上執行。 矩陣分解的一個常見類比是數字因式分解,例如將因子分解為 5×5。因此,矩陣分解也稱為矩陣分解。與分解實數值一樣,有許多方法可以分解矩陣,因此存在一系列不同的矩陣分解技術。 ### LU 矩陣分解 LU 分解用于方形矩陣,并將矩陣分解為 L 和 U 分量。 ``` A = L . U ``` 其中 A 是我們希望分解的方陣,L 是下三角矩陣,U 是上三角矩陣。在實踐中數值上更穩定的這種分解的變化稱為 LUP 分解,或具有部分樞轉的 LU 分解。 ``` A = P . L . U ``` 重新排序父矩陣的行以簡化分解過程,并且附加的 P 矩陣指定用于置換結果或將結果返回到原始順序的方式。 LU 還有其他變體。 LU 分解通常用于簡化線性方程組的求解,例如在線性回歸中找到系數。 LU 分解可以使用 lu()函數在 Python 中實現。更具體地說,該函數計算 LPU 分解。 ``` # LU decomposition from numpy import array from scipy.linalg import lu # define a square matrix A = array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(A) # LU decomposition P, L, U = lu(A) print(P) print(L) print(U) # reconstruct B = P.dot(L).dot(U) print(B) ``` ### Your Task 在本課程中,您必須實現其他簡單方法的小例子進行矩陣分解,例如 QR 分解,Cholesky 分解和特征分解。 Post your answer in the comments below. I would love to see what you come up with. 在下一課中,您將發現用于矩陣分解的奇異值分解方法。 ## 第 07 課:奇異值分解 在本課程中,您將發現用于矩陣分解的奇異值分解方法。 奇異值分解 奇異值分解(簡稱 SVD)是一種矩陣分解方法,用于將矩陣簡化為其組成部分,以使某些后續矩陣計算更簡單。 ``` A = U . Sigma . V^T ``` 其中 A 是我們希望分解的真實 mxn 矩陣,U 是 mxm 矩陣,Sigma(通常由大寫希臘字母 Sigma 表示)是 mxn 對角矩陣,V ^ T 是 nxn 矩陣的轉置,其中 T 是一個上標。 ### 計算奇異值分解 可以通過調用 svd()函數來計算 SVD。 該函數采用矩陣并返回 U,Sigma 和 V ^ T 元素。 Sigma 對角矩陣作為奇異值的向量返回。 V 矩陣以轉置的形式返回,例如, V.T. ``` # Singular-value decomposition from numpy import array from scipy.linalg import svd # define a matrix A = array([[1, 2], [3, 4], [5, 6]]) print(A) # SVD U, s, V = svd(A) print(U) print(s) print(V) ``` ### Your Task 在本課程中,您必須列出 5 個 SVD 應用程序。 如果你能用 Python 中的一個小例子演示每一個,那么獎勵積分。 Post your answer in the comments below. I would love to see what you discover. 這是迷你課程的最后一課。 ## 結束! (_ 看你有多遠 _) 你做到了。做得好! 花點時間回顧一下你到底有多遠。 你發現: * 線性代數對應用機器學習的重要性。 * 什么是線性代數。 * 向量是什么以及如何執行向量運算。 * 什么是矩陣以及如何執行矩陣運算,包括矩陣乘法。 * 一套類型的矩陣,它們的屬性以及涉及矩陣的高級操作。 * 矩陣分解方法和 LU 分解方法詳細說明。 * 用于機器學習的流行的奇異值分解方法。 這只是您使用線性代數進行機器學習的旅程的開始。繼續練習和發展你的技能。 下一步,查看我的關于[機器學習線性代數](https://machinelearningmastery.com/linear_algebra_for_machine_learning/)的書。 ## 摘要 _ 你如何處理迷你課程?_ 你喜歡這個速成班嗎? _ 你有什么問題嗎?有沒有任何問題?_ 讓我知道。在下面發表評論。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看