基于Spark的機(jī)器學(xué)習(xí)實(shí)踐 (七) - 回歸算法

0 相關(guān)源碼

1 回歸分析概述

1.1 回歸分析介紹

◆ 回歸與分類類似,只不過回歸的預(yù)測(cè)結(jié)果是連續(xù)的,而分類的預(yù)測(cè)結(jié)果是離散

◆ 如此,使得很多回歸與分類的模型可以經(jīng)過改動(dòng)而通用

◆ 因此對(duì)于回歸和分類中基本原理相同或類似的模型 ,不再贅述

1.2 Spark中集成的回歸算法

◆ Spark實(shí)現(xiàn)的回歸算法很豐富 ,有很多模型同樣可以用于分類

1.3 回歸與分類的區(qū)別與聯(lián)系

2 線性回歸算法概述

2.1 線性回歸簡(jiǎn)介

◆ 在回歸分析中,自變量與因變量之間滿足或基本滿足線性關(guān)系,可以使用線性模型進(jìn)行擬合

◆ 如回歸分析中,只有一個(gè)自變量的即為一元線性回歸,其自變量與因變量之間的關(guān)系可以用一條直線近似表示

◆ 同理,對(duì)于多變量的回歸稱為多元線性回歸,其可以用一個(gè)平面或超平面來表示

2.2 使用線性回歸的前提條件

◆ 自變量與因變量之間具有線性趨勢(shì),在前面介紹過相關(guān)系數(shù)

◆ 獨(dú)立性
因變量之間取值相互獨(dú)立,不存在關(guān)聯(lián)

2.3 線性回歸的例子

◆ 例如探究沸點(diǎn)與氣壓的關(guān)系,研究浮力與表面積之間的關(guān)系,物理上經(jīng)典的探索力與加速度之間的關(guān)系

3 線性回歸算法原理

3.1 回顧機(jī)器學(xué)習(xí)模型

◆ 對(duì)于統(tǒng)計(jì)學(xué)習(xí)來講,機(jī)器學(xué)習(xí)模型就是一個(gè)函數(shù)表達(dá)式,其訓(xùn)練過程就是在不斷更新這個(gè)函數(shù)式的參數(shù),以便這個(gè)函數(shù)能夠?qū)ξ粗獢?shù)據(jù)產(chǎn)生最好的預(yù)測(cè)效果

◆ 機(jī)器學(xué)習(xí)的這個(gè)過程,與人的學(xué)習(xí)過程原理是一樣的,都是先學(xué)習(xí)而后使用,故歸屬于人工智能領(lǐng)域

3.2 何為好的預(yù)測(cè)效果?

◆ 前面說"以便達(dá)到最好的預(yù)測(cè)效果”, 那么如何量化"好的預(yù)測(cè)效果”呢?

◆ 衡量預(yù)測(cè)效果好壞的函數(shù)稱為代價(jià)函數(shù)(cost function) ,或損失函數(shù)(loss function).

◆ 例如:用一個(gè)模型預(yù)測(cè)是否會(huì)下雨,如果模型預(yù)測(cè)錯(cuò)誤一天,則損失函數(shù)加1
那么機(jī)器學(xué)習(xí)算法的直接目標(biāo)就是想方設(shè)法調(diào)節(jié)這個(gè)函數(shù)的參數(shù)
以便能夠使預(yù)測(cè)錯(cuò)誤的天數(shù)減少,也就是降低損失函數(shù)值,同時(shí),也提高了預(yù)測(cè)的準(zhǔn)確率

3.3 再談線性回歸

◆ 線性回歸是最簡(jiǎn)單的數(shù)學(xué)模型之一

◆ 線性回歸的步驟是先用既有的數(shù)據(jù),探索自變量X與因變量Y之間存在的關(guān)系
這個(gè)關(guān)系就是線性回歸模型中的參數(shù).有了它,我們就可以用這個(gè)模型對(duì)未知數(shù)據(jù)進(jìn)行預(yù)測(cè)

