1. 程式人生 > >【機器學習系列】—大綱總結

【機器學習系列】—大綱總結

機器學習是人工智慧的核心,主要分為有監督學習和無監督學習。那麼什麼叫有監督和無監督呢?是否有監督,主要看輸入的樣本資料集是否有目標變數。有監督學習是有明確的目標變數,而無監督學習,此類的資料沒有類別資訊,也不給定目標值。
這段時間主要學習了有監督學習,所以下面對有監督學習進行一個大綱總結:

有監督學習

有監督學習一般使用兩種型別的目標變數:標稱型和數值型。標稱型的目標變數結果只在有限目標集中取值,如真與假、男人與女人、電影分類集合{動作片、武打片、恐怖片,喜劇片,愛情片}。數值型目標變數則可以從無限的數值集合中取值,例如-∞ ~+∞,0~10 等。分類和迴歸都屬於有監督學習,因為這兩類演算法都必須知道自己要預測什麼,即明確目標變數的分類資訊。

分類

分類的主要任務是將例項資料劃分到合適的分類中,主要是預測目標變數是標稱型的資料。常見的分類演算法有:K-近鄰演算法、決策樹、樸素貝葉斯、Logistic迴歸(SVM和元演算法此處不討論)。

K-近鄰(KNN) :

k-近鄰演算法,使用某種距離計算方法進行分類。其工作原理是: 存在一個樣本資料集合,也稱作訓練樣本集,並且樣本訓練集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行距離計算,選擇K個距離最近的資料。通常K是不大於20的整數。
這裡寫圖片描述
如上圖所示:k = 3,D點距離點紅C、紅F、藍G三點的距離最近,因為紅色佔的票數較多,所以D歸屬於紅類。
步驟:
1) 計算待測的點與已知樣本點之間的距離;
2) 按照距離遞增排序;
3) 選取當前點距離最小的K個點
4) 確定前K個點所在類別出現的頻率
5) 返回頻率最高的類別作為待測點的預測分類

決策樹:

決策樹是一個樹形結構,可以是二叉樹或非二叉樹。其工作原理是:對原始資料,基於最好的屬性劃分資料集。資料集的劃分主要是採用遞迴原則進行劃分,每個分支代表某個特徵樹形在某個值域上的輸出,每個葉子節點存放一個類別。遞迴結束的依據就是每個分支下的所有例項都具有相同的分類。

PS: 這裡的劃分演算法採用的IDS演算法,決策樹既可以用於迴歸也可以用分類,後續會介紹採用CART演算法的決策樹,進行迴歸預測。

樸素貝葉斯

樸素貝葉斯,是一個選擇高概率類別的分類器,它的核心是樸素貝葉斯準則,而樸素貝葉斯準則的基石是條件概率。

條件概率是指事件A在另外一個事件B已經發生條件下的發生概率。例如,我們有一個罐子,裡面裝有7個石頭,3個灰球,4個黑球。那麼我們取出灰球的概率 P(gray)= 3/7,顯然黑球的概率是4/7。 如果7個石頭放在兩個桶中,那麼我們又該如何計算以上概率呢?如下圖:
這裡寫圖片描述

如上圖所示,我們要想計算P(gray)和P(black),就得知道石頭在桶的分佈是一定的結果下。此時,在已知石頭出自B桶的條件下,取出灰石頭的概率,即P(gray|bucketB) = 1/3。 這個概率我們就叫條件概率。
另外一種有效計算條件概率的方法稱為貝葉斯準則,貝葉斯準則通過交換條件概率中的條件和結果。樸素貝葉斯公式:
這裡寫圖片描述
步驟:
1) 從文字中構建詞向量
2) 利用詞向量計算特徵的條件概率,即將該詞條的數目除以總詞條數目
3) 返回每個類別的條件概率
4) 找到所有概率中的最大值

PS : 利用樸素貝葉斯分類器對文件進行分類時,遇到的問題是下溢位,解決方法是對乘積取自然對數。

Logistic迴歸

Logistic 迴歸雖然名字叫回歸,但它其實是一個分類器。 迴歸是什麼意思呢?假設我們現在有一些資料點,我們用一條直線對這些點進行擬合,這個擬合的過程我們就叫回歸。而這條直線我們就叫最佳擬合直線。
工作原理:利用最優演算法(梯度上升法)尋找最佳擬合引數,將最佳擬合引數乘以每個特徵值,最後相乘的結果進行相加,將這個總和帶入到sigmoid函式中,進而得到一個0~1之間的數值,如果這個數值大於0.5歸於1類,小於0.5則歸於0類。
這裡寫圖片描述

步驟:
1. 利用梯度上升演算法找到最佳係數
2. 畫出決策邊界
3. 將特徵向量乘以最優迴歸係數,並相加
4. 將和輸入到sigmoid函式,即可得到所屬類別
5.

線性迴歸

迴歸的目的是預測數值型的目標值。例如,我們可以預測鮑魚的年齡。

工作原理:利用普通最小二乘法求得迴歸係數,再用迴歸係數乘以輸入值,將結果全部加在一起後就得到了預測值。 此處的迴歸係數是一個向量,輸入也是一個向量,所以實質上也是求出二者的內積。
這裡寫圖片描述
Y1 就是我們的樣本的目標變數,x1是樣本的特徵,w未知。我們如何求得w呢?一個常用的方法就是找出誤差最小的w。這裡的誤差指預測y值和真實y值之間的差值。
常用的演算法有:標準線性迴歸、區域性加權、嶺迴歸、lasso和前向逐步迴歸。

樹迴歸

樹迴歸主要分為迴歸樹和模型樹。迴歸樹在每個葉子節點包含單個值,模型樹,其每個葉節點包含一個線性模型。
工作原理:主要用CART的樹構建演算法對資料進行二元切分,切分的依據是如果特徵值大於給定值,就走左子樹,否則就走右子樹。那麼什麼時候停止切分呢?使用者設定兩個引數,用於控制函式的停止時機,一旦停止切分會生成一個葉節點。
步驟: 構建樹 —>預剪枝—>後剪枝

後期會繼續對SVM 、元演算法和無監督學習進行總結。也會具體針對一些典型的演算法進行深入的研究總結。