A 06 最小角回歸法

2022-02-22 19:08:33 字數 2700 閱讀 8869

目錄

三、小結

人工智慧從入門到放棄完整教程目錄:

最小角回歸相當於前向選擇法和前向梯度法的乙個折中演算法,簡化了前項梯度法因\(\epsilon\)的迭代過程,並在一定程度的保證了前向梯度法的精準度。

通常用最小角回歸法解決線性模型的回歸係數。對於乙個有\(m\)個樣本,每個樣本有\(n\)個特徵的訓練集而言,假設可以擬合乙個線性模型\(y=\omega^tx\),其中\(y\)是\(m*1\)的向量,\(x\)是\(m*n\)的矩陣,\(\omega\)是\(n*1\)的向量。即可通過最小角回歸法求得最小化該模型的引數\(\omega\)。

首先把矩陣\(x\)看成\(n\)個\(m*1\)的向量\(x_i \quad(i=1,2,\cdots,n)\),之後選擇與向量\(y\)余弦相似度最大,即與\(y\)最為接近的乙個變數\(x_i\),使用類似於前向選擇法中的殘差計算方法得到新的目標\(y_\),此時不同於前向梯度法的一小步一小步走,而是走到出現乙個\(x_j\quad(j=1,2,i-1,i+1,\cdots,n)\)的時候,此時\(x_i\)和\(y_\)的余弦相似度等於\(x_j\)和\(y_\)的余弦相似度,這個時候殘差\(y_\)沿著\(x_i\)和\(x_j\)的角平分線方向走,知道出現第三個特徵\(x_k\)和\(y_\)的相關度等於\(x_i\)和\(y_\)的余弦相似度等於\(x_j\)和\(y_\)的余弦相似度的時候,使用這三者的共同角平分線,作為殘差\(y_\)的路徑方向,直到所有變數取完了,停止演算法,即可得到\(\omega\)。

# 舉例圖例

import matplotlib.pyplot as plt

from matplotlib.font_manager import fontproperties

%matplotlib inline

font = fontproperties(fname='/library/fonts/heiti.ttc')

# x1*w1

plt.annotate(xytext=(2, 5), xy=(8, 5), s='', color='r',

arrowprops=dict(arrowstyle="->", color='r'))

plt.text(6, 4.5, s='$x_1*\omega_1$', color='g')

# x1

plt.annotate(xytext=(2, 5), xy=(4, 5), s='', color='r',

arrowprops=dict(arrowstyle="->", color='k'))

plt.text(2.5, 4.5, s='$x_1$', color='g')

# x2

plt.annotate(xytext=(2, 5), xy=(3, 7), s='', color='r',

arrowprops=dict(arrowstyle="->", color='k'))

plt.text(2, 6, s='$x_2$', color='g')

# yplt.annotate(xytext=(2, 5), xy=(12, 8), s='', color='r',

arrowprops=dict(arrowstyle="->", color='k'))

plt.text(5, 7.5, s='$y$', color='g')

# x1

plt.annotate(xytext=(8, 5), xy=(10, 5), s='', color='r',

arrowprops=dict(arrowstyle="->", color='r'))

plt.text(8.5, 4.5, s='$x_1$', color='g')

# x2

plt.annotate(xytext=(8, 5), xy=(9, 7), s='', color='r',

arrowprops=dict(arrowstyle="->", color='r'))

plt.text(8, 6, s='$x_2$', color='g')

# w2(x1+x2)

plt.annotate(xytext=(8, 5), xy=(12, 8), s='', color='r',

arrowprops=dict(arrowstyle="->", color='gray'))

plt.text(10.5, 6.3, s='$(x_1+x_2)\omega_2$', color='g')

plt.xlim(0, 13)

plt.ylim(2, 13)

plt.title('最小角回歸法舉例', fontproperties=font, fontsize=20)

plt.show()

上圖假設\(x\)為\(2\)維,首先可以看出,離\(y\)最接近的是\(x_1\),首先在\(x_1\)上走一段距離,知道殘差和\(x_1\)的相關度等於殘差和\(x_2\)的相關度,即殘差在\(x_1\)和\(x_2\)的角平分線上,由於\(x\)為\(2\)維,此時沿著角平分線走,直到殘差足夠小時停止,如果此時\(x\)不是\(2\)維,則繼續選擇第3個、第4個特徵走下去。

特別適合特徵維度高於樣本數的情況

迭代方向是根據目標的殘差定的,所以演算法對訓練集中的雜訊特別敏感

前向選擇法由於涉及到投影,只能給出乙個近似解;前向梯度法則需要自己手動除錯乙個很好的\(\epsilon\)引數;最小角回歸法結合了兩者的優點,但是至於演算法具體好壞害的取決於訓練集,即演算法的穩定性無法保證。

最小角回歸筆記

最小角是一種特徵選擇的回歸方法。做特徵選擇,一方面是希望找到真正有用的特徵,另一方面是希望 稀疏 事實證明稀疏性在提高模型的準確性以及降低overfitting方面都很有作用。最初始的時候,沒有變數被選擇,殘差就是y在變數空間的向量,然後選進去乙個與殘差相關性最大的變數。隨著lambda不斷減小,對...

sklearn 1 1 7 最小角度回歸

最小角度回歸 lars 是高位資料回歸的演算法之一,由bradley efron,trevor hastie,iain johnstone和robert tibshirani開發。lars類似於前向逐步回歸。在每一的中,它找到與 值最相關的值。當多個變數具有相同的線性相關時,不是沿著相同的 變數繼續...

06 旋轉陣列最小值

解題思路 採用二分查詢法。需要考慮三種情況 array mid array high 出現這種情況的array類似 3,4,5,6,0,1,2 此時最小數字一定在mid的右邊。low mid 1 array mid array high 出現這種情況的array類似 1,0,1,1,1 或者 1,1...