◆ 機(jī)器學(xué)習(xí)的模型基本的訓(xùn)練過程亦是如此,屬于監(jiān)督學(xué)習(xí)

3.4 線性回歸模型

◆ 線性回歸的數(shù)學(xué)表達(dá)式是


◆ 上式分別為一元線性回歸與寫成矩陣形式的線性回歸模型

4 最小二乘法

4.1 何為最小二乘法

◆ 又稱最小平方法,通過最小化殘差平方和來找到最佳的函數(shù)匹配

◆ 即最小二乘法以殘差的平方和作為損失函數(shù),用于衡量模型的好壞

◆ 利用最小二乘法可以實(shí)現(xiàn)對(duì)曲線的擬合

4.2 最小二乘法原理

◆ 以一元線性回歸為例,演示推倒過程


4.3 最小二乘法例子

5 隨機(jī)梯度下降

5.1 何為隨機(jī)梯度下降

◆ 隨機(jī)梯度下降(SGD)是機(jī)器學(xué)習(xí)中常用的一種優(yōu)化方法

◆ 它是通過不斷迭代更新的手段,來尋找某一個(gè)函數(shù)的全局最優(yōu)解的方法

◆ 與最小二乘法類似,都是優(yōu)化算法,隨機(jī)梯度下降特別適合變量眾多,受控系統(tǒng)復(fù)雜的模型,尤其在深度學(xué)習(xí)中具有十分重要的作用

5.2 從梯度說起

◆ 梯度是微積分中的一個(gè)算子,用來求某函數(shù)在該點(diǎn)處沿著哪條路徑變化最快,通俗理解即為在哪個(gè)路徑上幾何形態(tài)更為“陡峭”

◆ 其數(shù)學(xué)表達(dá)式為(以二元函數(shù)為例)


5.3 隨機(jī)梯度下降原理

◆ 線性模型的梯度下降推倒過程


5.4 隨機(jī)梯度下降優(yōu)點(diǎn)

◆ 隨機(jī)梯度下降的"隨機(jī)”體現(xiàn)在進(jìn)行梯度計(jì)算的樣本是隨機(jī)抽取的n個(gè),與直接采用全部樣本相比,這樣計(jì)算量更少

◆ 隨機(jī)梯度下降善于解決大量訓(xùn)練樣本的情況

學(xué)習(xí)率決定了梯度下降的速度,同時(shí),在SGD的基礎(chǔ)上引入了”動(dòng)量”的概念,從而進(jìn)一步加速收斂速度的優(yōu)化算法也陸續(xù)被提出

6 實(shí)戰(zhàn)Spark預(yù)測(cè)房?jī)r(jià) - 項(xiàng)目展示及代碼概覽

  • 代碼


數(shù)據(jù)加載及轉(zhuǎn)換

  • 數(shù)據(jù)集文件 - Price降序排列


由于訓(xùn)練集有序,為提高準(zhǔn)確率,應(yīng)打亂順序-shuffle

  • 預(yù)測(cè)結(jié)果


7 邏輯回歸算法及原理概述

7.1 線性 VS 非線性

◆ 線性簡(jiǎn)言之就是兩個(gè)變量之間存在一 次方函數(shù)關(guān)系

◆ 自然界中變 量間更多的關(guān)系是非線性的,絕對(duì)的線性關(guān)系相對(duì)很少

◆ 因此,在選擇數(shù)學(xué)模型進(jìn)行擬合的時(shí)候,很多情況使用非線性函數(shù)構(gòu)造的模型可能比線性函數(shù)模型更好

7.2 邏輯回歸

◆ 邏輯回歸即logistic回歸,是一種廣義上的線性回歸,但是與線性回歸模型不同的是,其引入了非線性函數(shù)

