機器學習新人包之10種演算法圖解在這裡!!本篇:(下)非監督式學習篇
二、非監督式學習
1. 隨機森林(Random Forest)
隨機森林可以視為決策樹的延伸,可以把隨機森林當作是多個決策樹組合而成,並加入隨機分配的訓練資料,以大幅增進最終的運算結果。其想法就是結合多個「弱學習器」(即決策樹)來建構一個「強學習器」模型。這種方法被稱為「集成」(Ensemble Method)。同時也能降低單個決策樹出錯的風險。隨機森林的優點為可以處理大量的輸入變數,同時可以計算各例中的親近度,對於資料探勘、偵測離群點和將資料視覺化非常有用。
2. 聚類分析(Cluster analysis)
聚類分析是統計資料分析的技術,後來在如機器學習等領域受到廣泛應用。「聚類」是把相似的物件通過靜態分類,分成不同的組別或子集(subset)。聚類有很多種方法,常見的如 K-means、層次聚類(Hierarchical clustering)、譜聚類(Spectral Clustering)等等。3. 主成分分析(Principal Component Analysis,PCA)
主成分分析 PCA 是一個在機器學習與統計學領域中被廣泛用來分析資料、降低數據維度以及去關聯的線性降維方法。降維(Dimension reduction)是當資料維度數(變數)很多的時候,嘗試讓維度數(變數)少一點,但資料特性不會差太多的方法。機器學習使用 PCA 達到降維的目的,主要是為了避免「維數災難」,或稱「維度詛咒」,指當維度增加時,分析和組織高維空間因體積指數增加而遇到各種問題:在機器學習問題中,模型預測能力會隨著維度的增加而減小。
4. 奇異值分解(Singular Value Decomposition,SVD)
奇異值分解 SVD 是線性代數中一種重要的矩陣分解,不光可以用於降維演算法中的特徵分解,還可以用於推薦系統以及自然語言處理等領域。SVD 在某些時候可以做為簡化版的 PCA 利用。PCA 演算法可以不用做特徵分解,而是做 SVD 來完成,在樣本量很大的時候很有效。實際上 Python 的免費機器學習庫「scikit-learn」的 PCA 演算法的背後真正的實現就是用 SVD。
獨立成分分析(Independent components analysis,ICA)
ICA 是一種利用統計原理進行計算的方法。前面在主成分分析(PCA)時談到「降維」的方法,但對符合高斯分佈的樣本點比較有效,那麼對於其他分佈的樣本,則是適合用「主元分解」的 ICA。ICA 會假設現有資料其實是多個彼此獨立的資料、經過混合後成為現有資料,因此期望能夠從手中的資料,回推出是哪些獨立的分配。例如 ICA 的經典問題「雞尾酒會問題」(cocktail party problem):描述給定混合信號,如何分離出雞尾酒會中同時說話的每個人的獨立信號。
為何使用 Python 學機器學習、而不是 R 語言?
介紹完當今應用最廣泛、最熱門的幾大機器學習演算法,可以看出從數據分析、統計分析到模型驗證等等都應用在其中。Python 簡潔易學,原本就適合作為第一個入門的程式語言,而透過如 scikit-learn 的 Python 機器學習套件,在Python 中提供大量常見的機器學習演算法和許多實用的函式庫,亦能呈現該演算法資料輸出的型態,相當方便。
當然 Python和 R 語言不是互斥,許多工程師也是在兩者之間切換,但是有鑑於Python 是當今的通用語言,除了AI人工智慧領域外也可以廣泛應用在各種領域,其免費及開源的特性, 有許多支持Python 的輔助工具、大型模組與函式庫,可以簡單上手數據分析或複雜的程式計算,以及能與幾乎所有現代作業系統兼容等的特點,讓它脫穎而出。
以投資報酬率而言,若是要從頭開始選擇一種程式語言學習,Python 絕對是最佳的選擇。
推薦閱讀:Python vs R語言:哪個比較適合人工智慧/機器學習?
本篇為下篇,上篇請點此連結
相關文章:
如何使用人工智慧工具,活用 Python 簡化繁瑣的行銷工作?
六個月從工地工人轉職 Java 軟體工程師,全因半年做了「對的決定」
Python vs R語言:哪個比較適合人工智慧/機器學習?
台灣本土開發AI 發行首張音樂專輯<<武漢肺炎>>
AI地球救星!谷歌:效率比人類快3000倍(上)
想自學Python程式設計嗎?24條建議要注意!
本篇教你快速掌握Python基礎編程