❶ 無監督和有監督演算法的區別
1、有監督學習 :通過已有的訓練樣本去訓練得到一個最優模型,再利用這個模型將所有的輸入映射為相應的輸出,對輸出進行簡單的判斷從而實現預測和分類的目的,也就具有了對未知數據進行預測和分類的能力。就如有標准答案的練習題,然後再去考試,相比沒有答案的練習題然後去考試准確率更高。又如我們小的時候不知道牛和鳥是否屬於一類,但當我們隨著長大各種知識不斷輸入,我們腦中的模型越來越准確,判斷動物也越來越准確。
有監督學習可分為 回歸和分類 。
回歸: 即給出一堆自變數X和因變數Y,擬合出一個函數,這些自變數X就是特徵向量,因變數Y就是標簽。 而且標簽的值 連續 的,例LR。
分類 :其數據集,由特徵向量X和它們的標簽Y組成,當你利用數據訓練出模型後,給你一個只知道特徵向量不知道標簽的數據,讓你求它的標簽是哪一個?其輸出結果是 離散 的。例如logistics、SVM、KNN等。
2、無監督學習: 我們事先沒有任何訓練樣本,而需要直接對數據進行建模。比如我們去參觀一個畫展,我們完全對藝術一無所知,但是欣賞完多幅作品之後,我們也能把它們分成不同的派別。無監督學習主要演算法是聚類,聚類目的在於把相似的東西聚在一起,主要通過計算樣本間和群體間距離得到,主要演算法包括Kmeans、層次聚類、EM演算法。
❷ 降維演算法之LDA(線性判別降維演算法)--有監督
LDA在模式識別領域( 比如人臉識別,艦艇識別等圖形圖像識別領域 )中有非常廣泛的應用,因此我們有必要了解下它的演算法原理。
不同於PCA方差最大化理論, LDA演算法的思想是將數據投影到低維空間之後,使得同一類數據盡可能的緊湊,不同類的數據盡可能的分散 。因此,LDA演算法是一種有監督的機器學習演算法。同時,LDA有如下兩個假設:(1)原始數據根據樣本均值進行分類。(2)不同類的數據擁有相同的協方差矩陣。當然,在實際情況中,不可能滿足以上兩個假設。但是 當數據主要是由均值來區分的時候,LDA一般都可以取得很好的效果 。
(1)計算類內散度矩陣
(2)計算類間散度矩陣
(3)計算矩陣
(4)對矩陣 進行特徵分解,計算最大的d個最大的特徵值對應的特徵向量組成W。
(5)計算投影後的數據點
以上就是使用LDA進行降維的演算法流程。實際上LDA除了可以用於降維以外,還可以用於分類。 一個常見的LDA分類基本思想是假設各個類別的樣本數據符合高斯分布 , 這樣利用LDA進行投影後,可以利用極大似然估計計算各個累唄投影數據的均值和方差,進而得到該類別高斯分布的概率密度函數 。當一個新的樣本到來後,我們可以將它投影,然後將投影後的樣本特徵分別帶入各個類別的高斯分布概率密度函數,計算它屬於這個類別的概率,最大的概率對應的類別即為預測類別。LDA應用於分類現在似乎也不是那麼流行。
class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)
參數:
(1)solver: str類型,默認值為"svd",
svd:使用奇異值分解求解,不用計算協方差矩陣,適用於特徵數量很大的情形,無法使用參數收縮(shrinkage)。
lsqr:最小平方QR分解,可以結合shrinkage使用。
eigen:特徵值分解,可以結合shrinkage使用。
(2)shrinkage: str or float類型,默認值為None
是否使用參數收縮
None:不使用參數收縮
auto:str,使用Ledoit-Wolf lemma
浮點數:自定義收縮比例。
(3)components:int類型,需要保留的特徵個數,小於等於n-1
屬性:
(1)covariances_:每個類的協方差矩陣,shape = [n_features, n_features]
(2)means_:類均值,shape = [n_features, n_feateures]
(3)priors_:歸一化的先驗概率。
(4)rotations_:LDA分析得到的主軸,shape = [n_features, n_component]
(5)scalings_:數組列表,每個高斯分布的方差σ
特點:
降維之後的維數最多為類別數-1。所以當數據維度很高,但是類別數少的時候,演算法並不適用 。LDA演算法既可以用來降維,又可以用來分類。但是目前來說,主要還是用於降維。在我們 進行圖像識別相關的數據分析時,LDA是一個有力的工具 。
優點:
(1) LDA在樣本分類信息依賴均值而不是方差的時候,比PCA之類的演算法較優 。
(2)在降維過程中可以使用類別的先驗知識經驗,而像PCA這樣的無監督學習則無法使用類別先驗知識。
缺點:
(1)LDA不適合非高斯分布樣本進行降維,PCA也存在這個問題。
(2)LDA降維最多降到類別數K-1的維數,如果我們降維的維度大於k-1,則不能使用LDA。 當然目前有一些LDA的進化版演算法可以繞過這個問題 。
(3) LDA在樣本分類信息依賴方差而不是均值的時候,降維效果不好 。
(4)LDA可能過度擬合數據。
二者都有 降維 的作用。
1.左 邊是PCA,屬於無監督方法 ,當數據沒有標簽時可以用它。 右邊是LDA,屬於監督學習方法 。考慮了數據的分類信息,這樣數據在低維空間上就可以分類了,減少了很多的運算量。
2. PCA主要是從特徵的協方差角度考慮,追求的是在降維之後能夠最大化保持數據的內在信息 。它不考慮分類信息,因此降低維度後,信息損失降到最低,但分類上可能會變得更加困難。 LDA追求的是降維後的數據點盡可能容易被區分 。降維後的樣本數據在新的維度空間有最大的類間距離和最小的類內方差,數據在低維空間有最佳的可分離性。
3. PCA降維後的維度數目是和數據維度相關的 ,原始數據是n維,那麼PCA後維度為1、2~n維。 LDA後的維度數目是和類別的個數相關的 ,原始數據是n維,一共有C個類別,那麼LDA後維度為1、2~C-1維。
4. PCA投影的坐標系都是正交的 。 LDA關注分類能力,不保證投影到的坐標系是正交的 。