最小二乘法

我們以最簡單的一元線性模型來解釋最小二乘法逞度。什么是一元線性模型呢? 監(jiān)督學(xué)習(xí)中妙啃,如果預(yù)測的變量是離散的档泽,我們稱其為分類(如決策樹,支持向量機(jī)等)揖赴,如果預(yù)測的變量是連續(xù)的馆匿,我們稱其為回歸≡锘回歸分析中渐北,如果只包括一個自變量和一個因變量,且二者的關(guān)系可用一條直線近似表示铭拧,這種回歸分析稱為一元線性回歸分析赃蛛。如果回歸分析中包括兩個或兩個以上的自變量恃锉,且因變量和自變量之間是線性關(guān)系,則稱為多元線性回歸分析呕臂。對于二維空間線性是一條直線破托;對于三維空間線性是一個平面,對于多維空間線性是一個超平面...
對于一元線性回歸模型, 假設(shè)從總體中獲取了n組觀察值(X1歧蒋,Y1)土砂,(X2,Y2)疏尿, …瘟芝,(Xn,Yn)褥琐。對于平面中的這n個點(diǎn),可以使用無數(shù)條曲線來擬合晤郑。要求樣本回歸函數(shù)盡可能好地擬合這組值敌呈。綜合起來看,這條直線處于樣本數(shù)據(jù)的中心位置最合理造寝。 選擇最佳擬合曲線的標(biāo)準(zhǔn)可以確定為:使總的擬合誤差(即總殘差)達(dá)到最小磕洪。有以下三個標(biāo)準(zhǔn)可以選擇:
(1)用“殘差和最小”確定直線位置是一個途徑。但很快發(fā)現(xiàn)計算“殘差和”存在相互抵消的問題诫龙。 (2)用“殘差絕對值和最小”確定直線位置也是一個途徑析显。但絕對值的計算比較麻煩。 (3)最小二乘法的原則是以“殘差平方和最小”確定直線位置签赃。用最小二乘法除了計算比較方便外谷异,得到的估計量還具有優(yōu)良特性。這種方法對異常值非常敏感锦聊。
  最常用的是普通最小二乘法( Ordinary Least Square歹嘹,OLS):所選擇的回歸模型應(yīng)該使所有觀察值的殘差平方和達(dá)到最小。(Q為殘差平方和)- 即采用平方損失函數(shù)孔庭。
 樣本回歸模型:

其中ei
為樣本(Xi,
Yi
)的誤差
平方損失函數(shù):

則通過Q最小確定這條直線尺上,即確定
,以
為變量圆到,把它們看作是Q的函數(shù)怎抛,就變成了一個求極值的問題,可以通過求導(dǎo)數(shù)得到芽淡。求Q對兩個待估參數(shù)的偏導(dǎo)數(shù):

根據(jù)數(shù)學(xué)知識我們知道马绝,函數(shù)的極值點(diǎn)為偏導(dǎo)為0的點(diǎn)。
解得:

這就是最小二乘法的解法吐绵,就是求得平方損失函數(shù)的極值點(diǎn)迹淌。

三. C++實(shí)現(xiàn)代碼


