在有監督學習里面有幾個邏輯上的重要組成部件[3],初略地分可以分為:模型,參數 和 目標函數。(此部分轉自 XGBoost 與 Boosted Tree)
一、模型和參數
模型指給定輸入xi如何去預測 輸出 yi。我們比較常見的模型如線性模型(包括線性回歸和logistic regression)采用
二、目標函數:損失 + 正則
模型和參數本身指定了給定輸入我們如何做預測,但是沒有告訴我們如何去尋找一個比較好的參數,這個時候就需要目標函數登場了。一般的目標函數包含下面兩項
常見的誤差函數有平方誤差、交叉熵等,而對於線性模型常見的正則化項有L2正則和L1正則。
三、優化算法
講了這么多有監督學習的基本概念,為什么要講這些呢? 是因為這幾部分包含了機器學習的主要成分,也是機器學習工具設計中划分模塊比較有效的辦法。其實這幾部分之外,還有一個優化算法,就是給定目標函數之后怎么學的問題。之所以我沒有講優化算法,是因為這是大家往往比較熟悉的“機器學習的部分”。而有時候我們往往只知道“優化算法”,而沒有仔細考慮目標函數的設計的問題,比較常見的例子如決策樹的學習,大家知道的算法是每一步去優化gini entropy,然后剪枝,但是沒有考慮到后面的目標是什么。
然后看邏輯回歸(LR)算法,主要參考斯坦福大學機器學習公開課,http://www.iqiyi.com/playlist399002502.html
邏輯回歸是一種分類算法,而不是一種回歸。邏輯回歸采用sigmod函數,這是一個自變量取值在整個實數空間,因變量取值在0-1之間的函數,可以將變量的變化映射到0-1之間,從而獲得概率值。
sigmod函數形式如下
通過將代入sigmod函數,可以得到如下形式:
這樣我們得到了模型和參數,下一步我們確定目標函數,邏輯回歸的損失函數是交叉熵函數,求得參數采用的優化算法是最大似然。
假設
可以更加簡潔的寫作
根據最大似然算法,所求的模型應該使得取得樣本的情況的概率越大越好,假設樣本相互之間都是獨立的,則可以如下表示用模型取得樣本情況的概率
也就是獨立事件同時發生的概率。為了方便處理,取log則
這也就是邏輯回歸的損失函數。
求解這個目標函數采用隨機梯度下降的方法即可,
由於sigmod函數的如下特性
可以簡單的將求梯度的式子簡化如下
這樣就可以通過樣本不停的更新,直至找到滿足要求的參數。
3: Principles of Data Mining, David Hand et al,2001. Chapter 1.5 Components of Data Mining Algorithms, 將數據挖掘算法解構為四個組件:1)模型結構(函數形式,如線性模型),2)評分函數(評估模型擬合數據的質量,如似然函數,誤差平方和,誤分類率),3)優化和搜索方法(評分函數的優化和模型參數的求解),4)數據管理策略(優化和搜索時對數據的高效訪問)。