机器学习第一篇:开篇
1、接下來的關于機器學習的專題內容都會借鑒李航老師的《統計學習方法》。
2、李航老師的書籍中把機器學習稱為統計機器學習,我們在文章中簡稱為統計學習。
01|統計學習概覽:
1、統計學習的概念
統計學習是關于計算機基于數據構建概率統計模型并運用模型對數據進行預測與分析的一門學科。
2、統計學習的對象
統計學習的對象是數據,它從數據出發,提取數據的特征,抽象出數據的模型,發現數據中的知識,然后對數據進行分析與預測。
作為統計學習的對象,數據的形式是多樣的,包括存在于計算機中的各種數字、文字、圖像、音頻等格式的數據。
3、統計學習的目的
統計學習的作用是對數據進行預測與分析,特別是對未知數據進行預測與分析,而對數據的預測與分析是通過構建概率統計模型來實現的。所以統計學習的目的是學習什么樣的模型和如何學習模型,來讓模型對數據進行準確的預測與分析。
根據輸入(X)與輸出(Y)類型的不同,我們給予預測任務不同的名稱:
1)當輸入變量與輸出變量均為連續變量的預測問題的預測問題稱為回歸問題。
2)當輸出變量為有限個離散變量的預測問題稱為分類問題。
3)當輸入變量與輸出均為變量序列的預測問題稱為標注問題。
4、統計學習的方法
統計學習的方法包括模型的假設空間、模型選擇的準則以及模型學習的方法,稱其為統計學習的三要素,簡稱模型、策略和算法。
02|統計學習三要素:
1、模型
在前面我們知道統計學習是通過建立模型來對未來的數據進行更好的預測,在監督學習中模型一般是條件概率分布或者是普通函數這兩種。
條件概率分布P(Y|X)模型是通過訓練集求出P(X),然后在P(X)已知的情況下去求Y發生的概率。
普通函數Y=F(X)模型是通過訓練集求出函數F(X)的參數,這樣F(X)函數就可以確定,然后給定任意一個X都可以通過函數直接求出Y。
我們把通過條件概率去求Y的這種模型稱為概率模型,而通過函數去求Y的這種模型稱為非概率模型。
2、策略
同一個數據集可能訓練出多個模型即多個函數(如下圖所示,同樣的數據集訓練出三種不同的函數),我們首選肯定是那個預測能力較好的模型,我們應該按照什么樣的準則去選擇呢,這就是統計學習中的策略。
圖2.1—來源于網絡
1)損失函數和風險函數
前面說過我們應該首選那個預測能力較好的模型,那么該怎么判斷預測能力的好壞呢?引入損失函數,用這個指標來度量模型預測能力的好壞。風險函數是用來度量平均意義下的模型預測能力的好壞。
損失函數是用來表示預測值F(X)和實際值Y的差距大小的函數,常見的損失函數有0-1損失函數、平方損失函數、絕對損失函數、對數損失函數(或對數似然損失函數)。這里提一個疑問:不同損失函數之間的區別是什么,什么算法下該用什么損失函數去衡量呢?
風險函數是平均意義下的模型預測能力的好壞,所以損失函數的期望就是風險函數,也稱期望損失。
2)經驗風險與期望風險
模型F(X)關于訓練集的平均損失(損失函數表示的是訓練集中的某一個值的預測差距,而經驗風險是用來表示整個訓練集中所有值的預測差距)稱為經驗風險或經驗損失,記作Remp。
期望風險是模型關于聯合分布(即P(Y|X))的期望損失。但是聯合分布我們又不知道,所以無法求得。這里引用大數定理,當樣本容量足夠大時,經驗風險趨于期望風險,所以可以用經驗風險來代替期望風險。
3)經驗風險最小化和結構風險最小化
上面說過經驗風險是用來表示整個訓練集中所有預測值的預測差距,而經驗風險最小化就是表示預測差距最小,而模型好壞的標準也是用預測好壞來評判的,所以我們認為經驗風險最小化(預測差距最小)所對應的模型就是最優模型。
當樣本容量很小時,經驗風險最小化的效果就未必很好,會產生所謂的“過擬合”現象。而結構風險最小化就是為了防止過擬合而提出來的策略,結構風險最小化等價于正則化,其值為經驗風險加上表示模型復雜度的正則化項或罰項。結構風險越小表示模型越簡單,越不容易發生過擬合,就是我們想要的最優模型。
所以,監督學習問題就成了經驗風險和結構風險函數最優化問題,而這兩函數就成了目標優化函數。
3、算法
通過前面的策略,我們知道了監督學習問題就是經驗風險和結構風險最優化問題,即求解這兩個目標函數的最優解,我們把這個具體的最優解求解的過程稱為算法。
03|模型評估與模型選擇:
1、模型評估
用訓練誤差與測試誤差這兩個值來評判模型的好壞。
訓練誤差就是模型關于訓練集的平均損失,就是我們前面說到的經驗風險。
測試誤差是模型關于測試集的平均損失,反映學習方法對未知數據集的預測能力,是我們需要重點關注的一個指標,通常將這種對未知數據的預測能力稱為泛化能力。
2、模型選擇
常用的模型選擇的方法是正則化和交叉驗證,正則化等同于結構風險最小化,前面已經說過,這里主要說一下交叉驗證。
交叉驗證的基本思路是重復地使用數據,把給定的數據進行切分,將切分的數據集組合為訓練集與測試集,在這個數據集的基礎上反復進行訓練、測試以及模型選擇。
交叉驗證的分類:
簡單交叉驗證
隨機地將已知數據集分為兩部分,一部分用作訓練集,一部分用作測試集,然后用訓練集在各種條件下(比如不同的參數個數)訓練模型,從而得到不同的模型,在測試集上評價各個模型的測試誤差,選出測試誤差最小的模型。S折交叉驗證
隨機地將已知數據切分成S個互不相交的大小相同的子集,然后利用S-1個子集的數據訓練模型,利用余下的子集測試模型,重復這個操作S次,最后選出S次評測中平均測試誤差最小的模型。留一交叉驗證
S折交叉驗證的特殊情形是S=N(N為給定數據集的容量),稱為留一交叉驗證,往往在數據缺乏的情況下使用。
總結
以上是生活随笔為你收集整理的机器学习第一篇:开篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 别具一格造句子 别具一格怎么造句
- 下一篇: 机器学习第二篇:详解KNN算法