1. 有監督分類的演算法
監督分類(supervisedclassification)又稱訓練場地法,是以建立統計識別函數為理論基礎,依據典型樣本訓練方法進行分類的技術。
回歸:在建模的過程中需同時具備自變數x和因變數y,屬於有監督的學習演算法。輸出變數為離散型。
主要介紹:Logistic,決策樹,隨機森林,KNN,樸素貝則仿葉斯
tips:決策樹,隨機森林,KNN也可用於連續型變數的預測。
Logistic回歸:
思想:
高低。
Logistic針對坦盯此離散型因變數的判別,如客戶是否優質,客戶的流失率概率等。
將線性回歸的預測值經過非線性的Logit函數轉換為[0,1]之間的概率值。參數求解:結合迭代對每一個未知的參數做梯度下降,學習率的步長通常可以取0.1,0.05,0.01,太小時需要迭代太多次收斂速度過慢,過大時難以得到理想的值可能只是局部最小。參數解釋:優勢比/發生比之比,如腫瘤體積每增加一個單位讓迅,將會使癌症發生比變化e參數次倍。
2. PCA和LDA
在機器學習領域,PCA和豎野LDA都可以看成是數據降維的一種方式。但是PCA是無監督的,也就是說不需要知道sample對應的label,早纖局而LDA是監督的,需要知道每一個數據點對應的label。下面分別解釋PCA和LDA的基本原理
相陸讓同點:
不同點:
3. 主成分分析(PCA)
在前面我們學習了一種有監督的降維方法——線性判別分析(Linear Dscriminant Analysis,LDA)。LDA不僅是一種數據壓縮方法還是一種分類演算法,LDA將一個高維空間中的數據投影到一個低維空間中去,通過最小化投影後各個類別的類內方差和類間均值差來尋找最佳的投影空間。
本文介紹的主成分分析(Principe Component Analysis,PCA)也是一種降維技術,與LDA不同的是,PCA是一種無監督降維技術,因此PCA的主要思想也與LDA不同。LDA是一種有監督的分類兼降維技術,因此其最大化均值差最小化類內差的思想夠保證在降維後各個類別依然能夠很好地分開。但PCA只用來降維而無需分類,因此PCA需要考慮的是如何在降維壓縮數據後盡可能的減少數據信息的損失。在PCA中使用協方差來表示信息量的多少,至於為什麼能這么表示後面再進行介紹。下面我們從一些基本的線代知識開始。
在進行數據分析時我們的數據樣本經常被抽象為矩陣中的一組向量,了解一些線代基礎知識理解PCA非常重要,但在這里我們並不準備也不可能將所有的線代知識都羅列以便,因此這里我們僅會復習一些對理解PCA較為重要的東西。更多線代的內容可參考下面幾個鏈接:
為了方便,我們這里以一個二維平面為例。
在前面我們說了,在數據處理時我們經常講一個樣本數據當作一個向量。在二維平面中,一個向量從不同的角度有不同的理解方式,例如對於向量消散 (-2, 3) T :
在我們描述任何東西的時候其實都是選擇了一個參照系的,也即事物都是相對的,最簡單的運動與靜止(以靜止的事物為參照),說一個有點意思的——人,人其實也是放在一個參考系中的,我們可以將其理解為生物種類系統,拋開這個大的系統去獨立的定義人是很難讓人理解的。向量也是這樣的,雖然我們前面拿頃氏沒有指明,但是上面的向量其實是在一個默認坐標系(或稱為空間)中的,也即x,y軸,但是在線性代數中我們稱其為基。在線代中任何空間都是由一組線性無關的(一維空間由一個基組成)基向量組成。這些基向量可以組成空間中的任何向量。
現在假設我們有如下一個矩陣相乘的式子:
因此,上面的例子可以有兩種理解方式:
(1)如果我們將值全為1對角方陣視為標准坐標系,則它表示在乎啟 i=(1, -2) T 和 j=(3, 0) T 這組基底下的坐標 (-1, 2) T 在基底 (1, 0) T 、(0, 1) T 下的坐標,如下:
當我們討論向量 (-1, 2) T 時,都隱含了一個默認的基向量假設:沿著x軸方向長度為1的 i,沿著y軸長度為1的j。
但是,(-1, 2) T 可以是任何一組基底下的向量。例如,他可能是i'=(2,1) T , j'=(-1, 1) T 這組基下的一個向量。此時他在我們默認坐標系 i=(1, 0) T ,j=(0, 1) T 下的計算過程如下:
我們可以從另一個角度理解基地變換的過程:我們先 誤認為 (-1, 2) T 是坐標系i=(1, 0) T ,j=(0, 1) T 下的坐標,此時我們通過線性變換[[2, -1], [1, 1]](每個嵌套列表看做一行)把坐標軸i,j(基坐標)分別變換到了新的位置 i1=(2, 1) T , j1=(-1, 1) T (他們也是用默認坐標系表示的),即[2, -1], [1, 1]]。此時我們把「誤解」轉換成了真正的向量。如下:
在上面我們說了矩陣是一種變換,現在我們繼續從這個角度來理解特徵值和特徵向量。為了方便理解,我們在這里做一個類比——將變換看作物理中的作用力。我們知道一個力必須有速度和方向,而矩陣對一個向量施加的變換也是一樣的。考慮一下特徵向量的定義:
上面介紹了一些基本的線性代數相關的知識,下面開始介紹PCA的原理。
上面我們討論了選擇不同的基可以對同樣一組數據給出不同的表示,而且如果基的數量少於向量本身的維數,則可以達到降維的效果。但是我們還沒有回答一個最最關鍵的問題:如何選擇基才是最優的。或者說,如果我們有一組N維向量,現在要將其降到K維(K小於N),那麼我們應該如何選擇K個基才能最大程度保留原有的信息?
要完全數學化這個問題非常繁雜,這里我們用一種非形式化的直觀方法來看這個問題。
為了避免過於抽象的討論,我們仍以一個具體的例子展開。假設我們的數據由五條記錄組成,將它們表示成矩陣形式:
其中每一列為一條數據記錄,而一行為一個欄位。為了後續處理方便,我們首先將每個欄位內所有值都減去欄位均值,其結果是將每個欄位都變為均值為0(這樣做的道理和好處後面會看到)。中心化的數據為:
通過上一節對基變換的討論我們知道,這個問題實際上是要在二維平面中選擇一個方向,將所有數據都投影到這個方向所在直線上,用投影值表示原始記錄。這是一個實際的二維降到一維的問題。
那麼如何選擇這個方向(或者說基)才能盡量保留最多的原始信息呢?一種直觀的看法是:希望投影後的投影值盡可能分散。
以上圖為例,可以看出如果向x軸投影,那麼最左邊的兩個點會重疊在一起,中間的兩個點也會重疊在一起,於是本身四個各不相同的二維點投影後只剩下兩個不同的值了,這是一種嚴重的信息丟失,同理,如果向y軸投影最上面的兩個點和分布在x軸上的兩個點也會重疊。所以看來x和y軸都不是最好的投影選擇。我們直觀目測,如果向通過第一象限和第三象限的斜線投影,則五個點在投影後還是可以區分的。
下面,我們用數學方法表述這個問題。
對於上面二維降成一維的問題來說,找到那個使得方差最大的方向就可以了。不過對於更高維,還有一個問題需要解決。考慮三維降到二維問題。與之前相同,首先我們希望找到一個方向使得投影後方差最大,這樣就完成了第一個方向的選擇,繼而我們選擇第二個投影方向。
如果我們還是單純只選擇方差最大的方向,很明顯,這個方向與第一個方向應該是「幾乎重合在一起」,顯然這樣的維度是沒有用的,因此,應該有其他約束條件。 從直觀上說,讓兩個欄位盡可能表示更多的原始信息,我們是不希望它們之間存在(線性)相關性的,因為相關性意味著兩個欄位不是完全獨立,必然存在重復表示的信息。
可以看到,在欄位均值為0的情況下,兩個欄位的協方差簡潔的表示為其內積除以元素數m。
當協方差為0時,表示兩個欄位完全獨立。為了讓協方差為0,我們選擇第二個基時只能在與第一個基正交的方向上選擇。因此最終選擇的兩個方向一定是正交的。
至此,我們得到了降維問題的優化目標: 將一組N維向量降為K維(K大於0,小於N),其目標是選擇K個單位(模為1)正交基,使得原始數據變換到這組基上後,各欄位兩兩間協方差為0,而欄位的方差則盡可能大(在正交的約束下,取最大的K個方差)。
上面我們導出了優化目標,但是這個目標似乎不能直接作為操作指南(或者說演算法),因為它只說要什麼,但根本沒有說怎麼做。所以我們要繼續在數學上研究計算方案。
我們看到,最終要達到的目的與欄位內方差及欄位間協方差有密切關系。因此我們希望能將兩者統一表示,仔細觀察發現,兩者均可以表示為內積的形式,而內積又與矩陣相乘密切相關。於是我們來了靈感:
假設我們只有a和b兩個欄位,那麼我們將它們按行組成矩陣X:
然後我們用X乘以X的轉置,並乘上系數1/m:
根據矩陣相乘的運演算法則,這個結論很容易被推廣到一般情況:
設我們有m個n維數據記錄,將其按列排成n乘m的矩陣X,設C=1/m(XX T ),則C是一個對稱矩陣,其對角線分別個各個欄位的方差,而第i行j列和j行i列元素相同,表示i和j兩個欄位的協方差。
根據上述推導,我們發現要達到優化目前,等價於將協方差矩陣對角化:即除對角線外的其它元素化為0,並且在對角線上將元素按大小從上到下排列,這樣我們就達到了優化目的 。這樣說可能還不是很明晰,我們進一步看下原矩陣與基變換後矩陣協方差矩陣的關系:
設原始數據矩陣X對應的協方差矩陣為C,而P是一組基按行組成的矩陣,設Y=PX,則Y為P對X做基變換後的數據。設Y的協方差矩陣為D,我們推導一下D與C的關系:
現在所有焦點都聚焦在了協方差矩陣對角化問題上,有時,我們真應該感謝數學家的先行,因為矩陣對角化在線性代數領域已經屬於被玩爛了的東西,所以這在數學上根本不是問題。
由上文知道,協方差矩陣C是一個是對稱矩陣,在線性代數上,實對稱矩陣有一系列非常好的性質:
1)實對稱矩陣不同特徵值對應的特徵向量必然正交。
2)設特徵向量λ重數為r,則必然存在r個線性無關的特徵向量對應於λ,因此可以將這r個特徵向量單位正交化。
則對協方差矩陣C有如下結論:
以上結論不再給出嚴格的數學證明,對證明感興趣的朋友可以參考線性代數書籍關於「實對稱矩陣對角化」的內容。
到這里,我們發現我們已經找到了需要的矩陣P:P = E T .
P是協方差矩陣的特徵向量單位化後按行排列出的矩陣,其中每一行都是C的一個特徵向量。如果設P按照Λ中特徵值的從大到小,將特徵向量從上到下排列,則用P的前K行組成的矩陣乘以原始數據矩陣X,就得到了我們需要的降維後的數據矩陣Y。
PCA的特徵向量的求解除了使用上述最大化方差的矩陣分解方法,還可以使用最小化損失法,具體可參見: 機器學習中的數學(4)-線性判別分析(LDA), 主成分分析(PCA) 。
總結一下PCA的演算法步驟:
設有m條n維數據。
LDA和PCA都用於降維,兩者有很多相同,也有很多不同的地方,因此值得好好的比較一下兩者的降維異同點。
首先我們看看相同點:
我們接著看看不同點:
參考:
PCA的數學原理
線性代數的直覺
線性判別分析LDA原理總結
4. pca是監督還是非監督
非監督。pca只涉及一組特徵變數,沒有關聯的響應消絕變數,是一種非拿陵姿監督學習演算法,可壓汪友縮數據,減小內存、硬碟空間的消耗。
5. 常用降維方法之PCA 和 LDA
PCA本質上是將方差最大的方向作為主要特徵,並且在各個正交方向上將數據「離相關」,也就是讓它們在不同正交方向上沒有相關性。而方差最大的那個維度是主成分。
PCA是比較常見的線性降維方法,通過線性投影將高維數據映射到低維數據中,所期望的是在投影的維度上,新特徵自身的方差盡量大,方差越大特徵越有效,盡量使產生的新特徵間的相關性越小。
PCA演算法的具體操作為對所有的樣本進行中心化操作,計算樣本的協方差矩陣,然後對協方差矩陣做特徵值分解,取最大的n個特徵值對應的特徵向量構造投影矩陣。
再舉個栗子:
下面舉一個簡單的例子,說明PCA的過程。
假設我們的數據集有10個二維數據(2.5,2.4), (0.5,0.7), (2.2,2.9), (1.9,2.2), (3.1,3.0), (2.3, 2.7), (2, 1.6), (1, 1.1), (1.5, 1.6), (1.1, 0.9),需要用PCA降到1維特徵。
首先我們對樣本中心化,這里樣本的均值為(1.81, 1.91),所有的樣本減去這個均值向量後,即中心化後的數據集為(0.69, 0.49), (-1.31, -1.21), (0.39, 0.99), (0.09, 0.29), (1.29, 1.09), (0.49, 0.79), (0.19, -0.31), (-0.81, -0.81), (-0.31, -0.31), (-0.71, -1.01)。
現在我們開始求樣本的協方差矩陣,由於我們是二維的,則協方差矩陣為:
對於我們的數據,求出協方差矩陣為:
求出特徵值為(0.0490833989, 1.28402771),對應的特徵向量分別為:
由於最大的k=1個特徵值為1.28402771,對於的k=1個特徵向量為 則我們的W=
我們對所有的數據集進行投影 得到PCA降維後的10個一維數據集為:(-0.827970186, 1.77758033, -0.992197494, -0.274210416, -1.67580142, -0.912949103, 0.0991094375, 1.14457216, 0.438046137, 1.22382056)
在上面的PCA演算法中,我們假設存在一個線性的超平面,可以讓我們對數據進行投影。但是有些時候,數據不是線性的,不能直接進行PCA降維。這里就需要用到和支持向量機一樣的核函數的思想,先把數據集從n維映射到線性可分的高維N>n,然後再從N維降維到一個低維度n', 這里的維度之間滿足n'<n<N。
使用了核函數的主成分分析一般稱之為核主成分分析(Kernelized PCA, 以下簡稱KPCA。假設高維空間的數據是由n維空間的數據通過映射ϕ產生。
則對於n維空間的特徵分解:
映射為:
通過在高維空間進行協方差矩陣的特徵值分解,然後用和PCA一樣的方法進行降維。一般來說,映射ϕ不用顯式的計算,而是在需要計算的時候通過核函數完成。由於KPCA需要核函數的運算,因此它的計算量要比PCA大很多。
這里對PCA演算法做一個總結。作為一個非監督學習的降維方法,它只需要特徵值分解,就可以對數據進行壓縮,去噪。因此在實際場景應用很廣泛。為了克服PCA的一些缺點,出現了很多PCA的變種,比如第六節的為解決非線性降維的KPCA,還有解決內存限制的增量PCA方法Incremental PCA,以及解決稀疏數據降維的PCA方法Sparse PCA等。
PCA演算法的主要優點有:
LDA(線性判別分析,Linear Discriminant Analysis)是另一種常用的降維方法,它是有監督的。LDA在模式識別領域(比如人臉識別,艦艇識別等圖形圖像識別領域)中有非常廣泛的應用,因此我們有必要了解下它的演算法原理。這里需要注意的是,此處的LDA與文本主題模型中的LDA(隱含狄利克雷分布,Latent Dirichlet Allocation)並不相同,他是一種處理文檔的主題模型。
LDA是一種監督學習的降維技術,也就是說它的數據集的每個樣本是有類別輸出的。這點和PCA不同。PCA是不考慮樣本類別輸出的無監督降維技術。
LDA的思想可以用一句話概括,就是「投影後類內方差最小,類間方差最大」。
什麼意思呢? 我們要將數據在低維度上進行投影,投影後希望每一種類別數據的投影點盡可能的接近,而不同類別的數據的類別中心之間的距離盡可能的大。
可能還是有點抽象,我們先看看最簡單的情況。假設我們有兩類數據 分別為紅色和藍色,如下圖所示,這些數據特徵是二維的,我們希望將這些數據投影到一維的一條直線,讓每一種類別數據的投影點盡可能的接近,而紅色和藍色數據中心之間的距離盡可能的大。
以上就是使用LDA進行降維的演算法流程。實際上LDA除了可以用於降維以外,還可以用於分類。一個常見的LDA分類基本思想是假設各個類別的樣本數據符合高斯分布,這樣利用LDA進行投影後,可以利用極大似然估計計算各個類別投影數據的均值和方差,進而得到該類別高斯分布的概率密度函數。當一個新的樣本到來後,我們可以將它投影,然後將投影後的樣本特徵分別帶入各個類別的高斯分布概率密度函數,計算它屬於這個類別的概率,最大的概率對應的類別即為預測類別。
LDA用於降維,和PCA有很多相同,也有很多不同的地方,因此值得好好的比較一下兩者的降維異同點。
這點可以從下圖形象的看出,在某些數據分布下LDA比PCA降維較優。
當然,某些某些數據分布下PCA比LDA降維較優,如下圖所示:
LDA演算法既可以用來降維,又可以用來分類,但是目前來說,主要還是用於降維。在我們進行圖像識別圖像識別相關的數據分析時,LDA是一個有力的工具。下面總結下LDA演算法的優缺點。
LDA演算法的主要優點有:
參考文章: 劉建平老師的博客園
6. 有監督和無監督的演算法分別有哪些
有監督學習演算法:
聚類分析(Cluster Analysis)
關聯規則挖掘(Association Rule Mining)
主成分分析(Principal Component Analysis,PCA)
獨立成分分析(Independent Component Analysis,ICA)
降維(Dimensionality Rection)
奇異值分解(Singular Value Decomposition,SVD)
非負矩陣分解(Non-negative Matrix Factorization,NMF)
概率圖模型(Probabilistic Graphical Models)
7. pca演算法指的是什麼
PCA(principle component analysis),即主成分分析法,是一個非監督的機器學習演算法,是一種用於探索高維數據結構的技術,主要用於對數據的降維,通過降維可以發現更便於人理解的特徵,加快對樣本有價值信息的處理速度,此外還可以應用於可視化(降到二維)和去噪。
PCA與LDA演算法的基本思想
數據從原陸豎慎來的坐標系轉換到新的坐標系,新坐標系的選擇是由數據本身決定的。第一個新坐標軸選擇的是原始數據中方差最大的方向,第二個新坐標軸選擇和第一個坐標軸正交且具有最大方差的方向。該過程一直重復,重復次數為原始數據早敬中特徵的數目。我們會發現,大部分方差都包含在最前面的幾個新坐標軸中。因此,我們可以忽略餘下的坐標軸,纖頌即對數據進行降維處理。
8. 有監督學習和無監督學習演算法怎麼理解
在判斷是有監督學習還是在無監督學習上,我們可以具體是否有監督(supervised),就看輸入數據是否有標簽(label)。輸入數據有標簽,則為有監督學習,沒標簽則為無監督學習。
什麼是學習(learning)?
一個成語就可概括:舉一反三。機器學習的思路有點類似高考一套套做模擬試題,從而熟悉各種題型,能夠面對陌生的問題時算出答案。
簡而言之,機器學習就是看能不能利用一些訓練數據(已經做過的題),使機器能夠利用它們(解題方法)分析未知數據(高考題目),而這種根據類別未知(沒有被標記)的訓練樣本解決模式識別中的各種問題,稱之為無監督學習。
常用的無監督學習演算法主要有三種:聚類、離散點檢測和降維,包括主成分分析方法PCA等,等距映射方法、局部線性嵌入方法、拉普拉斯特徵映射方法、黑塞局部線性嵌入方法和局部切空間排列方法等。
從原理上來說,PCA等數據降維演算法同樣適用於深度學習,但是這些數據降維方法復雜度較高,所以現在深度學習中採用的無監督學習方法通常採用較為簡單的演算法和直觀的評價標准。比如無監督學習中最常用且典型方法聚類。
在無監督學習中,我們需要將一系列無標簽的訓練數據,輸入到一個演算法中,然後我們告訴這個演算法,快去為我們找找這個數據的內在結構給定數據。這時就需要某種演算法幫助我們尋找一種結構。
監督學習(supervised learning),是從給定的有標注的訓練數據集中學習出一個函數(模型參數),當新的數據到來時可以根據這個函數預測結果。 常見任務包括分類與回歸。
無監督學習方法在尋找數據集中的規律性,這種規律性並不一定要達到劃分數據集的目的,也就是說不一定要「分類」。比如,一組顏色各異的積木,它可以按形狀為維度來分類,也可以按顏色為維度來分類。(這一點比監督學習方法的用途要廣。如分析一堆數據的主分量,或分析數據集有什麼特點都可以歸於無監督學習方法的范疇) ,而有監督學習則是通過已經有的有標簽的數據集去訓練得到一個最優模型。
9. PCA和LDA
PCA是無監督的降維,降維後方差盡可能的大;
LDA是有監督的降維,希望分類後組內方差小,組間方差大;
聚類,降維;
原有的d維數據轉化為k維數據(d>k),新生成的k維數據盡可能多的包含原來d為數據的信息。
讓樣本帶鎮的均值為0;
方便後去求取協方差矩陣;
這並不屬於數據預處理,因為數據預處理是對每一個蠢盯粗特徵維度進行處理的,而去中心化是針對每一個樣本,這是PCA所必須的過程。
為什麼要去中心化
方差:單個隨機變數的離散程度;
協方差:兩個隨機變數的相似程度。
方差和協方差的一些區別
偏差是估計值與真實值之間的差距。
方差是描述預測值的變化范圍,離散程度。
計算協方差矩陣
尋找一個線性變換u,使uX,即降維後的新數據方差最大。
這里可以令u的模長為1.
根絕拉格朗日優化後可知,S=λ;
那麼最大化投影方差就是最大化原數據的協方差矩陣的特徵值。
最佳的投影方向就是最大特徵值對應的特徵向量。
選取特徵值的特徵向量組成投影矩陣U=[u1,u2,...,uk]。
UX即為投影後新樣本則粗。
由於PCA是基於歐氏距離,因此對於線性不可分數據無能為力。
所以提出kernel PCA 。
分類,降維。
希望降維後類間距離最大,類內距離最小。
引入兩個定義,類間散度Sb和類內散度Sw。
在計算類間散度和類內散度的時候用到了類別信息,所以LDA是有監督的降維。