時光飛逝,學習機器學習已四年有余,深感機器學習之博大精深,可能不斷學習數十年也無法窮盡。但從另一方面考慮,我也學了很多,也有一些自己的感悟。本文謹代表我個人的觀點和感悟,希望對大家(尤其是初學者)有所幫助,歡迎大家一起討論與學習~
本文的目錄如下:
1. 綜述
1.1機器學習是什么
1.2 機器學習的過程
1.3監督學習VS無監督學習
根據訓練數據是否有標記,機器學習任務大致分為兩大類:監督學習和非監督學習,監督學習主要包括分類和回歸等,非監督學習主要包括聚類和頻繁項集挖掘等。
監督學習的過程如下:
無監督學習的過程如下:
監督學習算法VS無監督學習算法:
1.4輸入空間、特征空間、輸出空間、假設空間
輸入空間:在監督學習中,將輸入所有可能取值的集合稱為輸入空間。
特征空間:每個具體輸入是一實例,通常用特征向量表示,所有特征向量存在的
空間為特征空間。有時輸入空間和特征空間為相同的空間,有時為不同的空間,需要將實例從輸入空間映射到輸出空間。
輸出空間:在監督學習中,將輸出所有可能取值的集合稱為輸出空間。
假設空間:監督學習的目的在于學習一個由輸入到輸出的映射,這一映射由模型來表示。由輸入空間到輸出空間的映射的集合,稱為假設空間。舉個簡單的例子,在一元線性回歸中,假設空間即所有的直線y=ax+b組成的集合,我們的目標就是找到一條y=a'x+b',使得損失最小。
1.5生成模型和判別模型
生成模型:生成模型由數據學習聯合概率分布P(X,Y),然后求出條件概率分布P(Y|X)作為預測的模型。之所以被稱為生成方法,是因為模型表示了給定輸入X產生輸出Y的關系。典型的模型有樸素貝葉斯(NB)和隱馬爾可夫模型(HMM)等。
判別模型:判別模型由數據直接學習決策函數f(X),或條件概率分布P(Y|X)。判別方法關心的是對給定的輸入X,應預測什么樣的輸出Y。典型的判別模型包括k近鄰算法(KNN)、決策樹(DT)、邏輯回歸(LR)、支持向量機(SVM)等。
1.6 過擬合VS欠擬合
解決過擬合:重新清洗數據、增大樣本量、減少特征的量、增強正則化作用、dropout(適用于神經網絡)等。
解決欠擬合:使用更復雜的模型、更有效的特征選擇、減少正則化作用等。
1.7 特征選擇
特征選擇對機器學習至關重要,個人認為在大部分機器學習任務中特征就決定了效果的上限,模型的選擇與組合只是無限逼近于這個上限。
特征選擇的主要作用包括:減少特征數量會防止維度災難,減少訓練時間;增強模型泛化能力,減少過擬合;增強對特征和特征值的理解。
常見的特征選擇方法如下:
去除取值變化小的特征:如果絕大部分實例的某個特征取值一樣,那這個特征起到的作用可能就比較有限,極端情況下如果所有實例的某特征取值都一樣,那該特征基本就不起作用。
單變量特征選擇法:能夠對每一個特征進行測試,衡量該特征和響應變量之間的關系,根據得分扔掉不好的特征。常見方法包括卡法檢驗、互信息、皮爾森相關系數、距離相關系數、基于學習模型的特征排序(Model based ranking)等。
正則化:L1正則化、L2正則化。
隨機森林特征選擇:這類方法主要包括平均不純度減少(mean decrease impurity)和平均精確率減少(Mean decrease accuracy)兩種方法。
頂層特征選擇法:這類方法主要包括穩定性選擇(Stability selection)和遞歸特征消除(Recursive feature elimination)兩種方法。
1.8 方差vs偏差
偏差描述的是算法預測的平均值和真實值的差距(算法的擬合能力),低偏差對應于模型復雜化,但模型過于復雜容易過擬合。
而方差描述的是同一個算法在不同數據集上的預測值和所有數據集上的平均預測值之間的關系(算法的穩定性),低方差對應于模型簡單化,但模型過于簡單容易欠擬合。
高偏差(一般是欠擬合,注意跟上面低偏差時模型復雜化做區別)是模型在訓練集和驗證集上的誤差都比較大,隨著數據集的增加,模型在訓練集和驗證集上的誤差表現如下:
解決高偏差的方法:使用更多特征,增加多項式特征,減少正則化程度λ。
高方差是針對不同的訓練集,其擬合得到的參數相差很大(一般是過擬合,注意跟上面低方差時模型簡單化做區別)。隨著數據集的增加,模型在訓練集和驗證集上的誤差表現如下:
解決高偏差的方法:增加訓練樣本,減少特征數量,增加正則化程度λ
2. 機器學習任務分類
2.1 按學習方式分類
2.2 按算法思想分類
3. 損失函數
損失函數用來評價模型的預測值和真實值不一樣的程度,損失函數越好,通常模型的性能越好。不同的模型用的損失函數一般也不一樣。
損失函數分為經驗風險損失函數和結構風險損失函數。經驗風險損失函數指預測結果和實際結果的差別,結構風險損失函數是指經驗風險損失函數加上正則項。通常表示為如下:
3.1 0-1損失函數
0-1損失是指預測值和目標值不相等為1,否則為0:
3.2 絕對值損失函數
絕對值損失函數是計算預測值與目標值的差的絕對值:
3.3 log對數損失函數
log損失函數的標準形式如下:
3.4 平方損失函數
平方損失函數經常應用于回歸問題,它的標準形式如下:
3.5 指數損失函數
指數損失函數的標準形式如下:
3.6 Hinge損失函數
Hinge損失函數標準形式如下:
損失函數的選擇,對一般機器學習任務非常重要。很多任務就是難在不太容易確定一個比較好的損失函數。
4.監督學習
4.1監督學習的任務分類
常見監督學習任務的分類以及他們之間的對比如下;
4.2 監督學習算法
監督學習的算法非常多,后續也會有選擇的分享我對一些常見算法的感悟。常見的監督學習算法具體如下:
4.3 監督學習的評估
監督學習的效果評估如下:
5.無監督學習
5.1 無監督學習的任務分類
常見的無監督學習的任務分類如下:
5.2 聚類
無監督學習—聚類
5.3 推薦
無監督學習—推薦
5.4 頻繁項集挖掘
無監督學習—頻繁項集挖掘
6.總結與思考
6.1總結
6.2 思考
-
函數
+關注
關注
3文章
4331瀏覽量
62618 -
機器學習
+關注
關注
66文章
8418瀏覽量
132635
原文標題:知識點 | 關于機器學習的超全總結
文章出處:【微信號:thejiangmen,微信公眾號:將門創投】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論