無監督學習是一種根據未標注數據進行推斷的機器學習方法。無監督學習旨在識別數據中隱藏的模式和關系,無需任何監督或關于結果的先驗知識。
無監督學習的工作原理
無監督學習算法發現數據中隱藏的模式、結構和分組,而不需要任何關于結果的先驗知識。這些算法依賴未標注數據,即沒有預定義標簽的數據。
典型的無監督學習過程涉及數據準備、對其應用正確的無監督學習算法,以及最后的解釋和評估結果。這種方法特別適用于聚類(目標是將相似的數據點組合在一起)和降維(通過減少特征(維度)的數量來簡化數據)等任務。通過分析數據的固有結構,無監督學習可以更好地理解數據集。
無監督學習也可以在有監督學習之前應用,以識別探索性數據分析中的特征并基于分組建立各個類。這是特性工程的一部分,特征工程是將原始數據變換為適合有監督機器學習的特征的過程。
使用無監督學習將未標注數據組織成各個組。
無監督學習方法的類型
1)聚類
聚類是最常見的無監督學習方法,可幫助您理解數據集的自然分組或固有結構。它用于探索性數據分析、模式識別、異常檢測、圖像分割等。聚類算法(例如 k 均值或層次聚類)對數據點分組,使得同一組(或簇)中的數據點彼此之間比在其他組中的數據點更相似。
例如,如果一家移動電話公司想優化其蜂窩手機信號塔的方位布局,就可以使用機器學習來估計使用其信號塔的人群數量。一部移動電話同時間只能與一個信號塔通信,所以該團隊使用聚類算法設計蜂窩塔的最佳布局,優化其客戶群組(也可以稱之為客戶簇)的信號接收。
使用聚類找到數據中隱藏的模式。
聚類分為兩個主要類別:
硬聚類或互斥聚類,其中每個數據點僅屬于一個簇,例如常見的 k 均值方法。
軟聚類或重疊聚類,其中每個數據點可以屬于多個簇,例如在高斯混合模型中。
常見的聚類算法包括:
層次聚類通過創建聚類樹來構建一個多級聚類層次結構。
k 均值根據到簇質心的距離將數據劃分為 k 個不同簇。
高斯混合模型將簇形成為多元正態密度分量的混合。
基于密度的含噪數據空間聚類 (DBSCAN)將高密度區中臨近的點進行組合,跟蹤低密度區中的離群值。它可以處理任意非凸形狀。
自組織映射使用學習數據的拓撲和分布的神經網絡。
譜聚類將輸入數據變換為基于圖的表示形式,其中的簇比原始特征空間中的簇分離效果更好。簇的數量可以通過研究圖的特征值來估計。
隱馬爾可夫模型可用于發現序列中的模式,如生物信息學中的基因和蛋白質。
模糊 c 均值 (FCM) 將數據分成 N 個簇,數據集中的每個數據點在一定程度上都屬于每個簇。
聚類用于各種應用,例如圖像分割、異常檢測以及模式識別。
左圖:三種鳶尾花品種的幾個標本的花瓣測量值的 MATLAB 散點圖。右圖:使用高斯混合模型 (GMM) 聚類方法將花瓣測量值分割成三個簇。
2)降維
多元數據通常包含大量變量或特征。這可能會影響運行時間和內存要求。降維方法能夠減少特征(維度)的數量,同時保留原始數據的必要信息。使用無監督學習進行降維有助于降低計算負載,提高機器學習算法的速度和效率。
具有許多變量的數據的另一個固有困難是其可視化問題。降維方法可以在不丟失重要信息的情況下簡化數據,從而使可視化和分析變得更加容易。
在示例中,我們使用在五種不同活動(坐、站、走、跑和跳舞)期間通過智能手機加速度計傳感器采集的 60 個維度的人類活動數據。高維度使得這些數據難以可視化和分析。通過降維,您可以將這些維度減少到兩維或三維,而不會丟失大量信息。(https://ww2.mathworks.cn/help/stats/visualize-high-dimensional-data-using-t-sne.html)
一些常見的無監督學習降維方法有:
主成分分析 (PCA) 將數據變換為一組正交分量,以較少的變量獲取最大方差。這些新變量稱為主成分。每個主成分都是原始變量的一種線性組合。第一個主成分是空間中的單軸。當您將每個觀測值投影到該軸上時,生成的值會形成一個新變量,此變量的方差是第一個軸的所有可能選擇中的最大值。第二個主成分是空間中的另一個軸,垂直于第一個軸。將觀測值投影到此軸上會生成另一個新變量。此變量的方差是這第二個軸的所有可能選擇中的最大值。主成分的完整集合與原始變量的集合大小相同,但通常前幾個成分占原始數據總方差的 80% 以上。
t 分布隨機近鄰嵌入 (t-SNE) 非常適合可視化高維數據。它以遵守點之間相似性的方式將高維數據點嵌入到低維中。通常,您可以可視化低維點來查看原始高維數據中的自然簇。
因子分析是一種對多元數據進行模型擬合的方法,它通過識別解釋變量間觀測到的相關性的基礎因子來估計變量間的相互依賴關系。在這種無監督學習方法中,已測變量依賴數量較少的未發現(潛在)因子。由于每個因子可能共同影響幾個變量,因此稱為公因子。每個變量都假定依賴于公因子的線性組合,且系數稱為載荷。每個已測變量還包括一個由獨立隨機變異性引起的成分,稱為特定方差,因為它特定于一個變量。
自編碼器是經過訓練的用于復制其輸入數據的神經網絡。自編碼器可用于不同數據類型,包括圖像、時間序列和文本。它們在許多應用中非常有用,例如異常檢測、文本生成、圖像生成、圖像去噪以及數字通信。自編碼器通常用于降維。自編碼器由兩個較小的網絡組成:編碼器和解碼器。在訓練過程中,編碼器從輸入數據中學習一組特征,稱為潛在表示。同時,解碼器的訓練目的是基于這些特征重新構造數據。
使用自編碼器的基于圖像的異常檢測。
3)關聯規則
關聯規則學習可識別大型數據庫中變量之間的有趣關系。例如,在交易數據中,關聯規則可用于識別哪些項目最可能被用戶一起購買。關聯規則挖掘中使用的算法包括:
Apriori 算法。這種算法通過執行廣度優先搜索來識別數據中的頻繁項目集,然后從這些項目集中派生關聯規則。
等效類聚類和自下而上的格型遍歷 (ECLAT) 算法。這種算法使用深度優先搜索策略來查找頻繁項目集。
關聯規則在購物籃分析中最常見,但也可用于預測性維護。例如,基于不同傳感器的數據,可以使用算法來識別故障模式并創建規則來預測組件故障。
其他應用無監督學習的方法包括半監督學習和無監督特征排名。半監督學習可減少有監督學習中對標注數據的需求。應用于整個數據集的聚類會在標注數據和未標注數據之間建立相似性,并且標簽會傳播到先前未標注的相似簇成員。無監督特征排名在沒有給定預測目標或響應的情況下為特征分配得分。
為什么無監督學習如此重要
無監督學習是機器學習和人工智能的主要領域,它在探索和理解數據方面發揮著至關重要的作用。與依賴標注數據來訓練模型的有監督學習不同,無監督學習處理未標注數據,這使其在標注數據通常成本高、耗時或不切實際的真實場景中非常有價值。
通過揭示數據中隱藏的模式、結構和關系,無監督學習使企業和研究人員能夠獲得以前無法獲得的有意義的深入信息。無監督學習中的常見任務包括模式識別、探索性數據分析、分割、異常檢測和特征約簡。
有監督學習和無監督學習的區別
有監督學習涉及基于標注數據集訓練模型以執行分類或回歸。這意味著每個訓練示例都與一個輸出標簽配對。它使用已知的數據集(稱為訓練數據集)和已知的輸入數據(稱為特征)以及已知的響應來訓練模型以進行預測。有監督學習的一個示例是根據房間的大小和數量等特征預測房價。常見的機器學習模型有線性回歸、邏輯回歸、k 最近鄰 (KNN) 和支持向量機。深度學習模型也是用大型標注數據集訓練的,它們通常可以直接從數據中學習特征,而無需手動提取特征。
相反,無監督學習處理的是未標注數據。無監督學習算法嘗試在沒有任何先驗知識的情況下學習數據的底層結構。無監督學習的主要目標是發現輸入數據中隱藏的模式或內在結構。無監督學習的一個示例是在不知道是什么水果的情況下根據顏色、大小和味道的相似性對水果進行分組。常見的無監督學習算法包括 k 均值、層次聚類等聚類方法,以及主成分分析 (PCA) 等降維方法。
由于缺失標注數據,無監督學習結果通常不如有監督學習結果準確。然而,獲取標注數據需要人工干預,并且往往相當耗時,在某些情況下甚至無法獲得標注數據,例如對于生物數據。真實值標注還可能需要專業知識,尤其是在標注復雜信號而不是常見物體的圖像時。
有監督學習和無監督學習是機器學習的不同類型。
無監督學習的示例
無監督學習無需預定義標簽即可識別隱藏的模式和關系,這種能力使其成為各種應用中不可或缺的工具,包括:
探索性數據分析:無監督學習方法廣泛用于探索數據以揭示隱藏的內在結構,并從中提煉深入信息。例如,因子分析可用于分析同一行業內的公司是否經歷類似的每周股票價格變化。
異常檢測:無監督學習方法,如孤立森林和高斯混合模型 (GMM),用于檢測異常。
醫學成像:聚類是一種無監督學習方法,對于圖像分割非常有用。聚類算法可以應用于醫學圖像,并基于像素密度、顏色或其他特征對醫學圖像進行分割。醫生可以使用這些信息來識別感興趣區域,例如區分健康組織和腫瘤,或將大腦圖像分割成白質、灰質和腦脊液區域。
基因組學和生物信息學:遺傳聚類和序列分析在生物信息學領域也有應用。例如,聚類可用于識別基因表達譜之間的關系。
推薦系統:奇異值分解 (SVD) 等無監督學習方法用于協作過濾來分解用戶-項目交互矩陣。常見的視頻流平臺使用這種方法向個人用戶推薦內容。
自然語言處理 (NLP):在自然語言處理中,無監督學習方法用于主題建模、文檔聚類和構建 AI 語言模型等任務。
無監督學習在不同領域有不同應用。通過揭示隱藏的模式和關系,無監督學習使工程師和研究人員能夠作出明智的決策。隨著數據繼續呈指數級增長,無監督學習的重要性和影響只會繼續擴大。
使用 MATLAB 進行無監督學習
MATLAB 使您能夠創建從數據準備到模型評估和部署的無監督學習管道:
使用 Statistics and Machine Learning Toolbox,您可以對數據應用無監督學習方法(如聚類和降維)并評估模型性能。
使用 Deep Learning Toolbox,您可以通過自編碼器神經網絡執行無監督學習。
使用 MATLAB Coder,您可以生成 C/C++ 代碼以將無監督學習方法部署到各種硬件平臺。
使用 MATLAB 的擴展無監督學習工作流。
數據準備
您可以通過編程方式清洗數據,也可以使用低代碼數據清洗器和預處理文本數據實時編輯器任務進行交互式數據準備和自動代碼生成。
聚類
MATLAB 支持所有常見的聚類算法,如 k 均值、層次聚類、DBSCAN 和 GMM。使用 Fuzzy Logic Toolbox,您還可以對數據集執行模糊 c 均值聚類。
您也可以使用數據聚類實時編輯器任務以交互方式執行 k 均值和層次聚類。指定聚類算法、簇數和距離度量。該任務計算簇索引并顯示聚類數據的可視化。
使用數據聚類實時編輯器任務的 k 均值聚類。(參閱 MATLAB 文檔: https://ww2.mathworks.cn/help/stats/clusterdatatask.html。)
降維
MATLAB 支持所有常見的降維方法,包括 PCA、t-SNE 和因子分析。您可以使用內置函數將這些方法應用于您的數據。對于 PCA,您還可以使用降維實時編輯器任務以交互方式執行這些步驟。
使用實時編輯器任務進行降維。(參閱 MATLAB 文檔:https://ww2.mathworks.cn/help/stats/reducedimensionalitytask.html。)
使用 MATLAB,您還可以使用拉普拉斯分數對用于無監督學習的特征進行排名。
結果評估
您可以使用散點圖、樹狀圖和輪廓圖來可視化簇以評估聚類結果。您還可以通過使用 evalclusters 函數評估數據簇的最佳數量來評估聚類結果。要確定將數據劃分為特定數目的簇的良好程度,可以使用不同的評估標準(例如間距或輪廓)來計算索引值。
為了降維,您可以使用散點圖、碎石圖和雙標圖來檢查結果。使用降維實時編輯器任務,您可以確定解釋固定百分比數據(如 95% 或 99%)的方差所需的成分數量。
使用 t 分布隨機近鄰嵌入 (t-SNE) 將具有 60 個原始維度的高維數據的散點圖降低到二維。(請參閱 MATLAB 代碼:https://ww2.mathworks.cn/help/stats/visualize-high-dimensional-data-using-t-sne.html。)
-
matlab
+關注
關注
188文章
2995瀏覽量
233189 -
機器學習
+關注
關注
66文章
8490瀏覽量
134067 -
無監督學習
+關注
關注
1文章
17瀏覽量
2811
原文標題:什么是無監督學習?工作原理、方法類型、示例應用
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
基于半監督學習框架的識別算法
利用機器學習來捕捉內部漏洞的工具運用無監督學習方法可發現入侵者
你想要的機器學習課程筆記在這:主要討論監督學習和無監督學習
如何用Python進行無監督學習
機器學習算法中有監督和無監督學習的區別
最基礎的半監督學習
半監督學習最基礎的3個概念

評論