◆ 因此,邏輯回歸可以用于非線性關(guān)系的回歸擬合,這一點(diǎn)是線性回歸所不具備的

7.3 邏輯回歸算法原理

Sigmoid函數(shù)

邏輯函數(shù)(英語:logistic function)或邏輯曲線(英語:logistic curve)是一種常見的S函數(shù),它是皮埃爾·弗朗索瓦·韋呂勒在1844或1845年在研究它與人口增長(zhǎng)的關(guān)系時(shí)命名的。

  • 一個(gè)簡(jiǎn)單的Logistic函數(shù)可用下式表示:


廣義Logistic曲線可以模仿一些情況人口增長(zhǎng)(P)的S形曲線。起初階段大致是指數(shù)增長(zhǎng);然后隨著開始變得飽和,增加變慢;最后,達(dá)到成熟時(shí)增加停止。

  • 標(biāo)準(zhǔn)Logistic函數(shù)


邏輯回歸原理

◆ 改進(jìn)線性回歸模型


8 正則化原理

8.1 模型是訓(xùn)練得越多越好嗎?

◆ 我們通常理解是“千錘百煉”肯定質(zhì)量過硬,而機(jī)器學(xué)習(xí)是一樣的嗎?


8.2 過擬合、欠擬合與剛剛好

◆ 人學(xué)習(xí)太過容易不懂得變通,過于教條,變成所謂的”書呆子”
機(jī)器學(xué)習(xí)也是一樣

◆ 我們把機(jī)器學(xué)習(xí)模型訓(xùn)練得太過 ,陷入“教條”的狀態(tài)稱之為過擬合(over fitting)

◆ 反之,預(yù)測(cè)能力不強(qiáng),宛若“智障”的模型稱之為欠擬合(under fitting)

◆ 下面分別演示了用三個(gè)不同的數(shù)學(xué)模型對(duì)樣本點(diǎn)進(jìn)行擬合,產(chǎn)生的三種狀態(tài)


8.3 如何達(dá)到剛剛好呢?

◆ 對(duì)于欠擬合狀態(tài),只需要加大訓(xùn)練輪次,增加特征量,使用非線性模型等即可實(shí)現(xiàn)

◆ 而相反,過擬合卻往往更加棘手

◆ 常用的減少過擬合的方法有交叉驗(yàn)證法,正則化方法等

8.3.1 交叉驗(yàn)證法

◆ 所謂交叉驗(yàn)證法,就是在訓(xùn)練過程中,將訓(xùn)練數(shù)據(jù)集拆分為訓(xùn)練集驗(yàn)證集兩個(gè)部分

  • 訓(xùn)練集專用訓(xùn)練模型
  • 驗(yàn)證集只為檢驗(yàn)?zāi)P皖A(yù)測(cè)能力

當(dāng)二者同時(shí)達(dá)到最優(yōu),即是模型最優(yōu)的時(shí)候


8.4 正則化原理

◆ 我們?cè)谇懊娴氖纠锌梢钥吹?對(duì)于過擬合現(xiàn)象,往往都是模型過于復(fù)雜,超過實(shí)際需要

◆ 那么,能否在損失函數(shù)的計(jì)算中,對(duì)模型的復(fù)雜程度進(jìn)行量化,越復(fù)雜的模型,就越對(duì)其進(jìn)行”懲罰”, 以便使模型更加”中庸”

◆ 上面的思路就是正則化的思想,通過動(dòng)態(tài)調(diào)節(jié)懲罰程度, 來防止模型過于復(fù)雜

◆ 令損失函數(shù)為


◆ 則經(jīng)過優(yōu)化的參數(shù)為


◆ 其中


為正則化項(xiàng),反應(yīng)了模型的復(fù)雜程度,在不同算法中有差異,例如可以為


9實(shí)戰(zhàn)Spark邏輯回歸

  • 該算法官方歸類于分類算法


  • 邏輯回歸算法


  • 分類結(jié)果(因?yàn)榉诸?,所以都是顯示的都是1500)


