導航:首頁 > 源碼編譯 > 線性回歸的常用演算法

線性回歸的常用演算法

發布時間:2022-12-31 18:50:50

㈠ 回歸演算法有哪些

回歸演算法有:
線性回歸使用最佳的擬合直線(也就是回歸線)在因變數(Y)和一個或多個自變數(X)之間建立一種關系。
用一個方程式來表示它,即Y=a+b*X + e,其中a表示截距,b表示直線的斜率,e是誤差項。這個方程可以根據給定的預測變數(s)來預測目標變數的值。
邏輯回歸是用來計算「事件=Success」和「事件=Failure」的概率。當因變數的類型屬於二元(1 / 0,真/假,是/否)變數時,我們就應該使用邏輯回歸。這里,Y的值從0到1,它可以方程表示。

㈡ 線性回歸公式,怎麼推導的

線性回歸是一種用來研究兩種或兩種以上變數之間相互依存關系的統計分析方法。其中一種變數稱為自變數,另一種稱為因變數。線性回歸假設自變數與因變數之間存在線性關系,即因變數可以用一個或多個自變數的線性組合來表示。公式的推導過程可以分為如下幾個步驟:定義自變數和因變數設有 n 組觀測數據,其中自變數為 x,因變數為 y。因此,可以得到如下的觀測數據:(x1, y1), (x2, y2), … , (xn, yn)假設存在一個線性函數 y=wx+b 能夠較好地描述自變數與因變數之間的關系線性回歸假設存在一個線性函數 y=wx+b 能夠較好地描述自變數與因變數之間的關系,其中 w 和 b 是常數。因此,我們的目標是找到一組最優的 w 和 b 值,使得該函數能夠盡可能准確地描述觀測數據。定義損失函數為了找到最優的 w 和 b 值,我們需要定義一個損失函數來衡量線性函數 y=wx+b 和觀測數據之間的差異。常用的損失函數有均方差損失函數和平均絕對誤差損失函數。均方差損失函數為:L = (1/n) * ∑(yi - (wx + b))^2其中,yi 表示第 i 組觀測數據的因變數,wx+b 表示線性函數對於第 i 組觀測數據的預測值。平均絕對誤差損失函數為:L = (1/n) * ∑|yi - (wx + b)|求解最優解接下來,我們可以使用梯度下降法或其他優化演算法來求解最優解。梯度下降法的基本思想是,通過不斷迭代調整 w 和 b 的值,使得損失函數的值越來越小,從而得到最優的 w 和 b 值。最終,我們就可以得到最優的線性回歸模型 y=wx+b。希望以上回答能幫到你!

㈢ 線性回歸方程定義和演算法是怎麼樣的

且為觀測值的樣本方差.

線性方程稱為關於的線性回歸方程,稱為回歸系數,對應的直線稱為回歸直線.順便指出,將來還需用到,其中為觀測值的樣本方差.

利用公式求解:b=
a=y(平均數)-b*(平均數)
線性同餘方程

在數論中,線性同餘方程是最基本的同餘方程,「線性」表示方程的未知數次數是一次,即形如:

的方程。此方程有解當且僅當 b 能夠被 a 與 n 的最大公約數整除(記作 gcd(a,n) | b)。這時,如果 x0 是方程的一個解,那麼所有的解可以表示為:

其中 d 是a 與 n 的最大公約數。在模 n 的完全剩餘系 {0,1,…,n-1} 中,恰有 d 個解。

目錄
1 例子
2 求特殊解
3 線性同餘方程組
4 參見

例子
在方程
3x ≡ 2 (mod 6)
中, d = gcd(3,6) = 3 ,3 不整除 2,因此方程無解。

在方程
5x ≡ 2 (mod 6)
中, d = gcd(5,6) = 1,1 整除 2,因此方程在{0,1,2,3,4,5} 中恰有一個解: x=4。

在方程
4x ≡ 2 (mod 6)
中, d = gcd(4,6) = 2,2 整除 2,因此方程在{0,1,2,3,4,5} 中恰有兩個解: x=2 and x=5。

求特殊解
對於線性同餘方程

