日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多变量线性回归

發布時間:2024/7/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多变量线性回归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前為止,我們探討了單變量/特征的回歸模型,現在我們對房價模型增加更多的特征, 例如房間數樓層等,構成一個含有多個變量的模型,模型中的特征為(x1,x2,…,xn)

增添更多特征后,我們引入一系列新的注釋:
n 代表特征的數量
x(i)代表第 i 個訓練實例,是特征矩陣中的第 i 行,是一個向量(vector)。
xij 代表特征矩陣中第 i 行的第 j 個特征,也就是第 i 個訓練實例的第 j 個特征。

支持多變量的假設 h 表示為:h(x)=θ0+θ1x1+θ2x2...θnxn

這個公式中有 n+1 個參數和 n 個變量,為了使得公式能夠簡化一些,引入 x0=1,則公式
轉化為:h(x)=ΘTX

多變量梯度下降

與單變量線性回歸類似,在多變量線性回歸中,我們也構建一個代價函數,則這個代價 函數是所有建模誤差的平方和,即:

j(θ0,θ1...θn)=12mi=1m(hθ(x(i))?y(i))2
其中: hθ(x)=ΘTX=θ0x0+θ1x1+....θnxn

我們的目標和單變量線性回歸問題中一樣,是要找出使得代價函數最小的一系列參數。
多變量線性回歸的批量梯度下降算法為:

梯度下降法實踐 1-特征縮放

在我們面對多維特征問題的時候,我們要保證這些特征都具有相近的尺度,這將幫助梯 度下降算法更快地收斂。
以房價問題為例,假設我們使用兩個特征,房屋的尺寸和房間的數量,尺寸的值為 0- 2000 平方英尺,而房間數量的值則是 0-5,以兩個參數分別為橫縱坐標,繪制代價函數的等 高線圖能,看出圖像會顯得很扁,梯度下降算法需要非常多次的迭代才能收斂。

解決的方法是嘗試將所有特征的尺度都盡量縮放到-1 到 1 之間。

xn=xn?unsn
其中 un表示平均值, sn表示標準差

梯度下降法實踐 2-學習率
梯度下降算法收斂所需要的迭代次數根據模型的不同而不同,我們不能提前預知,我們 可以繪制迭代次數和代價函數的圖表來觀測算法在何時趨于收斂。

也有一些自動測試是否收斂的方法,例如將代價函數的變化值與某個閥值(例如 0.001) 進行比較,但通常看上面這樣的圖表更好。
梯度下降算法的每次迭代受到學習率的影響,如果學習率 α 過小,則達到收斂所需的迭 代次數會非常高;如果學習率 α 過大,每次迭代可能不會減小代價函數,可能會越過局部最 小值導致無法收斂。

通常可以考慮嘗試些學習率: α=0.01,0.03,0.1,0.3,1,3,10

特征和多項式回歸

注:如果我們采用多項式回歸模型,在運行梯度下降算法前,特征縮放非常有必要。

正規方程

正規方程是通過求解下面的方程來找出使得代價函數最小的參數的: σσθjJ(θj)=0

假設我們的訓練集特征矩陣為 X(包含了 x0=1)并且我們的訓練集結果為向量 y,則利用正規方程解出的向量為

Θ=(XTX)?1XTy

注:對于那些不可逆的矩陣(通常是因為特征之間不獨立,如同時包含英尺為單位的尺
寸和米為單位的尺寸兩個特征,也有可能是特征數量大于訓練集的數量),正規方程方法是 不能用的。

梯度下降與正規方程的比較:

總結一下,只要特征變量的數目并不大,標準方程是一個很好的計算參數 θ 的替代方 法。具體地說,只要特征變量數量小于一萬,我通常使用標準方程法,而不使用梯度下降法。
隨著我們要講的學習算法越來越復雜,例如,當我們講到分類算法,像邏輯回歸算法,
我們會看到, 實際上對于那些算法,并不能使用標準方程法。對于那些更復雜的學習算法,
我們將不得不仍然使用梯度下降法。因此,梯度下降法是一個非常有用的算法,可以用在有大量特征變量的線性回歸問題

正規方程及不可逆性

有些同學曾經問過我,當計算 θ=inv(X’X ) X’y ,那對于矩陣 X’X 的結果是不可逆的情況 咋辦呢?
如果你懂一點線性代數的知識,你或許會知道,有些矩陣可逆,而有些矩陣不可逆。我 們稱那些不可逆矩陣為奇異或退化矩陣。

問題的重點在于 X’X 的不可逆的問題很少發生,在 Octave 里,如果你用它來實現 θ 的 計算,你將會得到一個正常的解。在 Octave 里,有兩個函數可以求解矩陣的逆,一個被稱 為 pinv(),另一個是 inv(),這兩者之間的差異是些許計算過程上的,一個是所謂的偽逆,另 一個被稱為逆。使用 pinv() 函數可以展現數學上的過程,這將計算出 θ 的值,即便矩陣 X’X 是不可逆的。

在 pinv() 和 inv() 之間,又有哪些具體區別呢 ?
其中 inv() 引入了先進的數值計算的概念。例如,在預測住房價格時,如果 x1 是以英尺 為尺寸規格計算的房子,x2 是以平方米為尺寸規格計算的房子,同時,你也知道 1 米等于 3.28 英尺 ( 四舍五入到兩位小數 ),這樣,你的這兩個特征值將始終滿足約束:x1=x2* (3.28)2。

實際上,你可以用這樣的一個線性方程,來展示那兩個相關聯的特征值,矩陣 X’X 將是 不可逆的。

第二個原因是,在你想用大量的特征值,嘗試實踐你的學習算法的時候,可能會導致矩 陣 X’X 的結果是不可逆的。
具體地說,在 m 小于或等于 n 的時候,例如,有 m 等于 10 個的訓練樣本也有 n 等于
100 的特征數量。

總之,出現不可逆矩陣的情況極少發生,所以 在大多數實現線性回歸中,出現不可逆的問題不應該過多的關注 XTX 是不可逆的。

總結

以上是生活随笔為你收集整理的多变量线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。