机器学习(李航统计学习方法)
目錄
- 緒論-資料介紹
- 緒論-頻率派vs貝葉斯派
- 頻率派的觀點
- 貝葉斯派的觀點
- 監督學習與無監督學習
- 單變量線性回歸
- 模型表示
- 代價函數
- 梯度下降
- 多變量線性回歸
- 多維特征
- 多變量梯度下降
- 梯度下降法實踐 1-特征縮放
- 梯度下降法實踐 2-學習率
- 特征和多項式回歸
- 正規方程
- 邏輯回歸
- 分類問題
- 假說表示
- 判定邊界
- 代價函數
- 簡化的成本函數和梯度下降
- 高級優化
- 多類別分類:一對多
- 正則化
- 過擬合的問題
- 代價函數
- 正則化線性回歸
- 正則化的邏輯回歸模型
- 神經網絡
- 非線性假設
- 模型表示1
- 模型表示2
- 特征和直觀理解 1
- 特征和直觀理解 2
- 神經網絡的學習
- 代價函數
- 反向傳播算法
- 反向傳播算法的直觀理解
- 實現注意:展開參數
- 梯度檢驗
- 隨機初始化
- 綜合起來
- 應用機器學習的建議
- 評估一個假設
- 模型選擇和交叉驗證集
- 診斷偏差和方差
- 正則化和偏差/方差
- 學習曲線
- 決定下一步做什么
- 機器學習系統的設計
- 首先要做什么
- 誤差分析
- 類偏斜的誤差度量
- 查準率和查全率之間的權衡
- 機器學習的數據
- 統計學習及監督學習概論
- 交叉驗證
- 泛化能力
- 感知機
- 感知機模型
- 感知機學習策略
- 數據集的線性可分性
- 感知機學習策略
- 感知機學習算法
- 感知機學習算法的原始形式
- 感知機的對偶形式
- 本章概要
- 感知機代碼理解
- k近鄰法
- 1.1 k-近鄰法簡介
- 距離度量
- k近鄰算法
- k近鄰模型
- k近鄰法的實現:kd樹
- 本章概要
- 樸素貝葉斯法
- 樸素貝葉斯法的學習與分類
- 樸素貝葉斯法的參數估計
- 本章概要
- 決策樹
- 決策樹模型與學習
- 特征選擇
- 決策樹的生成
- 決策樹的剪枝
- CART算法
- 本章概要
- 邏輯斯諦回歸與最大熵模型
- 邏輯斯諦回歸模型
- 最大熵模型
- 模型學習的最優化算法
- 支持向量機
- 線性可分支持向量機與間隔最大化
- 線性支持向量機與軟間隔最大化
- 非線性支持向量機與核函數
- 序列最小最優化算法
- 本章概要
緒論-資料介紹
- 頻率派->統計機器學習
- 貝葉斯派->概率圖模型
書籍:統計學習方法,西瓜書,PRML,MLAPP,ESL,DeepLearning.
視頻:臺大的林軒田,基石,技法;張志華機器學習導論,統計機器學習;吳恩達cs229;徐亦達概率模型;臺大李宏毅ML2017,MLDS2018;
緒論-頻率派vs貝葉斯派
頻率派的觀點
∑:連加;∏:連乘;𝑃(A|𝐵):B條件下A的概率
MLE:極大似然估計
最大熵模型中的對數似然函數的解釋:最大熵模型中的對數似然函數的解釋
貝葉斯派的觀點
貝葉斯:概率圖模型,求積分
P(X|θ\thetaθ):似然;P(θ\thetaθ):先驗概率;P(θ\thetaθ|X):后驗概率
MAP:最大后驗概率估計
分母是積分所以是一個常量,所以整個值正比于分子
監督學習與無監督學習
監督學習:必須要有訓練集與測試樣本,在訓練集中找規律,而對測試樣本使用這種規律。
無監督學習:非監督學習沒有訓練集,只有一組數據,在該組數據集內尋找規律。
單變量線性回歸
模型表示
例子是預測住房價格的,我們要使用一個數據集,數據集包含俄勒岡州波特蘭市的住房價格。
一種可能的表達方式為:
因為只含有一個特征/輸入變量,因此這樣的問題叫作單變量線性回歸問題。
代價函數
代價函數 有助于我們弄清楚如何把最有可能的直線與我們的數據相擬合。
1.二維
模型所預測的值與訓練集中實際值之間的差距(下圖中藍線所指)就是建模誤差。
右圖便是代價函數
我們的目標便是選擇出可以使得建模誤差的平方和能夠最小的模型參數。 即使得代價
函數
最小。
2.三維
我們繪制一個等高線圖,三個坐標分別為𝜃0和𝜃1 和𝐽(𝜃0, 𝜃1):
右圖便是代價函數
梯度下降
能夠自動地找出能使代價函數𝐽 最小化的參數𝜃0和𝜃1的值。
批量梯度下降算法的公式為:
斜率越小,下降的越慢。斜率為0時,就不會下降。
多變量線性回歸
多維特征
例子:對房價模型增加更多的特征,例如房間數樓層等,構成一個含有多個變量的模型,模型中的特征為(𝑥1,𝑥1, . . . , 𝑥𝑛)。
公式可以簡化為:
多變量梯度下降
我們也構建一個代價函數,則這個代價函數是所有建模誤差的平方和,即:
其中:
梯度下降法實踐 1-特征縮放
面對多維特征問題的時候,我們要保證這些特征都具有相近的尺度,這將幫助梯度下降算法更快地收斂。
以房價問題為例,假設我們使用兩個特征,房屋的尺寸和房間的數量,尺寸的值為 0-2000 平方英尺,而房間數量的值則是 0-5,以兩個參數分別為橫縱坐標,繪制代價函數的等高線圖能,看出圖像會顯得很扁,梯度下降算法需要非常多次的迭代才能收斂。
解決的方法是嘗試將所有特征的尺度都盡量縮放到-1 到 1 之間。
梯度下降法實踐 2-學習率
梯度下降算法收斂所需要的迭代次數根據模型的不同而不同,我們不能提前預知,我們可以繪制迭代次數和代價函數的圖表來觀測算法在何時趨于收斂。
也有一些自動測試是否收斂的方法,例如將代價函數的變化值與某個閥值進行比較,但通??瓷厦孢@樣的圖表更好。
梯度下降算法的每次迭代受到學習率的影響,如果學習率𝑎過小,則達到收斂所需的迭代次數會非常高;如果學習率𝑎過大,每次迭代可能不會減小代價函數,可能會越過局部最小值導致無法收斂。 通??梢钥紤]嘗試些學習率: 𝛼 = 0.01,0.03,0.1,0.3,1,3,10。
特征和多項式回歸
如房價預測問題
線性回歸并不適用于所有數據,有時我們需要曲線來適應我們的數據,比如一個二次方或者三次方。
注:如果我們采用多項式回歸模型,在運行梯度下降算法前,特征縮放非常有必要。
正規方程
到目前為止,我們都在使用梯度下降算法,但是對于某些線性回歸問題,正規方程方法是更好的解決方案。如:
運用正規方程方法求解參數:
總結一下,只要特征變量的數目并不大,標準方程是一個很好的計算參數𝜃的替代方法。具體地說,只要特征變量數量小于一萬,我通常使用標準方程法,而不使用梯度下降法。
邏輯回歸
分類問題
預測的變量 y是離散的值,我們將學習一種叫做邏輯回歸算法。
二元的分類問題:將因變量可能屬于的兩個類分別稱為負向類和正向類,則因變量 y∈0,1,其中 0 表示負向類,1 表示正向類。
如果我們要用線性回歸算法來解決一個分類問題,對于分類, 𝑧 取值為 0 或者 1,但如果你使用的是線性回歸,那么假設函數的輸出值可能遠大于 1,或者遠小于 0,即使所有訓練樣本的標簽 𝑧 都等于 0 或 1。盡管我們知道標簽應該取值 0 或者 1,但是如果算法得到的值遠大于 1 或者遠小于 0 的話,就會感覺很奇怪。所以我們在接下來的要研究的算法就叫做邏輯回歸算法,這個算法的性質是:它的輸出值永遠在 0 到 1 之間。
順便說一下,邏輯回歸算法是分類算法,我們將它作為分類算法使用。有時候可能因為這個算法的名字中出現了“回歸”使你感到困惑,但邏輯回歸算法實際上是一種分類算法,它適用于標簽 y 取值離散的情況,如:1 0 0 1。
假說表示
分類問題中,要用什么樣的函數來表示我們的假設。此前我們說過,希望我們的分類器的輸出值在 0 和 1 之間,因此,我們希望想出一個滿足某個性質的假設函數,這個性質是它的預測值要在 0 和 1 之間。
根據線性回歸模型我們只能預測連續的值,然而對于分類問題,我們需要輸出 0 或 1,
我們可以預測:
可以看出,線性回歸模型,因為其預測的值可以超越[0,1]的范圍,并不適合解決這樣的問題。
我們引入一個新的模型,邏輯回歸,該模型的輸出變量范圍始終在 0 和 1 之間。 邏輯
回歸模型的假設是:
其中: X 代表特征向量 g 代表邏輯函數是一個常用的邏輯函數為 S 形函數,公式為:
該函數的圖像為:
例如,如果對于給定的𝑦,通過已經確定的參數計算得出? 𝜃 (x) = 0.7,則表示有 70%的幾率𝑧為正向類,相應地𝑧為負向類的幾率為 1-0.7=0.3。
判定邊界
現在講下決策邊界的概念。這個概念能更好地幫助我們理解邏輯回歸的假設函數在計算什么。
圓表達式:(x-a)2+(y-b)2=r2 。
代價函數
下面介紹如何擬合邏輯回歸模型的參數θ\thetaθ。具體來說,我要定義用來擬合代價函數,這便是監督學習問題中的邏輯回歸模型的擬合問題。
怎么選擇參數θ\thetaθ?
在得到這樣一個代價函數以后,我們便可以用梯度下降算法來求得能使代價函數最小的
參數了。算法為:
推導過程:
在下節中,我們會把單訓練樣本的代價函數的這些理念進一步發展,然后給出整個訓練集的代價函數的定義,我們還會找到一種比我們目前用的更簡單的寫法,基于這些推導出的結果,我們將應用梯度下降法得到我們的邏輯回歸算法。
簡化的成本函數和梯度下降
我們將會找出一種稍微簡單一點的方法來寫代價函數,來替換我們現在用的方法。同時我們還要弄清楚如何運用梯度下降法,來擬合出邏輯回歸的參數。因此看懂這節,你就應該知道如何實現一個完整的邏輯回歸算法。
所以我們想要盡量減小這一項,這將我們將得到某個參數θ\thetaθ。
如果我們給出一個新的樣本,假如某個特征 x,我們可以用擬合訓練樣本的參數θ\thetaθ,來
輸出對假設的預測。
另外,我們假設的輸出,實際上就是這個概率值:p(y = 1|x;θ\thetaθ),就是關于 x以θ\thetaθ為參
數,y = 1 的概率,你可以認為我們的假設就是估計 y = 1 的概率,所以,接下來就是弄清楚如何最大限度地最小化代價函數J(θ\thetaθ),作為一個關于θ\thetaθ的函數,這樣我們才能為訓練集擬合出參數θ\thetaθ。
最小化代價函數的方法,是使用梯度下降法。這是我們的代價函數:
如果我們要最小化這個關于θ\thetaθ的函數值,這就是我們通常用的梯度下降法的模板。
現在,如果你把這個更新規則和我們之前用在線性回歸上的進行比較的話,你會驚訝地
發現,這個式子正是我們用來做線性回歸梯度下降的。
那么,線性回歸和邏輯回歸是同一個算法嗎?要回答這個問題,我們要觀察邏輯回歸看
看發生了哪些變化。實際上,假設的定義發生了變化。
對于線性回歸假設函數:
因此,即使更新參數的規則看起來基本相同,但由于假設的定義發生了變化,所以邏輯函數的梯度下降,跟線性回歸的梯度下降實際上是兩個完全不同的東西。
當我們在談論線性回歸的梯度下降法時,我們談到了如何監控梯度下降法以確保其收斂,我通常也把同樣的方法用在邏輯回歸中,來監測梯度下降,以確保它正常收斂。
因此,即使更新參數的規則看起來基本相同,但由于假設的定義發生了變化,所以邏輯函數的梯度下降,跟線性回歸的梯度下降實際上是兩個完全不同的東西。
當我們在談論線性回歸的梯度下降法時,我們談到了如何監控梯度下降法以確保其收斂,我通常也把同樣的方法用在邏輯回歸中,來監測梯度下降,以確保它正常收斂。
當使用梯度下降法來實現邏輯回歸時,我們有這些不同的參數θ\thetaθ,就是θ\thetaθ 0 θ\thetaθ 1 θ\thetaθ 2 一直到θ\thetaθ n ,我們需要用這個表達式來更新這些參數。我們還可以使用 for 循環來更新這些參數值,用 for i=1 to n ,或者 for i=1 to n+1 。當然,不用 for 循環也是可以的,理想情況下,我們更提倡使用向量化的實現,可以把所有這些 n 個參數同時更新。
最后還有一點,我們之前在談線性回歸時講到的特征縮放,我們看到了特征縮放是如何提高梯度下降的收斂速度的,這個特征縮放的方法,也適用于邏輯回歸。如果你的特征范圍差距很大的話,那么應用特征縮放的方法,同樣也可以讓邏輯回歸中,梯度下降收斂更快。
就是這樣,現在你知道如何實現邏輯回歸,這是一種非常強大,甚至可能世界上使用最廣泛的一種分類算法。
高級優化
在上節中,我們討論了用梯度下降的方法最小化邏輯回歸中代價函數J(θ\thetaθ)。在本節中,學一些高級優化算法和一些高級的優化概念,利用這些方法,我們就能夠使通過梯度下降,進行邏輯回歸的速度大大提高,而這也將使算法更加適合解決大型的機器學習問題,比如,我們有數目龐大的特征量。
現在我們換個角度來看什么是梯度下降,我們有個代價函數J(θ\thetaθ),而我們想要使其最小化,那么我們需要做的是編寫代碼,當輸入參數 θ\thetaθ時,它們會計算出兩樣東西:J(θ\thetaθ) 以及J 等于 0、1 直到 n 時的偏導數項。
假設我們已經完成了可以實現這兩件事的代碼,那么梯度下降所做的就是反復執行這些更新。
另一種考慮梯度下降的思路是:我們需要寫出代碼來計算J(θ\thetaθ) 和這些偏導數,然后把這些插入到梯度下降中,然后它就可以為我們最小化這個函數。
法) 就是其中一些更高級的優化算法,它們需要有一種方法來計算 J(θ\thetaθ),以及需要一種方法計算導數項,然后使用比梯度下降更復雜的算法來最小化代價函數。
多類別分類:一對多
在本節視頻中,我們將談到如何使用邏輯回歸 來解決多類別分類問題,通過一個叫做"一對多" 的分類算法。
先看這樣一些例子。
第一個例子:假如說你現在需要一個學習算法能自動地將郵件歸類到不同的文件夾里,我們就有了這樣一個分類問題:其類別有四個,分別用𝑧 = 1、𝑧 = 2、𝑧 = 3、𝑧 = 4 來代表。
第二個例子是有關藥物診斷的,如果一個病人因為鼻塞來到你的診所,他可能并沒有生病,用 𝑧 = 1 這個類別來代表;或者患了感冒,用 𝑧 = 2 來代表;或者得了流感用𝑧 = 3來代表。
第三個例子:如果你正在做有關天氣的機器學習分類問題,那么你可能想要區分哪些天是晴天、多云、雨天、或者下雪天,對上述所有的例子,𝑧 可以取一個很小的值,一個相對"謹慎"的數值,比如 1 到 3、1 到 4 或者其它數值,以上說的都是多類分類問題.
對于一個多類分類問題,我們的數據集或許看起來像這樣:
我用 3 種不同的符號來代表 3 個類別,問題就是給出 3 個類型的數據集,我們如何得到一個學習算法來進行分類呢?
使用"一對余"方法。
我們先從用三角形代表的類別 1 開始,實際上我們可以創建一個,新的"偽"訓練集,類型 2 和類型 3 定為負類,類型 1 設定為正類,我們創建一個新的訓練集,如下圖所示的那樣,我們要擬合出一個合適的分類器。
正則化
正則化的目的角度:正則化是為了防止過擬合
過擬合的問題
過擬合:看第一張圖最右邊就懂了。
我們學過的算法能夠有效地解決許多問題,但是當將它們應用到某些特定的機器學習應用時,會遇到過擬合的問題,可能會導致它們效果很差。正則化的技術,它可以改善或者減少過度擬合問題。如果我們有非常多的特征,我們通過學習得到的假設可能能夠非常好地適應訓練集(代價函數可能幾乎為 0),但是可能會不能推廣到新的數據。
下圖是一個回歸問題的例子:
- 第一個模型是一個線性模型,欠擬合,不能很好地適應我們的訓練集;
- 第三個模型是一個四次方的模型,過于強調擬合原始數據,而丟失了算法的本質:預測新數據。我們可以看
出,若給出一個新的值使之預測,它將表現的很差,是過擬合,雖然能非常好地適應我們的訓練集但在新輸入變量進行預測時可能會效果不好; - 中間的模型似乎最合適
如果我們發現了過擬合問題,應該如何處理?
1.丟棄一些不能幫助我們正確預測的特征??梢允鞘止みx擇保留哪些特征,或者使用一些模型選擇的算法來幫忙
2.正則化。 保留所有的特征,但是減少參數的大小。
代價函數
正則化線性回歸
正則化的邏輯回歸模型
下降法來優化代價函數J(θ\thetaθ),接下來學習了更高級的優化算法,這些高級優化算法需要自己設計代價函數J(θ\thetaθ)。
神經網絡
非線性假設
無論是線性回歸還是邏輯回歸都有這樣一個缺點,即:當特征太多時,計算的負荷會非常大。
模型表示1
模型表示2
特征和直觀理解 1
特征和直觀理解 2
神經網絡的學習
代價函數
反向傳播算法
反向傳播算法的直觀理解
實現注意:展開參數
上節我們談到了怎樣使用反向傳播算法計算代價函數的導數。在這節中,介紹一個細節的實現過程,怎樣把參數從矩陣展開成向量,以便我們在高級最優化步驟中的使用需要。
梯度檢驗
隨機初始化
任何優化算法都需要一些初始的參數。到目前為止我們都是初始所有參數為 0,這樣的初始方法對于邏輯回歸來說是可行的,但是對于神經網絡來說是不可行的。
如果我們令所有的初始參數都為 0,這將意味著我們第二層的所有激活單元都會有相同的值。同理,如果我們初始所有的參數都為一個非 0 的數,結果也是一樣的。
綜合起來
應用機器學習的建議
評估一個假設
本節用學過的算法來評估假設函數。
模型選擇和交叉驗證集
診斷偏差和方差
正則化和偏差/方差
學習曲線
決定下一步做什么
機器學習系統的設計
首先要做什么
誤差分析
誤差分析可以幫助我們系統化地選擇該做什么。
類偏斜的誤差度量
查準率和查全率之間的權衡
機器學習的數據
因為這可以證明 y可以根據特征值x被準確地預測出來。其次,我們實際上能得到一組龐大的訓練集,并且在這個訓練集中訓練一個有很多參數的學習算法嗎?如果你不能做到這兩者,那么更多時候,你會得到一個性能很好的學習算法。
統計學習及監督學習概論
交叉驗證
泛化能力
泛化能力是指機器學習算法對新鮮樣本的適應能力。 學習的目的是學到隱含在數據背后的規律,對具有同一規律的學習集以外的數據,經過訓練的網絡也能給出合適的輸出,該能力稱為泛化能力。
感知機
感知機模型
偏置:在這里相當于截距。
感知機學習策略
數據集的線性可分性
感知機學習策略
什么是范數?
任一點到超平面的距離的公式推導?
感知機學習算法
感知機學習算法的原始形式
倒三角數學符號:表示對函數在各個正交方向上求導數以后再分別乘上各個方向上的單位向量;直接作用函數表示梯度,點乘函數(矢量)表示散度,叉乘函數(矢量)表旋度。
sign(x)或者Sign(x)叫做符號函數,在數學和計算機運算中,其功能是取某個數的符號(正或負):
當x>0,sign(x)=1;
當x=0,sign(x)=0;
當x<0, sign(x)=-1;
(1)(2)都是隨機的;
更新w,b使用了上圖的算法;
第一個是損失函數,目的為了求出損失函數最小的解;
感知機的對偶形式
對偶形式的目的是降低每次迭代的運算量,但是并不是在任何情況下都能降低運算量,而是在特征空間的維度遠大于數據集大小時才起作用。
本章概要
感知機代碼理解
matplotlib.pyplot使用簡介
numpy 是什么?
k近鄰法
1.1 k-近鄰法簡介
k近鄰法是一種基本分類與回歸方法。它的工作原理是:存在一個訓練樣本集,并且樣本集中每個數據都存在標簽,即我們知道樣本集中每一個數據與所屬分類的對應關系。
輸入沒有標簽的新數據后,將新的數據的每個特征與樣本集中數據對應的特征進行比較,然后算法提取樣本最相似數據(最近鄰)的分類標簽。一般來說,我們只選擇樣本數據集中前k個最相似的數據,這就是k-近鄰算法中k的出處,通常k是不大于20的整數。最后,選擇k個最相似數據中出現次數最多的分類,作為新數據的分類。
舉個簡單的例子,我們可以使用k-近鄰算法分類一個電影是愛情片還是動作片。
表1.1就是我們已有的訓練樣本集。這個數據集有兩個特征,即打斗鏡頭數和接吻鏡頭數。除此之外,我們也知道每個電影的所屬類型,即分類標簽。用肉眼粗略地觀察,接吻鏡頭多的,是愛情片。打斗鏡頭多的,是動作片。以我們多年的看片經驗,這個分類還算合理。
如果現在給我一部電影,你告訴我這個電影打斗鏡頭數和接吻鏡頭數。不告訴我這個電影類型,我可以根據你給我的信息進行判斷,這個電影是屬于愛情片還是動作片。而k-近鄰算法也可以像我們人一樣做到這一點,不同的地方在于,我們的經驗更"牛逼",而k-鄰近算法是靠已有的數據。
比如,你告訴我這個電影打斗鏡頭數為2,接吻鏡頭數為102,我的經驗會告訴你這個是愛情片,k-近鄰算法也會告訴你這個是愛情片。你又告訴我另一個電影打斗鏡頭數為49,接吻鏡頭數為51,我"邪惡"的經驗可能會告訴你,這有可能是個"愛情動作片",畫面太美,我不敢想象。 但是k-近鄰算法不會告訴你這些,因為在它的眼里,電影類型只有愛情片和動作片,它會提取樣本集中特征最相似數據(最鄰近)的分類標簽,得到的結果可能是愛情片,也可能是動作片,但絕不會是"愛情動作片"。當然,這些取決于數據集的大小以及最近鄰的判斷標準等因素。
距離度量
我們已經知道k-近鄰算法根據特征比較,然后提取樣本集中特征最相似數據(最鄰近)的分類標簽。那么,如何進行比較呢?比如,我們還是以表1.1為例,怎么判斷紅色圓點標記的電影所屬的類別呢?如圖1.1所示。
我們可以從散點圖大致推斷,這個紅色圓點標記的電影可能屬于動作片,因為距離已知的那兩個動作片的圓點更近。k-近鄰算法用什么方法進行判斷呢?沒錯,就是距離度量。這個電影分類的例子有2個特征,也就是在2維實數向量空間,可以使用我們高中學過的兩點距離公式計算距離,如圖1.2所示。
通過計算,我們可以得到如下結果:
- (101,20)->動作片(108,5)的距離約為16.55
- (101,20)->動作片(115,8)的距離約為18.44
- (101,20)->愛情片(5,89)的距離約為118.22
- (101,20)->愛情片(1,101)的距離約為128.69
通過計算可知,紅色圓點標記的電影到動作片 (108,5)的距離最近,為16.55。如果算法直接根據這個結果,判斷該紅色圓點標記的電影為動作片,這個算法就是最近鄰算法,而非k-近鄰算法。那么k-鄰近算法是什么呢?
k-近鄰算法步驟如下:
1.計算已知類別數據集中的點與當前點之間的距離;
2. 按照距離遞增次序排序;
3.選取與當前點距離最小的k個點;
4.確定前k個點所在類別的出現頻率;
5.返回前k個點所出現頻率最高的類別作為當前點的預測分類。
比如,現在我這個k值取3,那么在電影例子中,按距離依次排序的三個點分別是動作片(108,5)、動作片(115,8)、愛情片(5,89)。在這三個點中,動作片出現的頻率為三分之二,愛情片出現的頻率為三分之一,所以該紅色圓點標記的電影為動作片。這個判別過程就是k-近鄰算法。
到這里,也許有人早已經發現,電影例子中的特征是2維的,這樣的距離度量可以用兩點距離公式計算,但是如果是更高維的呢?對,沒錯。我們可以用歐氏距離,如圖1.5所示。我們高中所學的兩點距離公式就是歐氏距離在二維空間上的公式,也就是歐氏距離的n的值為2的情況。
看到這里,有人可能會問:“分類器何種情況下會出錯?”或者“答案是否總是正確的?”答案是否定的,分類器并不會得到百分百正確的結果,我們可以使用多種方法檢測分類器的正確率。
此外分類器的性能也會受到多種因素的影響,如分類器設置和數據集等。不同的算法在不同數據集上的表現可能完全不同。為了測試分類器的效果,我們可以使用已知答案的數據,當然答案不能告訴分類器,檢驗分類器給出的結果是否符合預期結果。通過大量的測試數據,我們可以得到分類器的錯誤率-分類器給出錯誤結果的次數除以測試執行的總數。
錯誤率是常用的評估方法,主要用于評估分類器在某個數據集上的執行效果。完美分類器的錯誤率為0,最差分類器的錯誤率是1.0。同時,我們也不難發現,k-近鄰算法沒有進行數據的訓練,直接使用未知的數據與已知的數據進行比較,得到結果。因此,可以說k-鄰近算法不具有顯式的學習過程。
k近鄰算法
y = argmax f(x) 代表:y 是f(x)函式中,會產生最大輸出的那個參數x。
指示函數:定義在某集合X上的函數,表示其中有哪些元素屬于某一子集A。
k近鄰模型
近似誤差:可以理解為對現有訓練集的訓練誤差。
估計誤差:可以理解為對測試集的測試誤差。
近似誤差關注訓練集,如果近似誤差小了會出現過擬合的現象,對現有的訓練集能有很好的預測,但是對未知的測試樣本將會出現較大偏差的預測。模型本身不是最接近最佳模型。
估計誤差關注測試集,估計誤差小了說明對未知數據的預測能力好。模型本身最接近最佳模型。
k近鄰法的實現:kd樹
本章概要
樸素貝葉斯法
樸素貝葉斯法的學習與分類
y = argmax f(x) 代表:y 是f(x)函式中,會產生最大輸出的那個參數x。
分母使用了全概率公式。
條件期望和聯合分布
樸素貝葉斯法的參數估計
條件概率,指示函數,先驗概率,貝葉斯定理
樸素貝斯法中學習意味著估計先驗概率和后驗概率,進而求出后驗概率,即分類。所以要學參數估計。
N:樣本的個數。
機器學習中參數估計方法最基du本的zhi就是極大似然估計。,極大似然估計結果完全依賴于給定的樣本數據,它視待估參數為一個未知但固定的量,從而不考慮先驗知識的影響。因此如果樣本數據不能很好反映模型的情況,那么得到的參數估計結果就會有較大偏差。為了減小這個偏差,于是我們就采用貝葉斯估計方法。
這個算法用了貝葉斯定理,求出后驗概率(即通過結果求原因)
因為argmax 所以不需要貝葉斯定理中的分母。
本章概要
簡單來說就是更好的分類
決策樹
決策樹模型與學習
正則化的目的:正則化是為了防止過擬合。
特征選擇
決策樹的生成
該算法只有樹的生成,所以該算法生成的樹容易產生過擬合。
決策樹的剪枝
CART算法
I(x)是指示函數。
本章概要
邏輯斯諦回歸與最大熵模型
邏輯斯諦回歸模型
最大熵模型
拉格朗日乘子
凸函數
模型學習的最優化算法
二值函數是指通過某種函數將值輸出二值化。簡單講就是指將輸入轉化為僅有兩種可能結果的輸出
Jensen不等式
exp()函數
支持向量機
線性可分支持向量機與間隔最大化
線性支持向量機與軟間隔最大化
非線性支持向量機與核函數
序列最小最優化算法
本章概要
總結
以上是生活随笔為你收集整理的机器学习(李航统计学习方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java和python的语法有什么区别?
- 下一篇: 算法小抄笔记