基於Spark的機器學習實踐 (七) - 迴歸算法

0 相關源碼

1 迴歸分析概述

1.1 迴歸分析介紹

◆ 迴歸與分類相似,只不過迴歸的預測結果是連續的,而分類的預測結果是離散php

◆ 如此,使得不少迴歸與分類的模型能夠通過改動而通用html

◆ 所以對於迴歸和分類中基本原理相同或相似的模型 ,再也不贅述java

1.2 Spark中集成的迴歸算法

◆ Spark實現的迴歸算法很豐富 ,有不少模型一樣能夠用於分類git

1.3 迴歸與分類的區別與聯繫

2 線性迴歸算法概述

2.1 線性迴歸簡介

◆ 在迴歸分析中,自變量與因變量之間知足或基本知足線性關係,可使用線性模型進行擬合github

◆ 如迴歸分析中,只有一個自變量的即爲一元線性迴歸,其自變量與因變量之間的關係能夠用一條直線近似表示算法

◆ 同理,對於多變量的迴歸稱爲多元線性迴歸,其能夠用一個平面或超平面來表示apache

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

◆ 自變量與因變量之間具備線性趨勢,在前面介紹過相關係數機器學習

◆ 獨立性 因變量之間取值相互獨立,不存在關聯函數

2.3 線性迴歸的例子

◆ 例如探究沸點與氣壓的關係,研究浮力與表面積之間的關係,物理上經典的探索力與加速度之間的關係學習

3 線性迴歸算法原理

3.1 回顧機器學習模型

◆ 對於統計學習來說,機器學習模型就是一個函數表達式,其訓練過程就是在不斷更新這個函數式的參數,以便這個函數可以對未知數據產生最好的預測效果

◆ 機器學習的這個過程,與人的學習過程原理是同樣的,都是先學習然後使用,故歸屬於人工智能領域

3.2 何爲好的預測效果?

◆ 前面說"以便達到最好的預測效果」, 那麼如何量化"好的預測效果」呢?

◆ 衡量預測效果好壞的函數稱爲代價函數(cost function) ,或損失函數(loss function).

◆ 例如:用一個模型預測是否會下雨,若是模型預測錯誤一天,則損失函數加1 那麼機器學習算法的直接目標就是千方百計調節這個函數的參數 以便可以使預測錯誤的天數減小,也就是下降損失函數值,同時,也提升了預測的準確率

3.3 再談線性迴歸

◆ 線性迴歸是最簡單的數學模型之一

◆ 線性迴歸的步驟是先用既有的數據,探索自變量X與因變量Y之間存在的關係 這個關係就是線性迴歸模型中的參數.有了它,咱們就能夠用這個模型對未知數據進行預測

◆ 機器學習的模型基本的訓練過程亦是如此,屬於監督學習

3.4 線性迴歸模型

◆ 線性迴歸的數學表達式是

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

4 最小二乘法

4.1 何爲最小二乘法

◆ 又稱最小平方法,經過最小化殘差平方和來找到最佳的函數匹配

◆ 即最小二乘法以殘差的平方和做爲損失函數,用於衡量模型的好壞

◆ 利用最小二乘法能夠實現對曲線的擬合

4.2 最小二乘法原理

◆ 以一元線性迴歸爲例,演示推倒過程

4.3 最小二乘法例子

5 隨機梯度降低

5.1 何爲隨機梯度降低

◆ 隨機梯度降低(SGD)是機器學習中經常使用的一種優化方法

◆ 它是經過不斷迭代更新的手段,來尋找某一個函數的全局最優解的方法

◆ 與最小二乘法相似,都是優化算法,隨機梯度降低特別適合變量衆多,受控系統複雜的模型,尤爲在深度學習中具備十分重要的做用

5.2 從梯度提及

◆ 梯度是微積分中的一個算子,用來求某函數在該點處沿着哪條路徑變化最快,通俗理解即爲在哪一個路徑上幾何形態更爲「陡峭」

◆ 其數學表達式爲(以二元函數爲例)

5.3 隨機梯度降低原理

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

5.4 隨機梯度降低優勢

◆ 隨機梯度降低的"隨機」體如今進行梯度計算的樣本是隨機抽取的n個,與直接採用所有樣本相比,這樣計算量更少

◆ 隨機梯度降低善於解決大量訓練樣本的狀況

學習率決定了梯度降低的速度,同時,在SGD的基礎上引入了」動量」的概念,從而進一步加速收斂速度的優化算法也陸續被提出

6 實戰Spark預測房價 - 項目展現及代碼概覽

  • 代碼

數據加載及轉換

  • 數據集文件 - Price降序排列

因爲訓練集有序,爲提升準確率,應打亂順序-shuffle

  • 預測結果

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

7.1 線性 VS 非線性

◆ 線性簡言之就是兩個變量之間存在一 次方函數關係

◆ 天然界中變 量間更多的關係是非線性的,絕對的線性關係相對不多

◆ 所以,在選擇數學模型進行擬合的時候,不少狀況使用非線性函數構造的模型可能比線性函數模型更好

7.2 邏輯迴歸

◆ 邏輯迴歸即logistic迴歸,是一種廣義上的線性迴歸,可是與線性迴歸模型不一樣的是,其引入了非線性函數

◆ 所以,邏輯迴歸能夠用於非線性關係的迴歸擬合,這一點是線性迴歸所不具有的