ax ≡ b (mod n) (1)
若 d = gcd(a, n 整除 b ,那麼為整數。由裴蜀定理,存在整數對 (r,s) (可用輾轉相除法求得)使得 ar+sn=d,因此 是方程 (1) 的一個解。其他的解都關於與 x 同餘。

舉例來說,方程

12x ≡ 20 (mod 28)
中 d = gcd(12,28) = 4 。注意到 ,因此 是一個解。對模 28 來說,所有的解就是 {4,11,18,25} 。

線性同餘方程組
線性同餘方程組的求解可以分解為求若干個線性同餘方程。比如,對於線性同餘方程組:

2x ≡ 2 (mod 6)
3x ≡ 2 (mod 7)
2x ≡ 4 (mod 8)
首先求解第一個方程,得到x ≡ 1 (mod 3),於是令x = 3k + 1,第二個方程就變為:

9k ≡ �6�11 (mod 7)
解得k ≡ 3 (mod 7)。於是,再令k = 7l + 3,第三個方程就可以化為:

42l ≡ �6�116 (mod 8)
解出:l ≡ 0 (mod 4),即 l = 4m。代入原來的表達式就有 x = 21(4m) + 10 = 84m + 10,即解為:

x ≡ 10 (mod 84)
對於一般情況下是否有解,以及解得情況,則需用到數論中的中國剩餘定理。

參見
二次剩餘
中國剩餘定理

談談解線性同餘方程

因為ACM/ICPC中有些題目是關於數論的,特別是解線性同餘方程,所以有必要准備下這方面的知識。關於這部分知識,我先後翻看過很多資料,包括陳景潤的《初等數論》、程序設計競賽例題解、「黑書」和很多網上資料,個人認為講的最好最透徹的是《演算法導論》中的有關章節,看了之後恍然大悟。經過幾天的自學,自己覺得基本掌握了其中的「奧妙」。拿出來寫成文章。

那麼什麼是線性同餘方程?對於方程:ax≡b(mod m),a,b,m都是整數,求解x 的值。

解題常式:pku1061 青蛙的約會 解題報告

符號說明:

mod表示:取模運算

ax≡b(mod m)表示:(ax - b) mod m = 0,即同餘

gcd(a,b)表示:a和b的最大公約數

求解ax≡b(mod n)的原理:

對於方程ax≡b(mod n),存在ax + by = gcd(a,b),x,y是整數。而ax≡b(mod n)的解可以由x,y來堆砌。具體做法,見下面的MLES演算法。

第一個問題:求解gcd(a,b)

定理一:gcd(a,b) = gcd(b,a mod b)

實現:古老的歐幾里德演算法

int Euclid(int a,int b)
{
if(b == 0)
return a;
else
return Euclid(b,mod(a,b));
}

附:取模運算

int mod(int a,int b)
{
if(a >= 0)
return a % b;
else
return a % b + b;
}

第二個問題:求解ax + by = gcd(a,b)

定理二:gcd(b,a mod b) = b * x' + (a mod b) * y'

= b * x' + (a - a / b * b) * y'

= a * y' + b * (x' - a / b * y')

= a * x + b * y

則:x = y'

y = x' - a / b * y'

實現:

triple Extended_Euclid(int a,int b)
{
triple result;
if(b == 0)
{
result.d = a;
result.x = 1;
result.y = 0;
}
else
{
triple ee = Extended_Euclid(b,mod(a,b));
result.d = ee.d;
result.x = ee.y;
result.y = ee.x - (a/b)*ee.y;
}
return result;
}

附:三元組triple的定義

struct triple
{
int d,x,y;
};

第三個問題:求解ax≡b(mod n)

實現:由x,y堆砌方程的解

int MLES(int a,int b,int n)
{
triple ee = Extended_Euclid(a,n);
if(mod(b,ee.d) == 0)
return mod((ee.x * (b / ee.d)),n / ee.d);
else
return -1;
}//返回-1為無解,否則返回的是方程的最小解

說明:ax≡b(mod n)解的個數:

如果ee.d 整除 b 則有ee.d個解;

如果ee.d 不能整除 b 則無解。

㈣ 線性回歸方程公式是什麼

y=bx+a

例如:

y=3x+1

因為不知道x前面的系數,和常數項所以設成a,b,a和b通常是需要求的。

先求x,y的平均值X,Y

再用公式代入求解:b=(x1y1+x2y2+...xnyn-nXY)/(x1+x2+...xn-nX)

後把x,y的平均數X,Y代入a=Y-bX

求出a並代入總的公式y=bx+a得到線性回歸方程。

(4)線性回歸的常用演算法擴展閱讀:

在線性回歸中,數據使用線性預測函數來建模,並且未知的模型參數也是通過數據來估計。這些模型被叫做線性模型。最常用的線性回歸建模是給定X值的y的條件均值是X的仿射函數。

不太一般的情況,線性回歸模型可以是一個中位數或一些其他的給定X的條件下y的條件分布的分位數作為X的線性函數表示。像所有形式的回歸分析一樣,線性回歸也把焦點放在給定X值的y的條件概率分布,而不是X和y的聯合概率分布。

㈤ 機器學習一般常用的演算法有哪些

機器學習是人工智慧的核心技術,是學習人工智慧必不可少的環節。機器學習中有很多演算法,能夠解決很多以前難以企的問題,機器學習中涉及到的演算法有不少,下面小編就給大家普及一下這些演算法。

一、線性回歸

一般來說,線性回歸是統計學和機器學習中最知名和最易理解的演算法之一。這一演算法中我們可以用來預測建模,而預測建模主要關注最小化模型誤差或者盡可能作出最准確的預測,以可解釋性為代價。我們將借用、重用包括統計學在內的很多不同領域的演算法,並將其用於這些目的。當然我們可以使用不同的技術從數據中學習線性回歸模型,例如用於普通最小二乘法和梯度下降優化的線性代數解。就目前而言,線性回歸已經存在了200多年,並得到了廣泛研究。使用這種技術的一些經驗是盡可能去除非常相似(相關)的變數,並去除噪音。這是一種快速、簡單的技術。

二、Logistic 回歸

它是解決二分類問題的首選方法。Logistic 回歸與線性回歸相似,目標都是找到每個輸入變數的權重,即系數值。與線性回歸不同的是,Logistic 回歸對輸出的預測使用被稱為 logistic 函數的非線性函數進行變換。logistic 函數看起來像一個大的S,並且可以將任何值轉換到0到1的區間內。這非常實用,因為我們可以規定logistic函數的輸出值是0和1並預測類別值。像線性回歸一樣,Logistic 回歸在刪除與輸出變數無關的屬性以及非常相似的屬性時效果更好。它是一個快速的學習模型,並且對於二分類問題非常有效。

三、線性判別分析(LDA)

在前面我們介紹的Logistic 回歸是一種分類演算法,傳統上,它僅限於只有兩類的分類問題。而LDA的表示非常簡單直接。它由數據的統計屬性構成,對每個類別進行計算。單個輸入變數的 LDA包括兩個,第一就是每個類別的平均值,第二就是所有類別的方差。而在線性判別分析,進行預測的方法是計算每個類別的判別值並對具備最大值的類別進行預測。該技術假設數據呈高斯分布,因此最好預先從數據中刪除異常值。這是處理分類預測建模問題的一種簡單而強大的方法。

四、決策樹

決策樹是預測建模機器學習的一種重要演算法。決策樹模型的表示是一個二叉樹。這是演算法和數據結構中的二叉樹,沒什麼特別的。每個節點代表一個單獨的輸入變數x和該變數上的一個分割點。而決策樹的葉節點包含一個用於預測的輸出變數y。通過遍歷該樹的分割點,直到到達一個葉節點並輸出該節點的類別值就可以作出預測。當然決策樹的有點就是決策樹學習速度和預測速度都很快。它們還可以解決大量問題,並且不需要對數據做特別准備。

五、樸素貝葉斯

其實樸素貝葉斯是一個簡單但是很強大的預測建模演算法。而這個模型由兩種概率組成,這兩種概率都可以直接從訓練數據中計算出來。第一種就是每個類別的概率,第二種就是給定每個 x 的值,每個類別的條件概率。一旦計算出來,概率模型可用於使用貝葉斯定理對新數據進行預測。當我們的數據是實值時,通常假設一個高斯分布,這樣我們可以簡單的估計這些概率。而樸素貝葉斯之所以是樸素的,是因為它假設每個輸入變數是獨立的。這是一個強大的假設,真實的數據並非如此,但是,該技術在大量復雜問題上非常有用。所以說,樸素貝葉斯是一個十分實用的功能。

六、K近鄰演算法

K近鄰演算法簡稱KNN演算法,KNN 演算法非常簡單且有效。KNN的模型表示是整個訓練數據集。KNN演算法在整個訓練集中搜索K個最相似實例(近鄰)並匯總這K個實例的輸出變數,以預測新數據點。對於回歸問題,這可能是平均輸出變數,對於分類問題,這可能是眾數類別值。而其中的訣竅在於如何確定數據實例間的相似性。如果屬性的度量單位相同,那麼最簡單的技術是使用歐幾里得距離,我們可以根據每個輸入變數之間的差值直接計算出來其數值。當然,KNN需要大量內存或空間來存儲所有數據,但是只有在需要預測時才執行計算。我們還可以隨時更新和管理訓練實例,以保持預測的准確性。

七、Boosting 和 AdaBoost

首先,Boosting 是一種集成技術,它試圖集成一些弱分類器來創建一個強分類器。這通過從訓練數據中構建一個模型,然後創建第二個模型來嘗試糾正第一個模型的錯誤來完成。一直添加模型直到能夠完美預測訓練集,或添加的模型數量已經達到最大數量。而AdaBoost 是第一個為二分類開發的真正成功的 boosting 演算法。這是理解 boosting 的最佳起點。現代 boosting 方法建立在 AdaBoost 之上,最顯著的是隨機梯度提升。當然,AdaBoost 與短決策樹一起使用。在第一個決策樹創建之後,利用每個訓練實例上樹的性能來衡量下一個決策樹應該對每個訓練實例付出多少注意力。難以預測的訓練數據被分配更多權重,而容易預測的數據分配的權重較少。依次創建模型,每一個模型在訓練實例上更新權重,影響序列中下一個決策樹的學習。在所有決策樹建立之後,對新數據進行預測,並且通過每個決策樹在訓練數據上的精確度評估其性能。所以說,由於在糾正演算法錯誤上投入了太多注意力,所以具備已刪除異常值的干凈數據十分重要。

八、學習向量量化演算法(簡稱 LVQ)

學習向量量化也是機器學習其中的一個演算法。可能大家不知道的是,K近鄰演算法的一個缺點是我們需要遍歷整個訓練數據集。學習向量量化演算法(簡稱 LVQ)是一種人工神經網路演算法,它允許你選擇訓練實例的數量,並精確地學習這些實例應該是什麼樣的。而學習向量量化的表示是碼本向量的集合。這些是在開始時隨機選擇的,並逐漸調整以在學習演算法的多次迭代中最好地總結訓練數據集。在學習之後,碼本向量可用於預測。最相似的近鄰通過計算每個碼本向量和新數據實例之間的距離找到。然後返回最佳匹配單元的類別值或作為預測。如果大家重新調整數據,使其具有相同的范圍,就可以獲得最佳結果。當然,如果大家發現KNN在大家數據集上達到很好的結果,請嘗試用LVQ減少存儲整個訓練數據集的內存要求

㈥ 線性回歸方程公式是什麼

線性回歸方程公式:b=(x1y1+x2y2+...xnyn-nXY)/(x1+x2+...xn-nX)。線性回歸方程是利用數理統計中的回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關系的一種統計分析方法之一。


線性回歸方程公式求法:


第一:用所給樣本求出兩個相關變數的(算術)平均值:


x_=(x1+x2+x3+...+xn)/n


y_=(y1+y2+y3+...+yn)/n


第二:分別計算分子和分母:(兩個公式任選其一)


分子=(x1y1+x2y2+x3y3+...+xnyn)-nx_Y_


分母=(x1^2+x2^2+x3^2+...+xn^2)-n*x_^2


第三:計算b:b=分子/分母


用最小二乘法估計參數b,設服從正態分布,分別求對a、b的偏導數並令它們等於零,得方程組解為


其中,且為觀測值的樣本方差.線性方程稱為關於的線性回歸方程,稱為回歸系數,對應的直線稱為回歸直線.順便指出,將來還需用到,其中為觀測值的樣本方差。


先求x,y的平均值X,Y


再用公式代入求解:b=(x1y1+x2y2+...xnyn-nXY)/(x1+x2+...xn-nX)


後把x,y的平均數X,Y代入a=Y-bX


求出a並代入總的公式y=bx+a得到線性回歸方程


(X為xi的平均數,Y為yi的平均數)



應用


線性回歸方程是回歸分析中第一種經過嚴格研究並在實際應用中廣泛使用的類型。這是因為線性依賴於其未知參數的模型比非線性依賴於其位置參數的模型更容易擬合,而且產生的估計的統計特性也更容易確定。


線性回歸有很多實際用途。分為以下兩大類:


如果目標是預測或者映射,線性回歸可以用來對觀測數據集的和X的值擬合出一個預測模型。當完成這樣一個模型以後,對於一個新增的X值,在沒有給定與它相配對的y的情況下,可以用這個擬合過的模型預測出一個y值。


給定一個變數y和一些變數X1,...,Xp,這些變數有可能與y相關,線性回歸分析可以用來量化y與Xj之間相關性的強度,評估出與y不相關的Xj,並識別出哪些Xj的子集包含了關於y的冗餘信息。


以上內容參考網路-線性回歸方程

㈦ 線性回歸方程公式是什麼

線性回歸方程是利用數理統計中的回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關系的一種統計分析方法之一。線性回歸也是回歸分析中第一種經過嚴格研究並在實際應用中廣泛使用的類型。按自變數個數可分為一元線性回歸分析方程和多元線性回歸分析方程。

㈧ matlab,有哪些是線性回歸演算法!

2015a版的matlab有如下的線形回歸演算法。
方法名 函數名 說明
1.多元線性回歸 fitlm 具有多個預測變數的線性回歸
2.逐步回歸 stepwise 互動式逐步回歸
3多目標的多元線性回歸 mvregress 使用多變數輸出的線性回歸
4有正則化的多元線性回歸 lasso 使用彈性網正則化的多元線性回歸
5有正則化的多元線性回歸 ridge Ridge回歸

㈨ 線性回歸演算法原理(越詳細越好)

線性回歸是利用數理統計中的回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關系的一種統計分析方法之一,運用十分廣泛。

分析按照自變數和因變數之間的關系類型,可分為線性回歸分析和非線性回歸分析。

如果在回歸分析中,只包括一個自變數和一個因變數,且二者的關系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變數,且因變數和自變數之間是線性關系,則稱為多元線性回歸分析。

我們以一簡單數據組來說明什麼是線性回歸。假設有一組數據型態為y=y(x),其中

x={0,1,2,3,4,5},y={0,20,60,68,77,110}

如果我們要以一個最簡單的方程式來近似這組數據,則非一階的線性方程式莫屬。先將這組數據繪圖如下

圖中的斜線是我們隨意假設一階線性方程式y=20x,用以代表這些數據的一個方程式。以下將上述繪圖的MATLAB指令列出,並計算這個線性方程式的y值與原數據y值間誤差平方的總合。

>>x=[012345];

>>y=[020606877110];

>>y1=20*x;%一階線性方程式的y1值

>>sum_sq=sum(y-y1).^2);%誤差平方總合為573

