無監督機器學習算法:主成分分析

2020-11-20 邊際實驗室

之前我們曾經講過,無監督學習是一種不使用標記數據(無目標變量)的機器學習。因此,算法的任務是在數據本身中尋找模式。無監督機器學習算法的兩種主要類型分別是使用主成分分析的降維算法和聚類算法(包括K-Means和層次聚類算法)。下面將依次介紹這些內容。

主成分分析

降維是一種重要的無監督學習方法,在實踐中得到了廣泛的應用。當數據集中有許多特徵時,可視化地表示數據或將模型擬合到數據中可能會變得非常複雜。在這種情況下,可能需要降維。降維的目的是通過一組更小的特徵來表示具有許多(通常存在相關性)特徵的數據集,這些特徵仍然可以很好地描述數據。

主成分分析(PCA)是一種最常見降維統計方法。PCA將高度相關的多個數據特徵減少到幾個主要的、不相關的複合變量。複合變量是將兩個或多個在統計上緊密相關的變量組合在一起的變量。PCA涉及到特徵的協方差矩陣的變換,在這裡會有兩個關鍵的概念:特徵向量和特徵值。特徵向量定義了新的、相互不相關的複合變量,它們是原始特徵的線性組合。

作為一個向量,一個特徵向量也代表著一個方向。與每個特徵向量相關的是一個特徵值。一個特徵值給出了初始數據中總方差的比例,該比例由每個特徵向量來解釋。PCA算法根據特徵值將特徵向量從高到低排序——也就是說,根據它們在解釋初始數據的總方差方面的有用性程度排序。主成分分析選擇解釋數據集中變化比例最大的特徵向量(特徵值最大的特徵向量)作為第一個主成分。第二主成分解釋了在第一主成分之後的下一個最大的方差比例;接著是第三、第四和其後的主要成分。由於主成分是初始特徵集的線性組合,通常只需要幾個主成分就可以解釋初始特徵協方差矩陣中大部分的總方差。

下表顯示了一個具有三個特徵的假設數據集,因此它是沿著x、y和z軸在三維空間中繪製的。每個數據點都有一個測量值(x、y、z)。首先我們將數據進行標準化,以便每個系列(x、y、z)的均值為0,標準偏差為1。假設我們通過PCA,得出了前兩個主成分,PC1和PC2。對於PC1,每個數據點到PC1的垂線距離表示投影誤差,平行於PC1方向上的每個數據點之間的距離表示數據沿PC1的變化或延伸。PCA算法通過選擇所有數據點的投影誤差之和最小,所有數據點之間的距離之和最大的直線來找到PC1。

作為結果,PC1是唯一的向量,它在初始數據的方差中佔了最大比例。剩下的方差中,第二大部分由PC2來解釋,它與PC1成直角,因此與PC1不存在相關關係。現在,數據點由前兩個主成分表示。這個例子演示了PCA算法在降維方面的有效性

了解需要保留多少主成分非常重要,我們需要在複雜數據集的維度數量、信息丟失程度之間進行權衡。碎石圖(Scree plots),顯示了每個主成分解釋的數據中總方差的比例。在實踐中,應該保留的主成分的最小數量可以根據碎石圖判斷,一般要求所有主成分解釋初始數據總方差的85%到95%。

案例 DLC 500和VLC 30股票指數收益的主成分分析碎石圖

在本案例中,研究人員使用碎石圖發現,三個主成分足以解釋過去10年期間DLC 500和VLC 30股票指數的回報率。DLC 500是涵蓋所有行業大盤股的多元化指數,VLC 30則是30家最大的上市公司的指數。數據集包括指數價格和2000多種特徵。特徵之間的多重共線性是最重要的幹擾因素,因為許多特徵或特徵組合往往存在著重疊問題。為了解決這個問題,我們使用PCA來捕獲數據中的信息和差異。下面的碎石圖顯示,在生成的20個主成分中,前3個主成分共解釋了DLC 500和VLC 30指數的90%和86%的方差。從碎石圖可以看出,在第5個主成分之後,解釋數據方差的增量貢獻都很小。因此,這些不太有用的主成分可以被忽略,不會丟失太多信息。

主成分分析的缺點是,由於主成分是數據集的初始特徵的組合,它們不能被分析人員輕鬆地解釋。與已經被定義好的變量數據相比,PCA的結果可能會被視為「黑箱」。

