1. 程式人生 > >機器學習:迴歸演算法

機器學習:迴歸演算法

監督學習指的是有目標變數或預測目標的機器學習方法。迴歸與分類的不同,就在於其目標變數是連續數值型。

線性迴歸

  • 原理

    迴歸的目的是預測數值型的目標值。最直接的辦法是依據輸入寫出一個目標值的計算公式,該公式就是所謂的迴歸方程(regression equation)。求迴歸方程中的迴歸係數的過程就是迴歸。
    線性迴歸(linear regression)意味著可以將輸入項分別乘以一些常量,再將結果加起來得到輸出。
    線性迴歸的一個問題是有可能出現欠擬合現象,因為它求的是具有最小均方誤差的無偏估計。為了降低預測的均方誤差,可以在估計中引入一些偏差,其中一個方法是區域性加權線性迴歸(Locally Weighted Linear Regression, LWLR)。如果資料的特徵比樣本點還多,也就是說輸入資料的矩陣X不是滿秩矩陣,非滿秩矩陣在求逆時會出現問題。為了解決這個問題,可以使用嶺迴歸(ridge regression)、lasso法、前向逐步迴歸。
    嶺迴歸:在矩陣X

    TX上加一個λI從而使得矩陣非奇異,進而能對XTX+λI求逆。其中矩陣I是一個m*m的單位矩陣,對角線上元素全為1,其他元素全為0。而λ是一個使用者定義的數值。在這種情況下,迴歸係數的計算公式將變成:

    w^=(XTX+λI)1XTy
    嶺迴歸最先用來處理特徵數多餘樣本數的情況,現在也用於在估計中加入偏差,從而得到更好的估計。這裡通過引入λ來限制了所有w之和,通過引入該懲罰項,能夠減少不重要的引數,這個技術在統計學中也叫做縮減(shrinkage)。
    一旦發現模型和測量值之間存在差異,就說出現了誤差。當考慮模型中的“噪聲”或者說誤差時,必須考慮其來源。訓練誤差和測試誤差由三個部分組成:偏差、測量誤差和隨機噪聲。
    方差是可以度量的。取出兩組隨機樣本集並擬合,得到兩組迴歸係數。兩組迴歸係數之間的差異大小就是模型方差大小的反映。
  • 如何應用

    收集資料:可以使用任何方法。
    準備資料:迴歸需要數值型資料,標稱型資料將被轉換成二值型資料。
    分析資料:繪出資料的視覺化二維圖將有助於對資料做出理解和分析,在採用縮減法求得新迴歸係數之後,可以將新擬合線繪在圖上作為對比。
    訓練演算法:找到迴歸係數。
    測試演算法:使用 R2 或者預測值和資料的擬合度,來分析模型的效果。
    使用演算法:使用迴歸,可以在給定輸入的時候預測出一個數值,這是對分類方法的提升,因為這樣可以預測連續型資料而不僅僅是離散的類別標籤。

  • 優缺點

    優點:結果容易理解,計算上不復雜。
    缺點:對非線性的資料擬合不好。
    適用資料範圍:數值型和標稱型。

  • 總結

    在迴歸方程裡,求得特徵對應的最佳迴歸係數的方法是最小化誤差的平方和。給定輸入矩陣X,如果XTX的逆存在並可以求得的話,迴歸法都可以直接使用。資料集上計算出的迴歸方程並不一定意味著它是最佳的,可以使用預測值yHat和原始值y的相關性來度量回歸方程的好壞。
    當資料的樣本數比特徵數還少時,矩陣XTX的逆不能直接計算。即便當樣本數比特徵數多時,XTX的逆仍有可能無法直接計算,這是因為特徵有可能高度相關。這時可以考慮使用嶺迴歸,因為當XTX的逆不能計算時,它仍保證能求得迴歸引數。
    嶺迴歸是縮減法的一種,相當於對迴歸係數的大小施加了限制。另一種很好的縮減法是lasso。Lasso難以求解,但可以使用計算簡便的逐步線性迴歸方法來求得近似結果。
    縮減法還可以看做是對一個模型增加偏差的同時減少方差。偏差方差折中是一個重要的概念,可以幫助我們理解現有模型並做出改進,從而得到更好的模型。