1 /* 2 最小二乘法C++實(shí)現(xiàn) 3 參數(shù)1為輸入文件 4 輸入 : x 5 輸出: 預(yù)測的y 6 / 7 #include<iostream> 8 #include<fstream> 9 #include<vector>10 using namespace std;11 12 class LeastSquare{13 double a, b;14 public:15 LeastSquare(const vector<double>& x, const vector<double>& y)16 {17 double t1=0, t2=0, t3=0, t4=0;18 for(int i=0; i<x.size(); ++i)19 {20 t1 += x[i]x[i];21 t2 += x[i];22 t3 += x[i]y[i];23 t4 += y[i];24 }25 a = (t3x.size() - t2t4) / (t1x.size() - t2t2); // 求得β1 26 b = (t1t4 - t2t3) / (t1x.size() - t2t2); // 求得β227 }28 29 double getY(const double x) const30 {31 return ax + b;32 }33 34 void print() const35 {36 cout<<"y = "<<a<<"x + "<<b<<"\n";37 }38 39 };40 41 int main(int argc, char *argv[])42 {43 if(argc != 2)44 {45 cout<<"Usage: DataFile.txt"<<endl;46 return -1;47 }48 else49 {50 vector<double> x;51 ifstream in(argv[1]);52 for(double d; in>>d; )53 x.push_back(d);54 int sz = x.size();55 vector<double> y(x.begin()+sz/2, x.end());56 x.resize(sz/2);57 LeastSquare ls(x, y);58 ls.print();59 60 cout<<"Input x:\n";61 double x0;62 while(cin>>x0)63 {64 cout<<"y = "<<ls.getY(x0)<<endl;65 cout<<"Input x:\n";66 }67 }68 }
復(fù)制代碼

四. 最小二乘法與梯度下降法
最小二乘法跟梯度下降法都是通過求導(dǎo)來求損失函數(shù)的最小值河绽,那它們有什么區(qū)別呢。
相同
  1.本質(zhì)相同:兩種方法都是在給定已知數(shù)據(jù)(independent & dependent variables)的前提下對dependent variables算出出一個一般性的估值函數(shù)唉窃。然后對給定新數(shù)據(jù)的dependent variables進(jìn)行估算耙饰。  2.目標(biāo)相同:都是在已知數(shù)據(jù)的框架內(nèi)纹份,使得估算值與實(shí)際值的總平方差盡量更泄豆颉(事實(shí)上未必一定要使用平方),估算值與實(shí)際值的總平方差的公式為:

\Delta =\frac{1}{2} \sum_{i=1}^{m}{(f_{\beta }(\bar{x_{i}} )-y_{i})^{2} }
\Delta =\frac{1}{2} \sum_{i=1}^{m}{(f_{\beta }(\bar{x_{i}} )-y_{i})^{2} }

其中
\bar{x_{i} }
\bar{x_{i} }
為第i組數(shù)據(jù)的independent variable蔓涧,
y_{i}
y_{i}
為第i組數(shù)據(jù)的dependent variable件已,
\beta
\beta
為系數(shù)向量。
不同  1.實(shí)現(xiàn)方法和結(jié)果不同:最小二乘法是直接對
\Delta
\Delta
求導(dǎo)找出全局最小元暴,是非迭代法篷扩。而梯度下降法是一種迭代法,先給定一個
\beta
\beta
茉盏,然后向
\Delta
\Delta
下降最快的方向調(diào)整
\beta
\beta
鉴未,在若干次迭代之后找到局部最小。梯度下降法的缺點(diǎn)是到最小點(diǎn)的時候收斂速度變慢鸠姨,并且對初始點(diǎn)的選擇極為敏感铜秆,其改進(jìn)大多是在這兩方面下功夫。

參考: http://blog.csdn.net/qll125596718/article/details/8248249

原文網(wǎng)址:http://www.cnblogs.com/iamccme/archive/2013/05/15/3080737.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讶迁,一起剝皮案震驚了整個濱河市连茧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巍糯,老刑警劉巖啸驯,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鳞贷,居然都是意外死亡坯汤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門搀愧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惰聂,“玉大人,你說我怎么就攤上這事咱筛〈昊希” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵迅箩,是天一觀的道長溉愁。 經(jīng)常有香客問我,道長饲趋,這世上最難降的妖魔是什么拐揭? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任撤蟆,我火速辦了婚禮,結(jié)果婚禮上堂污,老公的妹妹穿的比我還像新娘家肯。我一直安慰自己,他們只是感情好盟猖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布讨衣。 她就那樣靜靜地躺著,像睡著了一般式镐。 火紅的嫁衣襯著肌膚如雪反镇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天娘汞,我揣著相機(jī)與錄音歹茶,去河邊找鬼。 笑死价说,一個胖子當(dāng)著我的面吹牛辆亏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鳖目,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缤弦!你這毒婦竟也來了领迈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤碍沐,失蹤者是張志新(化名)和其女友劉穎狸捅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體累提,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尘喝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了斋陪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朽褪。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖无虚,靈堂內(nèi)的尸體忽然破棺而出缔赠,到底是詐尸還是另有隱情,我是刑警寧澤友题,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布嗤堰,位于F島的核電站,受9級特大地震影響度宦,放射性物質(zhì)發(fā)生泄漏踢匣。R本人自食惡果不足惜告匠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望离唬。 院中可真熱鬧后专,春花似錦、人聲如沸男娄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽模闲。三九已至建瘫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尸折,已是汗流浹背啰脚。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留实夹,地道東北人橄浓。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像亮航,于是被迫代替她去往敵國和親荸实。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容