>>axis([-1,6,-20,120])

>>plot(x,y1,x,y,'o'),title('Linearestimate'),grid

如此任意的假設一個線性方程式並無根據,如果換成其它人來設定就可能採用不同的線性方程式;所以我們須要有比較精確方式決定理想的線性方程式。我們可以要求誤差平方的總合為最小,做為決定理想的線性方程式的准則,這樣的方法就稱為最小平方誤差(leastsquareserror)或是線性回歸。MATLAB的polyfit函數提供了從一階到高階多項式的回歸法,其語法為polyfit(x,y,n),其中x,y為輸入數據組n為多項式的階數,n=1就是一階的線性回歸法。polyfit函數所建立的多項式可以寫成

從polyfit函數得到的輸出值就是上述的各項系數,以一階線性回歸為例n=1,所以只有二個輸出值。如果指令為coef=polyfit(x,y,n),則coef(1)=,coef(2)=,...,coef(n+1)=。注意上式對n階的多項式會有n+1項的系數。我們來看以下的線性回歸的示範:

>>x=[012345];

>>y=[020606877110];

>>coef=polyfit(x,y,1);%coef代表線性回歸的二個輸出值

>>a0=coef(1);a1=coef(2);

>>ybest=a0*x+a1;%由線性回歸產生的一階方程式