10 保序回歸算法概述

10.1 何為保序回歸?

◆ 保序回歸是用于擬合非遞減數(shù)據(jù)(非遞增也一樣)的一種回歸分析,同時(shí),保序回歸能夠使得擬合之后的誤差最小化
保序回歸(英文:Isotonic regression)在數(shù)值分析中指的是在保序約束下搜索一個(gè)加權(quán) w 的最小二乘 y 以擬合變量 x,它是一個(gè)二次規(guī)劃問題:

保序回歸應(yīng)用于統(tǒng)計(jì)推理、多維標(biāo)度等研究中。

◆ 比較保序回歸與線性回歸


10.2 保序回歸的應(yīng)用

◆ 保序回歸用于擬合非遞減數(shù)據(jù) ,不需要事先判斷線性與否,只需數(shù)據(jù)總體的趨勢(shì)是非遞減的即可
例如研究某種藥物的使用劑量與藥效之間的關(guān)系

11 保序回歸算法原理

11.1 保序回歸的原理

◆ 適用保序回歸的前提應(yīng)是結(jié)果數(shù)據(jù)的非遞減,那么,我們可以通過判斷數(shù)據(jù)是否發(fā)生減少來來觸發(fā)計(jì)算

◆ 算法描述


◆ Spark實(shí)現(xiàn)求解該模型的算法是pool adjacent violators算法(PAVA)

◆ 例如原序列為{1,3,2,4,6}經(jīng)過保序回歸為{1,3,3,3,6}

12 實(shí)戰(zhàn)保序回歸數(shù)據(jù)分析

保序回歸屬于回歸算法族。標(biāo)準(zhǔn)保序回歸是一個(gè)問題,給定一組有限的實(shí)數(shù)Y = y1,y2,...,yn表示觀察到的響應(yīng),X = x1,x2,...,xn未知的響應(yīng)值擬合找到一個(gè)函數(shù)最小化


相對(duì)于x1≤x2≤...≤xn的完全順序,其中wi是正的權(quán)重。由此產(chǎn)生的函數(shù)稱為保序回歸。
它可被視為順序限制約束的最小二乘問題?;旧媳P蚧貧w是最適合原始數(shù)據(jù)點(diǎn)的單調(diào)函數(shù)。
我們實(shí)現(xiàn)了一個(gè)pool adjacent violators algorithm
算法,該算法使用一種并行化保序回歸的方法。
訓(xùn)練輸入是一個(gè)DataFrame,它包含三列 : 標(biāo)簽,功能和權(quán)重。
此外,IsotonicRegression算法有一個(gè)稱為等滲默認(rèn)為true的可選參數(shù)。該論證指定等滲回歸是等滲的(單調(diào)遞增的)還是反單調(diào)的(單調(diào)遞減的)。
訓(xùn)練返回IsotonicRegressionModel,可用于預(yù)測(cè)已知和未知特征的標(biāo)簽。
保序回歸的結(jié)果被視為分段線性函數(shù)。因此,預(yù)測(cè)規(guī)則是:
1 如果預(yù)測(cè)輸入與訓(xùn)練特征完全匹配,則返回相關(guān)聯(lián)的預(yù)測(cè)。如果有多個(gè)具有相同特征的預(yù)測(cè),則返回其中一個(gè)。哪一個(gè)是未定義的(與java.util.Arrays.binarySearch相同)
2 如果預(yù)測(cè)輸入低于或高于所有訓(xùn)練特征,則分別返回具有最低或最高特征的預(yù)測(cè)。
3 如果存在具有相同特征的多個(gè)預(yù)測(cè),則分別返回最低或最高。

  • 代碼


  • 計(jì)算結(jié)果,預(yù)測(cè)效果最為驚艷?。?!


Spark機(jī)器學(xué)習(xí)實(shí)踐系列

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容