樹迴歸(CART)

  • 原理

    CART(Classification And Regression Trees,分類迴歸樹)
    迴歸樹:假設葉節點是常數值,這種策略認為資料中的複雜關係可以用樹結構來概括。為成功構建以分段常數為葉節點的樹,需要度量出資料的一致性。資料集的混亂度即平方誤差的總值(總方差=均方差*樣本個數)。
    模型樹:把葉節點設定為分段線性(piecewise linear)函式。
    通過降低決策樹的複雜度來避免過擬合的過程稱為剪枝(pruning)。

  • 如何應用

    收集資料:可以使用任何方法。
    準備資料:迴歸需要數值型資料,標稱型資料將被轉換成二值型資料。
    分析資料:繪出資料的視覺化二維圖,以字典方式生成樹。
    訓練演算法:大部分時間都花費在葉節點樹模型的構建上。
    測試演算法:使用測試資料上的R2值來分析模型的效果。
    使用演算法:使用訓練出的樹做預測,預測結果還可以用來做很多事情。

  • 優缺點

    優點:可以對複雜和非線性的資料建模。
    缺點:結果不易理解。
    適用資料範圍:數值型和標稱型。

  • 總結

    資料集中經常包含一些複雜的相互關係,使得輸入資料和目標變數之間呈現非線性關係。對這些複雜的關係建模,一種可行的方式是使用樹來對預測值分段,包括分段常數或分段直線。一般採用樹結構來對這種資料建模。相應地,若葉節點使用的模型是分段常數則稱為迴歸樹,若葉節點使用的模型是線性迴歸方程則稱為模型樹。
    CART演算法可以用於構建二元樹並處理離散型或連續型資料的切分。若使用不同的誤差準則,就可以通過CART演算法構建模型樹和迴歸樹。該演算法構建出的樹會傾向於對資料過擬合。一顆過擬合的樹常常十分複雜,剪枝技術的出現就是為了解決這個問題。兩種剪枝方法分別是預剪枝和後剪枝,預剪枝更有效但需要使用者定義一些引數。

相關推薦

機器學習迴歸演算法

監督學習指的是有目標變數或預測目標的機器學習方法。迴歸與分類的不同,就在於其目標變數是連續數值型。 線性迴歸 原理 迴歸的目的是預測數值型的目標值。最直接的辦法是依據輸入寫出一個目標值

機器學習--線性迴歸演算法預測房價

裡面非常詳細地介紹了微積分基本運演算法則、線性迴歸演算法、梯度下降演算法及改進。 a. 用線性迴歸方法擬合正弦函式 %matplotlib inline import matplotlib.pyplot as plt import numpy as np # 生成2

機器學習2-迴歸演算法

文章目錄 線性迴歸和梯度下降演算法 機器學習的基本問題 一元線性迴歸 預測函式 梯度下降法尋優 線性迴歸器 模型的轉儲與載入 嶺迴歸 Ridge R

機器學習-Logistic迴歸演算法學習筆記

假設現在有一些資料點,我們用一條直線(或者曲線)對這些點進行擬合,這個擬合過程就稱作迴歸。 利用Logistic迴歸進行分類的主要思想是:根據現有資料對分類邊界線建立迴歸公式,以此進行分類,訓練分類器時的做法就是尋找最佳擬合引數。 優點:計算代價不高,易於理解和實現。

機器學習sklearn演算法引數選擇--網格搜尋

機器學習中很多演算法的引數選擇是個比較繁瑣的問題,人工調參比較費時,好在sklearn給我們提供了網格搜尋引數的方法,其實就是類似暴力破解,先設定一些引數的取值,然後通過gridsearch,去尋找這些引數中表現的最好的引數。 我們依舊使用上一節的泰坦尼克號生存者預測資料集。同樣使用隨機森林演算

機器學習AdaBoost演算法及其實現

文章目錄 楔子 演算法描述: adaboost裡的樣本權重和話語權 演算法描述 AdaBoost的實現: 數學基礎(瞭解) 楔子 前面提到boosting演算法為一類演算法,這一類演算法框架分為3步

機器學習演算法小結(3)

將最近接觸的幾個機器學習演算法小結一下,順便理理自己的思路。 近年來在機器學習的研究中,對演算法的創新主要是在原有的基礎上,通過結合不同演算法的優點,得到一種更有效的演算法,如結合遺傳演算法的決策樹、