>>sum_sq=sum(y-ybest).^2);%誤差平方總合為356.82

>>axis([-1,6,-20,120])

>>plot(x,ybest,x,y,'o'),title('Linearregressionestimate'),grid

[編輯本段]線性回歸擬合方程

一般來說,線性回歸都可以通過最小二乘法求出其方程,可以計算出對於y=bx+a的直線,其經驗擬合方程如下:

閱讀全文

與線性回歸的常用演算法相關的資料

熱點內容
電腦怎麼找到雲伺服器 瀏覽:871
微信怎麼發應用app 瀏覽:776
花生殼dns伺服器地址 瀏覽:648
squad伺服器一般什麼時候人多 瀏覽:479
程序員戰門課 瀏覽:474
config保存伺服器地址 瀏覽:317
預訂網吧座位的app叫什麼 瀏覽:416
香港伺服器主機地址 瀏覽:640
網店美工pdf 瀏覽:447
一堆文件夾怎麼弄出來 瀏覽:743
博途如何編譯硬體 瀏覽:418
fortran程序pdf 瀏覽:504
電池消耗演算法 瀏覽:394
伺服器中斷連接怎麼處理 瀏覽:222
上世紀互聯網不發達程序員很難 瀏覽:841
語音識別android開源 瀏覽:762
地埋式垃圾壓縮中轉站 瀏覽:902
apachehttpdlinux 瀏覽:944
快遞員中通app預付款是什麼 瀏覽:843
java路徑轉義 瀏覽:857