大資料(四十)機器學習【線性迴歸】
一、一元一次線性迴歸
如果用上述概念去理解線性迴歸與機器學習的關係還有點抽象,那麼下面我們來舉一個具體的例子來說明。
歷史上美國法社會見的次數很多,失敗的次數也很多。基於歷史樣本,我們希望分析火箭中一個組成(O-Ring)溫度對火箭發射成功與否的模型。
因此,我們利用y=ax+b模型。將x置為溫度,將y置為火箭發射失敗次數。通過歷史資料可以得到下圖。
由圖中可以看出當O-Ring溫度在70-80之間時候,火箭發射失敗次數無限趨近於0。因此得出結論當O-Ring溫度在70-80之間時發射火箭風險最小 。得出這個結論就要應用於生產,所以以後每次在發射火箭時候,都需要先對O-Ring進行預熱處理,使其溫度在最佳工作溫度。
當然,這只是一個很簡單的例子。這個例子中O-Ring溫度只是一個維度,其被稱為一元線性迴歸。
二、多元一次線性迴歸
而火箭發射應該考慮的維度十分之多。因此在真正分析火箭發射成功率時候要綜合考量各個維度,最後得出模型也就應當是下方所示:
上圖公式使用代數表達就是下方公式所示。
Y=ε+X0*β0+X1*β0+X2*β0+····+Xn*βn
其中X1到Xn為火箭各個維度。帶入多組X0、X1、····Xn、Y。最終可求解到β0、β1、····、βn的值。如下圖所示。
我們發現上方線性迴歸公式很容易被打散。而我們之前學的MapReduce思想也是分分合合,其Map是分,Reduce就是和,因此線性迴歸使用分散式計算框架很容易實現,這也是線性迴歸在機器學習中這麼重要的原意。
三、邏輯迴歸
邏輯迴歸就是對我們上面所述的線性迴歸的Y求log,那麼Y的範圍也就規約在了0-1之間。這就與事件概率有關了。邏輯迴歸曲線圖如下所示。
四、機器學習框架
基於前幾章所述,我們可以得到機器學習框架圖。
五、最小二乘法
如上圖所示,其是我們在本章一元線性迴歸的例子,很明顯我們想要的最理想的效果是我們的一元線性迴歸公式構成的線穿越所有的歷史樣本錨點。 這種情形下求解出的公式變數就是最優的。
但是現實很骨感,沒有那麼完美的事情。那麼問題來了,既然不存在穿越所有點的情形,那麼什麼時候我們認為這條線是最優的呢?下面我們來說說。
從上圖可看出紅色的線為實際點與預期點的差距,我們對其平方之和開根號就是最小二乘法,如下圖
當求出ERROR最小時,我們認為當前模型是最優的。說到這,我們也就能理解機器學習為什麼是迭代的了。因為我們在機器學習過程中會產生很多模型,對每個模型求其error,最終經過多次迭代,獲得最優解。
獲取到最優解時error應該為0,但是現實中往往沒有這種操作,我們需要給error設定一個閾值,當eroor滿足這個閾值時候,我們就認為當前模型是最優解了。