由於梯度下降演算法需要多次迭代,並且需要指定下降速率,如果下降速度過快則可能錯過最優點,如果過慢則需要迭代多次,因此還可選用矩陣法求解。
首先給出一些基本數學知識:
矩陣的跡trace為矩陣主對角線元素之和:
tr(a)=a ,如果a為實數
以下是關於矩陣跡的一些性質:
對於多元線性回歸,將所有訓練資料作為乙個矩陣,多元線性回歸,也就是多個自變數的線性方程,類似y=a1x1+a2x2+a3x3...:
將y值也作為乙個矩陣:
則可得則誤差為:
轉變為平方後:
其中轉變為平方主要為了統一為正值,前面乘以1/2是方便求導後的計算。
對j(θ)求導,
其中用到上面的求跡公式,以及求導公式,
令上式為0,
則可求出最優的係數,矩陣方求解相對簡單,不需要多次迭代,但當資料量過大時,即設計矩陣x過大時,對矩陣的乘法即求逆有很大計算複雜度,因此此方法適用於小規模資料。另外,用矩陣法時不需要對輸入特徵資料中心化。
最長公共子串問題 矩陣法求解
最大公共子串長度問題就是 求兩個串的所有子串中能夠匹配上的最大長度是多少。比如 abcdkkk 和 baabcdadabc 可以找到的最長的公共子串是 abcd 所以最大公共子串長度為4。演算法思路 1 把兩個字串分別以行和列組成乙個二維矩陣。2 比較二維矩陣中每個點對應行列字元中否相等,相等的話值...
逆矩陣(伴隨矩陣法)C
演算法過程 計算 判斷 a 是否為0 利用原矩陣生成a 伴隨 矩陣,具體 a 二維陣列中第 i j 個元素,除去該行該列,其他元素進入臨時陣列,計算臨時陣列行列式值,即為a i j 最後矩陣a a 即為該矩陣的逆矩陣 原始碼 include include include using namespa...
梯度下降法求解線性回歸
梯度下降法 英語 gradient descent 是乙個一階最優化演算法,通常也稱為最速下降法。要使用梯度下降法找到乙個函式的區域性極小值,必須向函式上當前點對應梯度 或者是近似梯度 的反方向的規定步長距離點進行迭代搜尋。如果相反地向梯度正方向迭代進行搜尋,則會接近函式的區域性極大值點 這個過程則...