機器學習演算法概述
- 2021 年 1 月 30 日
- 筆記
機器學習分類
- 監督學習:傳統意義上的機器學習,即訓練數據有標籤,機器在學習過程中是有回饋的,知道正確與否;
- 無監督學習:與監督學習相反,沒有標籤,也沒有回饋,只能從數據本身去挖掘,尋找規律;
- 強化學習:通過與環境進行交互獲得的獎賞指導行為,目標是使智慧體獲得最大的獎賞;
- 半監督學習:顧名思義,介於監督學習和無監督學習之間;
- 深度學習:通過多層神經網路提取特徵,提取特徵數量大種類多,再根據回饋去調整網路參數。
python的機器學習庫sklearn
1.自帶數據集:
2.sklearn的主要功能:
功能 | 演算法 |
---|---|
聚類 | K均值聚類K-means、DBSCAN、高斯混合模型GMM、BRICH、譜聚類、AP聚類、均值漂移、層次聚類 |
降維 | 主成分分析PCA、獨立成分分析FastICA、非負矩陣分解NMF、LDA、字典學習、因子分析 |
分類 | k鄰近kNN、支援向量機SVM、樸素貝葉斯naivebayes、決策樹、集成方法、MLP |
回歸 | 普通線性回歸、嶺回歸、Lasso回歸、彈性網路、最小角回歸、貝葉斯回歸、邏輯回歸、多項式回歸 |
模型選擇 | 略 |
數據預處理 | 略 |
常用演算法
1.無監督學習
無監督學習一般分為聚類和降維
(1)聚類(clustering):對無標籤的一組數據進行聚類,通過其「相似度」,也就是「距離」進行分類,通常分類的類別數是可以調整的。
距離包括
- 歐氏距離(傳統的平面幾何距離,可拓展到高維空間)
- 曼哈頓距離(街區距離)
- 馬氏距離(協方差距離)
- 夾角餘弦距離(向量的相似度)
演算法
- K-means:隨機找k個點作為初始聚類中心;對於剩下的點,以此計算其餘點與聚類中心的距離(上面提到的,通常為高維空間),根據其與聚類中心的距離,歸入最近的簇;對每個簇,計算所有點的均值作為新的聚類中心;重複以上步驟,直到聚類中心不發生改變。
- DBSCAN:基於密度的演算法,不需要人為指定簇的個數,故最終簇的個數不確定。將數據點分為3類:
——核心點:在給定半徑內含有超過確定個數的點,即臨近點比較多
——邊界點:在核心點的鄰域內,但不滿足核心點的要求
——噪音點:不滿足以上條件
流程為將所有點標記為核心點、邊界點或者噪音點;刪除噪音點;在給定距離內的核心點賦予邊;每組連通的核心點形成一個簇;將邊界點分配到與其關聯的核心點的簇中。
例子:比如目前有全國30個城市的幾個方面的數據,例如在衣、食、住、行4個方面的消費,要把30個城市分成幾個不同的類別,就要用到聚類演算法。
(2)降維(decomposition):儘可能保證原本數據特徵不變的情況下,將高維數據轉化為低維數據,一般用作數據的可視化,或者減輕後續計算的數據量。
演算法
- PCA:將線性相關的高維變數合成線性無關的低維向量,稱為主成分,主成分儘可能保留原始數據的資訊。簡單來說,矩陣的主成分就是其協方差矩陣對應的特徵向量,按照大小,找出前m個(就是我們要降到的低維個數)特徵值。
- NMF:非負矩陣分解,原理就是非負矩陣可以分解為兩個非負矩陣的乘積。
例子:鳶尾花是一個常見的數據集,但是其是4個指標,即4維,無法直接看出其空間分布,於是需要降維將其轉化為2維平面上的點,易於觀察。
2.監督學習
監督學習即利用有標籤的數據,學習其規律,目的是對未知數據進行很好的預測,一般分為分類和回歸。監督學習都會有訓練集和測試集之分。
(1)分類:輸出離散即為分類。根據對訓練集的學習,面對測試集可以準確將其分到所屬類別,有二分類,也有多分類。
演算法
- kNN:通過計算一個數據點與所有數據點之間的距離,根據給定的鄰居個數N,取出其鄰居各自的類別,它的鄰居哪一類最多,就判斷此樣本點屬於哪一類。
k的取值很關鍵,較大時雖然會根據更多的樣本點來判斷,但是也會因為引入距離較遠的樣本,從而導致預測錯誤;較小時,容易出現過擬合現象,容易被噪音點影響。 - 決策樹:西瓜書的第一個模型。通常問題會被諸多因素影響,而我們的目的是產生一個最合適的判斷模型,只要順著樹枝就可以得到正確的結果。
- 樸素貝葉斯:首先概率論中學過貝葉斯定理,樸素貝葉斯就是為了求出後驗概率最大的y,作為其分類結果。
- MLP:即多層感知機。最簡單的2層神經網路也叫做感知機,中間加入隱含層後即為多層感知機,是一種很簡單的神經網路。
例子:根據對數據集中的貓和狗的學習,從而產生合適的分類器,對未知圖片可以判斷其是貓還是狗。
(2)回歸:輸出連續即為回歸。與分類類似,只不過是輸出為連續的情況,根據訓練集去預測,對於輸入可以給出一個合適的數值。自變數(特徵)只有一個時為一元回歸,多個時為多元回歸。
演算法
- 簡單回歸
- 多項式回歸
- 嶺回歸:上述二者都是基於最小二乘法進行擬合,嶺回歸相比較而言是一種改良的最小二乘法。
例子:最簡單的回歸即為散點圖的回歸,下圖給了一個二維的例子,高維可以類比;回歸也可以分為線性和非線性。
個人看來回歸更傾向於預測,例如股票(當然這個很難預測)、交通流量預測,可以理解為就是對時間序列進行擬合,只不過將序列替換為高維的概念。
3.強化學習
強化學習是一種試錯學習,通過環境提供的回饋調整策略,最終達到獎賞最大的目的。
演算法
- 馬爾可夫決策過程MDP:和資訊理論中的馬爾可夫鏈很像,根據當前狀態和轉移概率求得下一個狀態,是基於模型的演算法。
- 蒙特卡洛強化學習:當環境中狀態太多時,學習演算法不再依賴於環境建模,即為免模型演算法。這裡提到了貪心策略。
- Q-learning:結合動態規劃和蒙特卡洛強化學習。
- 深度強化學習DRL:將深度學習和傳統強化學習結合,也避免了狀態過多的問題,直接從環境(輸入)和動作(輸出)去學習。
- DQN:Deep Q Network,DL+Q-learning