即使處理只有10個左右特徵的數據集時,將特徵的數量減少到最相關的幾個也非常有用。另外,降維有助於在二維或三維空間中可視化地表示數據。

主成分分析通常作為數據分析的一部分執行,然後用來訓練另一個監督或非監督學習模型。這樣,機器學習模型訓練的速度更快,傾向於減少過擬合的情況。

本文由「邊際實驗室」原創,轉載請務必註明出處。如果喜歡本文,請點轉發讓更多人看到。

原創不易,感謝您的支持!

更多原創文章:

有監督學習算法介紹:K近鄰與決策樹(分類與回歸樹)懲罰回歸算法與支持向量機有監督學習中防止過擬合的方法算法的性能評估及過擬合

相關焦點

  • 主成分分析(PCA)在R 及 Python中的實戰指南
    統計技術,比如,因子分析,主成分分析有助於解決這樣的困難。在本文中,我詳細地解釋了主成分分析的概念。我一直保持說明簡要而詳實。為了操作上的理解,我也演示了在R使用這個技術並帶有解釋。注意:要理解本文的內容,需要有統計學的知識。 什麼是主成分分析?
  • PCA主成分分析
    這就有了PCA的最初思想,PCA是principal components analysis首字母的縮寫,中文名字叫主成分分析,顧名思義是對所有變量分清主次然後把主要成分抽取出來從而達到降維的效果,同時考慮降維的會帶來哪些好處,又會帶來哪些後果。
  • 深度學習和機器學習的線性代數入門
    正規方程的轉置矩陣和逆矩陣線性方程向量範數L1範數/Manhattan範數L2範數/Euclidean範數ML中的正則化Lasso嶺特徵選擇與抽取協方差矩陣特徵值與特徵向量正交性正交集擴張空間基主成分分析
  • 機器學習算法工程師必讀經典暢銷書推薦
    打開APP 機器學習算法工程師必讀經典暢銷書推薦 深度學習自然語言 發表於 2020-12-26 09:38:23 它就是美團機器學習實踐,該書系統闡述了美團算法工程師的完整工作流程,結合真實場景實踐教學。
  • 統計學最常用的「數據分析方法」清單(二)
    缺點 在主成分分析中,我們首先應保證所提取的前幾個主成分的累計貢獻率達到一個較高的水平(即變量降維後的信息量須保持在一個較高水平上),其次對這些被提取的主成分必須都能夠給出符合實際背景和意義的解釋(否則主成分將空有信息量而無實際含義)。
  • 五大維度揭秘機器學習技術「附下載...
    但一般來說,我們會按照訓練樣本提供的信息以及反饋方式的不同,將機器學習算法分為監督學習、無監督學習和強化學習。▲機器學習分類1980 年機器學習作為一支獨立的力量登上了歷史舞臺。在這之後的 10 年裡出現了一些重要的方法和理論,典型的代表是:分類與回歸樹(CART, 1984) 、 反向傳播算(1986)、卷積神經網絡(1989)。
  • MIT博士生、北大校友,利用自監督算法,解決數據集中常見難題
    這是目前最優的長尾分類算法。但這些,在樣本極端失衡的情況下也沒法用,如果真的只有幾個樣本,模型的性能差異就無法避免。關鍵在於,究竟該怎麼理解這裡面的「不均衡」?「不均衡」標籤的內在價值那些本身就不平衡的數據標籤,會不會具有什麼價值?研究發現,這些不平衡的數據標籤,就像是一把「雙刃劍」。
  • 利用Python進行數據分析(三):數據預處理與建模分析
    0.前言本系列主要是利用Python進行數據採集、清洗、預處理和利用機器學習算法對數據進行建模分析,幫助建立數據分析的流程,理解機器學習算法的應用方法。由於金融數據是相對而言較為方便獲取的數據,數據類型豐富,此系列以金融數據為例,進行案例分析。
  • 威斯康辛大學《機器學習導論》2020秋季課程完結,課件、視頻資源已...
    課程總共由七個部分組成:第一部分:簡介L01:什麼是機器學習1.1 課程概述:「Stat 451:機器學習導論(FS 2020)」的簡介1.2 什麼是機器學習:機器學習的定義,以及機器學習與編程的關係1.3 機器學習的類別:討論了機器學習的三大類
  • 劉鐵巖談機器學習:隨波逐流的太多,我們需要反思
    其基本思想是用一個機器學習算法去自動地指導另一個機器學習算法的訓練過程。但是我們必須要承認,元學習其實並沒有走出機器學習的基本框架。更有趣的問題是,如何能夠讓一個機器學習算法去幫助另一個算法突破機器學習的現有邊界,讓機器學習的效果更好呢?這都是我們需要去回答的問題。沿著這些挑戰,在過去的這幾年裡,微軟亞洲研究院做了一些非常有探索性的學術研究。
  • 【Python機器學習】系列之線性回歸篇【深度詳細】
    緊接著,介紹多項式回歸分析(polynomial regression問題),一種具有非線性關係的多元線性回歸問題。最後,介紹如果訓練模型獲取目標函數最小化的參數值。在研究一個大數據集問題之前,先從一個小問題開始學習建立模型和學習算法    假設你想計算匹薩的價格。
  • 95後哈佛小哥撰寫《從零開始的機器學習》,入門必備,書籍資源已開放
    機器之心報導作者:蛋醬、小舟機器學習怎麼入門最簡單?今年剛剛從哈佛大學統計專業畢業的 Danny Friedman 寫了一本「轉專業學生專用教材」,無基礎也可輕鬆入門,資源現已全部開放。
  • 機器學習中的忒修斯之船:那些「愚弄」專家的著名悖論
    在機器學習的背景下,許多無監督學習算法會從不同的訓練數據集中進行推算,但是結果綜合起來會產生矛盾。理解準確性悖論的更簡單方法是,在機器學習模型中找到準確率和召回率之間的平衡。在機器學習算法中,準確率常被定義為測量正類的預測的哪個部分是有效的,它由(真陽性/真陽性+假陽性)確定。此外,召回率指標衡量預測實際捕獲正類的頻率,它由(真陽性/真陽性+假陰性)表示。
  • 最好的Python機器學習庫
    豐富的ML庫:目前有大量面向Python的機器學習庫。你可以根據你的使用情況、技術和需求從數百個庫中選擇最合適的一個。上面最後一點可以說是最重要的。驅動機器學習的算法相當複雜,包括了很多的數學知識,所以自己動手去實現它們(並保證其正常運行)將會是一件很困難的任務。幸運地是,有很多聰明的、有奉獻精神的人為我們做了這個困難的工作,因此我們只需要專注於手邊的應用程式即可。
  • bioRixv:單細胞分析和機器學習確定了COVID-19的主要靶點
    專門研究單細胞技術的Van Dijk利用先進的算法來開發工作假設。圖片來源:Blausen Medical"機器學習允許我們產生假設。這是一種不同的科學研究方法。我們用儘可能少的假設。測量我們能測量的所有東西,算法向我們呈現假設。"
  • 人工智慧的本質是一串算法?美國「愛奇藝」優化AI算法多賺10億!
    AI的基礎是「算法」,即計算機遵循的一組規則或指令。機器學習(ML)可以定義為「無需依賴基於規則的編程即可從數據中進行學習的算法」。網際網路基於算法運行,所有在線搜索均通過算法完成。藉助算法,電子郵件知道發去哪裡。
  • 資料|世界著名計算機教材精選:數據挖掘十大算法(中文版)
    :數據挖掘十大算法》詳細介紹了在實際中用途最廣、影響最大的十種數據挖掘算法,這十種算法是數據挖掘領域的頂級專家進行投票篩選的,覆蓋了分類、聚類、統計學習、關聯分析和連結分析等重要的數據挖掘研究和發展主題。
  • 阿里雲機器學習算法(三):K近鄰(k-nearest neighbors)初探
    由於KNN模型具有很好的解釋性,一般情況下對於簡單的機器學習問題,我們可以使用KNN作為 Baseline,對於每一個預測結果,我們可以很好的進行解釋。推薦系統的中,也有著KNN的影子。例如文章推薦系統中, 對於一個用戶A,我們可以把和A最相近的k個用戶,瀏覽過的文章推送給A。機器學習領域中,數據往往很重要,有句話叫做:"數據決定任務的上限, 模型的目標是無限接近這個上限"。