機器學習流程方法流程
以有監督學習爲例:
輸入數據 ————> 特徵工程 ————> 模型訓練 ————> 模型部署 ————> 模型應用
輸入空間與輸出空間
輸入空間(Input Space):將輸入的所有可能取值的集合稱作輸入空間
輸入空間(Ouput Space):將輸出的所有可能取值的集合稱作輸出空間
- 輸入空間和輸出空間可以是有限元素的集合,也可以是整個歐式空間
- 輸入空間和輸出空間可以是連續值集合,也可以是離散值集合
- 輸入空間和輸出空間可以是同一空間,也可不同
- 通常輸出空間會比輸入空間小
特徵空間
特徵(Feature):即屬性。每個輸入實例的各個組成部分(屬性)稱爲原始特徵,基於原始特診還可以擴展出很多衍生特徵。
C_level 屬於由原始特徵Fare 而得的衍生特徵
特徵向量(Feature Vector):有多個特徵組成的集合,稱作特徵向量
特徵空間(Feature Space):將特徵向量存在的空間稱爲特徵空間
- 特徵空間中的每一維對應了一個 特徵(屬性)
- 特徵空間可以與輸入空間相同,也可以不同
- 需將實例從輸入空間映射到特徵空間
- 模型實際上是定義在特徵空間之上的
假設空間
假設空間(Hypothesis Space):由輸入空間到輸出空間的映射的集合
我們舉一個栗子來更深理解假設空間:
某商品的瀏覽、購買記錄中,記錄了性別、信用度以及是否購買,基於數據建模,其中Gender取值爲{Male,Female},Gredit取值爲 {High , Medium, Low},Buy取值爲 {TRUE,FALSE}:
我們的目標是在輸入空間和輸出之間建立映射關係,也就是假設空間。
輸入記錄中所有可能出現的值的組合爲 2*3 = 6個,列表如下:
而這些組合結果的最終結果都可能有兩個也就是 TRUE 或FALSE:
但是我們要提出一個疑問:這上面的這個表是假設空間嗎?
對於每一種可能的輸入,都能找到一個映射,對應了輸出空間的某個輸出。
我們從這12個可能的輸入輸入映射關係,抽出一種可能的假設:
我們將這種所有的輸入空間都對應了一個確定的輸出稱作一種假設,一種假設即使一種輸入空間到輸出空間的映射方式,那一共有多少種假設?
我們知道輸入空間可能取值種數(2*3 = 6種),輸出空間能取值種數(2種):
每一種確定的輸入空間取值對應2種輸入空間取值,有6種確定的輸入空間取值,組合成輸入空間到輸入空間的映射方式一共就有 2*2*2*2*2*2 = 2^6,通常還要加上一個全空的假設 ,也就是說着個問題的假設空間有 2^6 + 1 種假設
通過以上的栗子,可以的到一般的假設空間H的假設個數爲:,其中 M是輸出空間的可能取值數,\(N_i\) 是輸入空間空間第 i 個特徵的可能取值個數。
以上例子種的假設空間的65種假設種取出6種如下 :
而我們機器學習建模過程也就是要從這65個假設中選擇一個最爲貼合我們數據樣本的假設X,然後將這個假設X用來對新的數據進行預測
機器學習方法三要素
機器學習方法通常是由模型、策略和算法三部分構成:方法= 模型 + 策略 + 算法
- 模型: 輸入空間到輸出空間的映射關係(某種假設)。機器學習過程即爲從假設空間中搜索適合當前數據的假設
對於模型,首先分析需要解決的問題(分類 or 迴歸 or 發現結構 or 異常檢測),來確定模型:
- 策略:從假設空間衆多的假設中選擇到最優的模型(假設)的學習標準或者規則
對於策略,我們從假設空間中選擇 一個最合適的 模型出來,首先需要解決的問題如下 :
對於評估單個訓練樣本效果以及訓練集整體效果較爲容易,而對於除去已知的數據集,對那些未知數據具的評估效果是有困難的,通過定義一些指標來衡量以上問題:
由此我們有以下基本策略:
- 算法:學習模型的具體的計算方法,通常是求解最優化問題
損失函數
損失函數(Loss Fuction):用來衡量預測結果和真實結果之間的差距,其值越小,代表預測結果和真實結果越一致。通常是一個非負實質值函數。通過各種方式縮小損失函數的過程被稱作優化。損失函數記作 \(L(Y,f(x))\)。損失函數(Loss Function) 直接作用於單個樣本,用來表達樣本的誤差。
常見損失函數如下:
0-1損失函數(0 - 1LF):預測值和真實值精確相等則“沒有損失”爲0,否則意味着“完全損失”,爲1
,其中Y 爲真實值
預測值和實際值精確相等有些過於嚴格,可以採用兩者的差小於某個閾值的方式來降低要求:
比如,對於相同的預測結果,兩種損失函數嚴格程度不同,設置 T= 0.5,那麼:
後者 設置T= 0.5,要求就沒那麼嚴格咯,前者就相當於後者的一個特殊情況 T= 0。
預測結果是一樣的,然而這種結果是好是壞,與實際應用的業務場景要求是緊密相關的,不同的應用對嚴格程度的要求往往是不同的。
絕對值損失函數(Absolute LF):預測結果與真實結果差的絕對值。優點是簡單易懂,但是計算不方便(對於後續公式處理較爲麻煩,—— 模型推導過程較爲困難)。
平方損失函數(Quadratic LF):預測結果與真實結果差的平方。
平方損失函數所具有的優勢:
- 每個樣本的誤差均爲非負,累加過程不會互相抵消
- 平方對於具有大誤差的樣本的懲罰力度更大(絕對值是真實反映誤差,而平方2的平方是4,3的平方是9,顯而易見)
- 數學計算較爲簡單友好(特別是對於求導——導數爲一次函數)
絕對值是真實反映誤差,而平方2的平方是4,3的平方是9,顯而易見,比如:
對數損失函數(Logarithmic LF)或對數似然損失函數(log-kujehood loos function):對數函數具有單調性,在求解最優化問題時候,結果於原始目標一致(不改變極值點)。同時具有可以將乘法化爲加法的優點,簡化計算:
指數損失函數(Exponential LF):單調非負,使得越接近正確結果誤差越小(根據驗證,真實值爲a ,只能在真實值的靠近0的那一側越接近a 才誤差越小)
折葉損失函數(Hinge LF):也稱作鉸鏈損失,對於判定邊界附近的點的懲罰力度較高,常見於SVM
幾種損失函數圖像如下:
不同的損失函數有不同的特點,適用於不同的場景:
- 0-1:理想狀況模型
- Log:邏輯迴歸、交叉熵
- Squared:線性迴歸
- Exponential:AdaBoosting
- Hinge:SVM,soft-margin