機器學習KNN演算法(MATLAB實現)

   K-近鄰演算法的思想如下:首先,計算新樣本與訓練樣本之間的距離,找到距離最近的K 個鄰居;然後,根據這些鄰居所屬的類別來判定新樣本的類別,如果它們都屬於同一個類別,那麼新樣本也屬於這個類;否則,對每個後選類別進行評分,按照某種規則確定新樣本的類別。(統計出現的頻率)

機器學習整合演算法

整合演算法往往被稱為三個臭皮匠,賽過一個諸葛亮,整合演算法的起源是來自與PAC中的強可學習和弱可學習,如果類別決策邊界可以被一個多項式表示,並且分類正確率高,那麼就是強學習的,如果分類正確率不高,僅僅只是比隨機猜測好一點,那麼就是弱可學習,後來有人證明強可學習和弱可學習是等價的,那麼弱可學習就可以提升為強可學

機器學習Python實現純程式碼邏輯迴歸演算法

之前寫了一篇邏輯迴歸的理論知識,寫得還算詳盡,包含了公式的詳細推導過程。這篇文章將結合之前的理論推導,通過Python程式碼實現邏輯迴歸演算法,並用來預測鳶尾花種類。由於這篇文章是對照著之前的理論文章進行講解的,所以最好先看前一篇理論文章,再看這篇實踐文章。理論的文章連結為:https://blog

機器學習決策樹cart演算法在分類與迴歸的應用(上)

#include #include #include #include #include #include #include #include #include #include #include using namespace std; //置信水平取0.95時的卡方表 const double CHI

機器學習K近鄰演算法,kd樹

https://www.cnblogs.com/eyeszjwang/articles/2429382.html kd樹詳解 https://blog.csdn.net/v_JULY_v/article/details/8203674 一、K-近鄰演算法(KNN)概述 

機器學習十大演算法2----logistics迴歸

補充: 風險極小化準則:由樣本的隨機性 故L(y,f(x,a))是r.v  故考慮期望R(a)=∫LdP(x,y) 模式識別:y∈{0,1}, L(y,f(x,a))=P(y!=f(x,a)) 迴歸估計:L(y,f(x,a))=(y-f(x,a))^2 密度估計:

機器學習線性迴歸、嶺迴歸、Lasso迴歸

 轉載自:https://blog.csdn.net/hzw19920329/article/details/77200475 線性迴歸作為一種迴歸分析技術,其分析的因變數屬於連續型變數,如果因變數轉變為離散型變數,將轉換為分類問題。迴歸分析屬於有監督學習問題,本部落格將重點回

機器學習評價迴歸模型

在sklearn中包含四種評價尺度,分別為mean_squared_error、mean_absolute_error、explained_variance_score 和 r2_score。 1、均方差(mean-squared-error) 2、平均絕對值誤差(mean_absol

機器學習線性迴歸和嶺迴歸入門程式碼

機器學習中運用python進行對房子價格的預測程式碼,資料庫直接使用sklearn自帶的boston,使用三種方法進行預測,分別是:線性迴歸直接預測、梯度下降預測、嶺迴歸預測 from sklearn.datasets import load_boston fr

吳恩達機器學習——邏輯迴歸和分類演算法

高效使用軟體 如下所示,是一個函式,這是一個求theta和x的積的和的公式,這個問題我們可以輕鬆地通過矩陣的方式解決。 將theta和x以如下形式表示,theta和x的矩陣的積就是這個函式的結果。 求解theta的值 進行邏輯分解: Th

機器學習邏輯迴歸詳細推導

如今機器學習、深度學習可謂炙手可熱,人工智慧也確實開始影響、改變著我們的生活。正因如此,很多同學開始接觸或者學習這方面的知識。機器學習的入門是有難度的,因為它不僅要求你會編碼,還要你熟悉高等數學,比如線性代數,微積分等,除此之外,還要懂統計學。如果你想入門機器學習,那麼一定要好好學習邏輯迴歸。原因如

機器學習決策樹及ID3,C4.5,CART演算法描述

文章目錄 概念理解 熵: 條件熵: 資訊增益,互資訊: 資訊增益比 基尼指數 ID3演算法描述 C4.5演算法描述 CART (Classification and Regression Tree

機器學習Regression,第一個簡單的示例,多項式迴歸

# -*- coding: utf-8 -*- # 匯入需要的庫 import numpy as np import matplotlib.pyplot as plt # 定義儲存輸入資料x,目標資料y x,y = [],[] # 遍歷資料集,並把資料按照順序存在對應的list #