7.3 邏輯迴歸算法原理

Sigmoid函數

邏輯函數(英語:logistic function)或邏輯曲線(英語:logistic curve)是一種常見的S函數,它是皮埃爾·弗朗索瓦·韋呂勒在1844或1845年在研究它與人口增加的關係時命名的。

  • 一個簡單的Logistic函數可用下式表示:

廣義Logistic曲線能夠模仿一些狀況人口增加(P)的S形曲線。起初階段大體是指數增加;而後隨着開始變得飽和,增長變慢;最後,達到成熟時增長中止。

  • 標準Logistic函數

邏輯迴歸原理

◆ 改進線性迴歸模型

8 正則化原理

8.1 模型是訓練得越多越好嗎?

◆ 咱們一般理解是「千錘百煉」確定質量過硬,而機器學習是同樣的嗎?

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

◆ 人學習太過容易不懂得變通,過於教條,變成所謂的」書呆子」 機器學習也是同樣

◆ 咱們把機器學習模型訓練得太過 ,陷入「教條」的狀態稱之爲過擬合(over fitting)

◆ 反之,預測能力不強,宛若「智障」的模型稱之爲欠擬合(under fitting)

◆ 下面分別演示了用三個不一樣的數學模型對樣本點進行擬合,產生的三種狀態

8.3 如何達到剛恰好呢?

◆ 對於欠擬合狀態,只須要加大訓練輪次,增長特徵量,使用非線性模型等便可實現

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

◆ 經常使用的減小過擬合的方法有交叉驗證法,正則化方法等

8.3.1 交叉驗證法

◆ 所謂交叉驗證法,就是在訓練過程當中,將訓練數據集拆分爲訓練集驗證集兩個部分

  • 訓練集專用訓練模型
  • 驗證集只爲檢驗模型預測能力

當兩者同時達到最優,便是模型最優的時候

8.4 正則化原理

◆ 咱們在前面的示例中能夠看到,對於過擬合現象,每每都是模型過於複雜,超過實際須要

◆ 那麼,可否在損失函數的計算中,對模型的複雜程度進行量化,越複雜的模型,就越對其進行」懲罰」, 以便使模型更加」中庸」

◆ 上面的思路就是正則化的思想,經過動態調節懲罰程度, 來防止模型過於複雜

◆ 令損失函數爲

◆ 則通過優化的參數爲

◆ 其中

爲正則化項,反應了模型的複雜程度,在不一樣算法中有差別,例如能夠爲

9實戰Spark邏輯迴歸

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

  • 邏輯迴歸算法

  • 分類結果(由於分類,因此都是顯示的都是1500)

10 保序迴歸算法概述

10.1 何爲保序迴歸?

◆ 保序迴歸是用於擬合非遞減數據(非遞增也同樣)的一種迴歸分析,同時,保序迴歸可以使得擬合以後的偏差最小化 保序迴歸(英文:Isotonic regression)在數值分析中指的是在保序約束下搜索一個加權 w 的最小二乘 y 以擬合變量 x,它是一個二次規劃問題:

保序迴歸應用於統計推理多維標度等研究中。

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

10.2 保序迴歸的應用

◆ 保序迴歸用於擬合非遞減數據 ,不須要事先判斷線性與否,只需數據整體的趨勢是非遞減的便可 例如研究某種藥物的使用劑量與藥效之間的關係

11 保序迴歸算法原理

11.1 保序迴歸的原理

◆ 適用保序迴歸的前提應是結果數據的非遞減,那麼,咱們能夠經過判斷數據是否發生減小來來觸發計算

◆ 算法描述

◆ Spark實現求解該模型的算法是pool adjacent violators算法(PAVA)

◆ 例如原序列爲{1,3,2,4,6}通過保序迴歸爲{1,3,3,3,6}

12 實戰保序迴歸數據分析

保序迴歸屬於迴歸算法族。標準保序迴歸是一個問題,給定一組有限的實數Y = y1,y2,...,yn表示觀察到的響應,X = x1,x2,...,xn未知的響應值擬合找到一個函數最小化

相對於x1≤x2≤...≤xn的徹底順序,其中 wi是正的權重。由此產生的函數稱爲保序迴歸。 它可被視爲順序限制約束的最小二乘問題。基本上保序迴歸是最適合原始數據點的單調函數。 咱們實現了一個 pool adjacent violators algorithm 算法,該算法使用一種並行化保序迴歸的方法。 訓練輸入是一個DataFrame,它包含三列 : 標籤,功能和權重。 此外,IsotonicRegression算法有一個稱爲等滲默認爲true的可選參數。該論證指定等滲迴歸是等滲的(單調遞增的)仍是反單調的(單調遞減的)。 訓練返回 IsotonicRegressionModel,可用於預測已知和未知特徵的標籤。 保序迴歸的結果被視爲分段線性函數。所以,預測規則是: 1 若是預測輸入與訓練特徵徹底匹配,則返回相關聯的預測。若是有多個具備相同特徵的預測,則返回其中一個。哪個是未定義的(與java.util.Arrays.binarySearch相同) 2 若是預測輸入低於或高於全部訓練特徵,則分別返回具備最低或最高特徵的預測。 3 若是存在具備相同特徵的多個預測,則分別返回最低或最高。

  • 代碼
  • 計算結果,預測效果最爲驚豔!!!

Spark機器學習實踐系列

相關文章
相關標籤/搜索