機器學習cs229——(三)區域性加權迴歸、邏輯迴歸、感知器、牛頓方法、廣義線性模型
首先,我們先來討論一下欠擬合(underfitting)和過擬合(overfitting)問題。比如我們同樣採用線性迴歸來對一組房屋價格和房屋大小的資料進行擬合,第一種情況下我們只選取一個數據特徵(比如房屋大小 x)採用直線進行擬合。第二種情況下選取兩個資料特徵(比如房屋大小 x ,以及房屋大小的平方 )採用二次函式擬合。第三種情況由於只有七個資料樣本所以最多隻能選取六個資料特徵(x、... )進行最高6次多項式的擬合。擬合效果如下圖:
如圖1所示,由於選取的特徵太少,使得資料偏離曲線較遠,擬合的效果並不能很好的體現資料的變化趨勢,我們稱之為欠擬合。而如圖3所示,另一種情況下由於選取的特徵過多
引數學習演算法(Parametric learning algorithm)
是指一類有固定數量的引數以進行資料擬合的演算法。
非引數學習演算法(Non-parametric learning algorithm)
是指引數數量會隨著訓練集合的大小線性增長的演算法。即演算法的每次執行是基於整個訓練集合的,即使在訓練學習之後。區域性加權迴歸就是一個非引數學習演算法。
區域性加權迴歸(Locally weighted regression)
由於歷史原因,也被稱為 Loess/lowess 。這個演算法可以讓我們不用擔心特徵的選擇。演算法的模型不是固定的,且引數大小不是固定的,而是根據訓練樣本點與預測點的距離建立起臨時模型。每次預測都需要重新計算一組引數值並建立新的臨時模型,因此計算代價很大,不適合大規模的資料集。
例如,對下圖的資料集做區域性加權線性迴歸:
對於區域性加權線性迴歸,我們為每一個樣本資料的預測損失新增一個權值,然後對加權後的損失值求和得到樣本集合總的預測代價。然後調整引數向量 使得代價最小:
即最小化下式
其中, 表示訓練集合中第 i 個數據在擬合過程中所佔的權值,即貢獻度。定義如下:
其中
觀察權值函式形式易得,樣本資料越靠近待預測點權值越大(接近於1),相反樣本資料越遠離待預測點權值越小(接近於0),相當於在待預測點鄰域內構成區域性線性迴歸。如下圖
需要注意,區域性加權迴歸並不能避免欠擬合和過擬合的問題,關鍵就在於設定的波長引數是否合適。
對於線性迴歸演算法,一旦擬合出適合訓練資料的引數向量,就儲存這些引數,對於之後的預測,不需要再使用原始訓練資料集,所以是引數學習演算法。
對於區域性加權線性迴歸演算法,每次進行預測都需要全部的訓練資料(每次進行的預測得到不同的引數向量),沒有固定的引數,所以是非引數演算法。
線性迴歸的概率解釋
利用高斯概率分佈(即正態分佈)進行推導,最終可以得出線性迴歸代價函式採用最小二乘形式的原因。
假設:
其中, 為誤差項,它是對未利用的其他特徵的補充(比如房子有沒有花園、壁爐之類的特徵)或者將其看成隨機噪聲(比如賣家當天的心情等),總之誤差項捕獲了未建模的效應。
假設誤差項服從正態分佈: 即:
這意味著在給定樣本特徵 x 和引數 時房價也服從高斯分佈,其概率密度函式:
即給定樣本值和引數
再假設 之間滿足獨立同分布
則引數 的極大似然函式為:
對數似然函式:
最大化似然函式,相當於最小化
其中 為常數,因此可忽略,即最小化
分類
之前介紹過的迴歸演算法中,我們預測的連續變數,其取值可以是任意的。分類演算法中,我們預測的變數 y 是離散的,一般情況下限定 y 只能取給定的幾個值。
這裡我們先來介紹二分類問題
由此我們需要假設一個預測函式
多數情況下,我們會選擇利用Sigmoid函式將 對映到[0,1]區間上。Sigmoid函式也稱作logistic函式,形式如下:
函式圖形為
於是
預測時,當小於等於0.5時,結果是0,如果大於0.5時,結果是1。
下面進行概率意義上的解釋
假設:
對於給定的以 為引數的 , y=1 的概率為:
對於給定的以 為引數的 , y=0 的概率為:
合併以上兩式:
然後利用最大似然估計來求引數 。所謂最大似然估計:利用已知的樣本結果,反推最有可能(最大概率)導致這樣結果的引數值。
引數的似然性:
通常來講,使引數的似然性最大化很難。但是使引數似然性的對數最大化要相對簡單,並且對數能夠保證樣本原來的單調性。於是求似然性對數:
對於線性迴歸問題當中我們使用梯度下降(減去梯度的倍)演算法最小化代價函式,這裡我們可以使用梯度上升(加上梯度的倍)演算法來最大化似然函式。引數 通過下式更新:
其中經過簡單計算可知
所以推得
形式上類似於上一篇中最小二乘迴歸的梯度下降解法(https://mp.csdn.net/postedit/83015509)。但其實二者並不相同,因為兩個式子中的的定義不同。這裡的函式並不是之前的線性函式,而是關於 的logistic函式。
感知器
不同於邏輯迴歸,感知器演算法的分類規則為:
g(z)=
於是預測函式定義為:
經過與邏輯迴歸部分相同的推導步驟,可得引數的批梯度更新公式:
由於其生成的值只有0和1,所以很難賦予其概率意義上的解釋。
牛頓方法
牛頓方法對於邏輯迴歸效果很好,對廣義線性模型來說效果也不錯。
問題:給定一個函式 f() ,找到其零點。
如上圖所示,首先我們用某個值(通常為0)初始化 ,記做 。然後求出該點的切線,與橫軸交於一點,記做 ,即完成一次迭代。然後按照同樣的方法求出 處的切線,與橫軸交於 點,完成第二次迭代。以此類推,最終將逼近函式零點。
根據斜率求:
然後計算下個次迭代的切點:
易推得 迭代公式:
比如我們想要使得對數似然函式 取得最大值,可以令其導數等於0(log函式單調),即 。
於是可得迭代公式為:
牛頓方法是一個收斂速度非常快的演算法,其收斂速度為二次收斂。在一般化的牛頓方法中, 是一個向量,迭代公式為:
其中 ,H 是Hession矩陣
與梯度上升演算法比起來,牛頓方法所需要的迭代次數要少得多。但其缺點是,每一次迭代都需要重新計算 Hession 矩陣的逆。Hession 矩陣是一個 n*n 的矩陣,n 為特徵的數量,因此如果要處理具有大量特徵的問題,矩陣的逆運算會消耗大量的計算資源。所以牛頓方法只適用於特徵較少的問題。
廣義線性模型(Generalized Linear Model)
前面我們介紹了兩種演算法對 進行建模:
當 ,我們假設 y 滿足Gaussion分佈 基於最小二乘法的線性迴歸
當 ,只有兩個取值的隨機變數滿足Bernoulli分佈 logistic迴歸
事實上,這兩種演算法都屬於廣義線性模型的特例。
伯努利分佈 Bernoulli() 即 P(y=1;)= 同理看高斯分佈
這兩類分佈都屬於指數分佈族的特例。
如果一個概率分佈可以寫成下面的形式
則稱為指數分佈族。
其中,被稱為分佈的自然引數。T(y) 被稱為充分統計量(對於未知引數的估計問題,保留了原始樣本中關於未知引數θ的全部資訊的統計量,就是充分統計量。通常T(y)=y )
只要我們固定了a、b 和 T 三個函式,指數分佈族的公式就定義了一個以 為引數(通常為標量)的概率分佈的集合(即定義了一類概率分佈,對於固定的a、b 和 T,只要改變 就可以得到一個不同的概率分佈)。 例如:
對於伯努利分佈
即 , , ,
由 推得
將 代入 可得
對於高斯分佈
,由於 對引數無影響,這裡將其設定為 ,推導可得
即 , ,,
實際上大部分常見的概率分佈都可以寫成指數分佈族的形式,比如高斯分佈、多元正態分佈、伯努利分佈(2個結果的事件)、多項式分佈(k個結果的事件)、泊松分佈(對計數過程進行建模,如網站的訪客數量、商店的顧客數量)、伽馬分佈和指數分佈(這兩種考慮的是正數的分佈,常用來對時間間隔進行建模,比如公車站下一輛車什麼時候到)、分佈和Dirichlet分佈(這兩種是用來對小數進行建模的,是對概率分佈進行建模的概率分佈)、Wishart分佈(協方差矩陣的分佈)等等都可以寫成指數分佈族的形式。
下面考慮選定了指數分佈族,怎麼用它來推匯出一個廣義線性模型?
1、假設 屬於以為引數的指數分佈族。我們可以選取 a、b、T 使得 y 在給定的以 為引數的 x 下的概率分佈屬於以為引數的指數分佈族(即根據問題選定概率分佈模型並推導其指數分佈族)。
2、假設引數 與輸入特徵之間的關係是線性的,即
3、計算 T(y) 在給定 x 下的期望作為該指數分佈族的廣義線性模型 ,即 。
例如對於伯努利分佈
剛好得到的是邏輯迴歸模型。
介紹兩個術語: 稱作正則響應函式, 稱為正則關聯函式
廣義線性模型中最複雜的例子是多項式分佈(多分類問題)
假設一共有 k 類,概率分別為 、、 、 即
由於 ,可以推得
因此以 、、 、 作為引數對於多項式分佈來說其實是冗餘的,結果被過度引數化了。所以我們將多項式分佈的引數設為: 、、 、 。以下推導過程中出現的 不看作單獨的引數,而是代表
y有k個可能的取值:
T(y)定義為:
, , , ,
定義T(y)是為了將多項式分佈寫成指數分佈族的形式。這裡我們引入一個新的符號叫做指示函式符號,記做 , 。該符號用來指示括號中命題的真假 ,例如 。
是 k=1維向量,所以 表示第 個元素,容易得到
將多項式分佈寫成指數分佈族的形式:
其中,
根據上式推得
於是推匯出學習演算法
相關推薦
機器學習cs229——(三)區域性加權迴歸、邏輯迴歸、感知器、牛頓方法、廣義線性模型
首先,我們先來討論一下欠擬合(underfitting)和過擬合(overfitting)問題。比如我們同樣採用線性迴歸來對一組房屋價格和房屋大小的資料進行擬合,第一種情況下我們只選取一個數據特徵(比如房屋大小 x)採用直線進行擬合。第二種情況下選取兩個資料特徵(比如房屋大
python機器學習實戰(三)
方法 baidu classes getter 全部 ken array數組 app 產生 python機器學習實戰(三) 版權聲明:本文為博主原創文章,轉載請指明轉載地址 www.cnblogs.com/fydeblog/p/7277205.html 前言 這篇博客是
機器學習實戰(三)樸素貝葉斯NB(Naive Bayes)
目錄 0. 前言 1. 條件概率 2. 樸素貝葉斯(Naive Bayes) 3. 樸素貝葉斯應用於文字分類 4. 實戰案例 4.1. 垃圾郵件分類案例 學習完機器學習實戰的樸素貝葉斯,簡單的做個筆記。文中
機器學習實踐(三)—sklearn之特徵工程
一、特徵工程介紹 1. 為什麼需要特徵工程 Andrew Ng : “Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learnin
機器學習筆記(三)Logistic迴歸模型
Logistic迴歸模型 1. 模型簡介: 線性迴歸往往並不能很好地解決分類問題,所以我們引出Logistic迴歸演算法,演算法的輸出值或者說預測值一直介於0和1,雖然演算法的名字有“迴歸”二字,但實際上Logistic迴歸是一種分類演算法(classification y = 0 or 1)。 Log
機器學習筆記(三):線性迴歸大解剖(原理部分)
進入機器學習,線性迴歸自然就是一道開胃菜。雖說簡單,但對於入門來說還是有些難度的。程式碼部分見下一篇,程式碼對於程式設計師還是能能夠幫助理解那些公式的。 (本文用的一些課件來自唐宇迪的機器學習,大家可以取網易雲課堂看他的視訊,很棒) 1.線性迴歸的一些要點 先說
機器學習筆記(三):線性迴歸大解剖(程式碼部分)
這裡,讓我手把手教你如何用邏輯迴歸分析資料 根據學生分數預測是否錄取: #必備3個庫 import numpy as np import pandas as pd import matplotlib.pyplot as plt 讓我們讀入資料: import
機器學習筆記(三) 第三章 線性模型
3.1 基本形式 樣本x由d個屬性描述 x= (x1; x2;…; xd), 線性模型試圖學得一個通過屬性的線性組合來進行預測的函式: 向量形式: w和b學得之後,模型就得以確定. 3.2 線性迴歸 線性迴歸試圖學得 為確定w,b,學習到泛化效能最好的模型
機器學習筆記(三):決策樹
決策樹(decision tree)是機器學習中最常見的方法之一,本文主要對決策樹的定義,生成與修剪以及經典的決策樹生成演算法進行簡要介紹。目錄如下 一、什麼是決策樹 二、決策樹的生成 三、決策樹的修剪 四、一些經典的決策樹生成演算法 一、什麼是決策樹 顧名
NG機器學習總結-(三)線性迴歸以及python實現
在前面已經簡單介紹了迴歸問題(預測房價),其實在統計學中,線性迴歸(Linear Regression)是利用被稱為線性迴歸方程的最小平方函式(Cost Function)對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析。這種函式式一個或多個被稱為迴歸係數的模型引數的
機器學習總結(三):SVM支援向量機(面試必考)
基本思想:試圖尋找一個超平面來對樣本分割,把樣本中的正例和反例用超平面分開,並儘可能的使正例和反例之間的間隔最大。 演算法推導過程: (1)代價函式:假設正類樣本y =wTx+ b>=+1,負
機器學習筆記(三)——Logistic Regression 的原理以及程式碼實現
假設現在有一些資料點,我們用一條直線對這些點進行擬合(該線稱為最佳擬合直線),這個擬合過程就稱作迴歸。利用Logistic 迴歸進行分類的主要思想是:根據現有資料對分類邊界線建立迴歸公式,以此進行分類。這裡的“ 迴歸“一詞源於最佳擬合,表示要找到最佳擬合引數集
機器學習演算法(三)——樸素貝葉斯演算法及R語言實現方法
樸素貝葉斯演算法也是一種常用的分類演算法,尤其在對文字文件分類的學習任務中,樸素貝葉斯分類是最有效的演算法之一。所謂的樸素,即假設在給定目標值時屬性值之間相互條件獨立,雖然這一假設看似不合理,但其最終的分類效果卻普遍較好。 一、概述 1、貝葉斯公式 2、最大後驗假設(MA
機器學習筆記(三)——正則化最小二乘法
一. 模型的泛化與過擬合 在上一節中,我們的預測函式為: f(x;ω)=ωTx 其中, x=[x1],ω=[ω1ω0] 上述稱為線性模型,我們也可以將x擴充套件為: x=⎡⎣⎢⎢⎢⎢⎢⎢⎢xn⋮x2x1⎤⎦⎥⎥⎥⎥⎥⎥⎥,ω=⎡⎣⎢⎢⎢⎢⎢⎢⎢ωn⋮
機器學習實戰(三)——NaiveBayes樸素貝葉斯演算法郵件分類
樸素貝葉斯分類的原理是條件概率的計算: 在已知先驗概率的條件下,計算後驗概率,後驗概率即是在當前資料條件下屬於分類1或者分類2 的概率,取概率較大的一個為輸出。 貝葉斯準則很熟悉了,不解釋了,但在這個演算法中引入了一個很重要的思想:將文字等資料物件轉化為向量
斯坦福大學公開課機器學習課程(Andrew Ng)四牛頓方法與廣義線性模型
本次課所講主要內容: 1、 牛頓方法:對Logistic模型進行擬合 2、 指數分佈族 3、 廣義線性模型(GLM):聯絡Logistic迴歸和最小二乘模型 一、牛頓方法 牛頓方法與梯度下降法的功能一樣,都是對解空間進行搜尋的方法。 假設有函
機器學習基礎(三十) —— 線性迴歸、正則化(regularized)線性迴歸、區域性加權線性迴歸(LWLR)
1. 線性迴歸 線性迴歸根據最小二乘法直接給出權值向量的解析解(closed-form solution): w=(XTX)−1XTy 線性迴歸的一個問題就是有可能出現欠擬合現象,因為它求的是具有最小均方誤差(LSE,Least Square Erro
機器學習經典演算法(三)--指數加權平均
機器學習經典演算法(三)–指數加權平均 指數加權平均(Exponentially Weighted Averages)是一些改進梯度下降法重要理論,如上篇博文梯度下降法(2)提到的動量梯度下降法,RMSprop、Adam等都用到了
機器學習(六)——區域性加權線性迴歸(Locally weighted linear regression)
考慮從x∈R中預測y的問題。下面最左邊的圖顯示了將擬合到資料集的結果。我們看到資料並不是直線上的,所以擬合不是很好。取代原來的方法,如果我們加上一個額外的特徵 x2x2,並用 y=θ0+θ1x+θ2x2y=θ0+θ1x+θ2x2 來擬合數據,你會發現效果稍微好了那麼一點(看中
《自己動手寫java虛擬機器》學習筆記(三)-----搜尋class檔案(go)
專案地址:https://github.com/gongxianshengjiadexiaohuihui 我們都知道,.java檔案編譯後會形成.class檔案,然後class檔案會被載入到虛擬機器中,被我們使用,那麼虛擬機器如何從那裡尋找這些class檔案呢,jav