大資料技術學習方法論:機器學習演算法介紹概覽
機器學習這個詞是讓人疑惑的,首先它是英文名稱Machine Learning(簡稱ML)的直譯,在計算界Machine一般指計算機。這個名字使用了擬人的手法,說明了這門技術是讓機器“學習”的技術。 機器學習是一種讓計算機利用資料而不是指令來進行各種工作的方法。

在這裡還是要推薦下我自己建的 大資料學習交流群:199427210 ,群裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料軟體開發相關的),包括我自己整理的一份最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴加入。
1
監督式學習
工作機制:這個演算法由一個目標變數或結果變數(或因變數)組成。這些變數由已知的一系列預示變數(自變數)預測而來。利用這一系列變數,我們生成一個將輸入值對映到期望輸出值的函式。這個訓練過程會一直持續,直到模型在訓練資料上獲得期望的精確度。監督式學習的例子有:迴歸、決策樹、隨機森林、K – 近鄰演算法、邏輯迴歸等。
2
非監督式學習
工作機制:在這個演算法中,沒有任何目標變數或結果變數要預測或估計。這個演算法用在不同的組內聚類分析。這種分析方式被廣泛地用來細分客戶,根據干預的方式分為不同的使用者組。非監督式學習的例子有:關聯演算法和 K – 均值演算法。
3
強化學習
工作機制:這個演算法訓練機器進行決策。它是這樣工作的:機器被放在一個能讓它通過反覆試錯來訓練自己的環境中。機器從過去的經驗中進行學習,並且嘗試利用瞭解最透徹的知識作出精確的商業判斷。 強化學習的例子有馬爾可夫決策過程。

迴歸(Regression)
迴歸是在自變數和需要預測的變數之間構建一個模型,並使用迭代的方法逐漸降低預測值和真實值之間的誤差。迴歸方法是統計機器學習的一種 。
常用的迴歸演算法如下:
• Ordinary Least Squares(最小二乘法)
• Logistic Regression(邏輯斯底迴歸)
• Stepwise Regression(逐步迴歸)
• Multivariate Adaptive Regression Splines(多元自適應迴歸樣條法)
• Locally Estimated Scatterplot Smoothing(區域性加權散點平滑法)
基於樣例的方法(Instance-based Methods)
基於樣例的方法需要一個樣本庫,當新樣本出現時,在樣本庫中找到最佳匹配的若干個樣本,然後做出推測。基於樣例的方法又被成為勝者為王的方法和基於記憶體的學習,該演算法主要關注樣本之間相似度的計算方法和儲存資料的表示形式。
• k-Nearest Neighbour (kNN)
• Learning Vector Quantization (LVQ)
• Self-Organizing Map (SOM)
正則化方法(Regularization Methods)
這是一個對其他方法的延伸(通常是迴歸方法),這個延伸就是在模型上加上了一個懲罰項,相當於奧卡姆提到,對越簡單的模型越有利,有防止過擬合的作用,並且更擅長歸納。我在這裡列出它是因為它的流行和強大。
• Ridge Regression
• Least Absolute Shrinkage and Selection Operator (LASSO)
• Elastic Net
決策樹模型(Decision Tree Learning)
決策樹方法建立了一個根據資料中屬性的實際值決策的模型。決策樹用來解決歸納和迴歸問題。
• Classification and Regression Tree (CART)
• Iterative Dichotomiser 3 (ID3)
• C4.5
• Chi-squared Automatic Interaction Detection (CHAID)
• Decision Stump
• Random Forest
• Multivariate Adaptive Regression Splines (MARS)
• Gradient Boosting Machines (GBM)
貝葉斯(Bayesian)
貝葉斯方法是在解決歸類和迴歸問題中應用了貝葉斯定理的方法。
• Naive Bayes
• Averaged One-Dependence Estimators (AODE)
• Bayesian Belief Network (BBN)
核方法(Kernel Methods)
核方法中最有名的是Support Vector Machines(支援向量機)。這種方法把輸入資料對映到更高維度上,將其變得可分,使得歸類和迴歸問題更容易建模。
• Support Vector Machines (SVM)
• Radial Basis Function (RBF)
• Linear Discriminate Analysis (LDA)
聚類(Clustering Methods)
聚類本身就形容了問題和方法。聚類方法通常是由建模方式分類的比如基於中心的聚類和層次聚類。所有的聚類方法都是利用資料的內在結構來組織資料,使得每組內的點有最大的共同性。
• K-Means
• Expectation Maximisation (EM)
聯合規則學習(Association Rule Learning)
聯合規則學習是用來對資料間提取規律的方法,通過這些規律可以發現巨量多維空間資料之間的聯絡,而這些重要的聯絡可以被組織拿來使用或者盈利。
• Apriori algorithm
• Eclat algorithm
人工神經網路(Artificial Neural Networks)
受生物神經網路的結構和功能的啟發誕生的人工神經網路屬於模式匹配一類,經常被用於迴歸和分類問題,但是它存在上百個演算法和變種組成。其中有一些是經典流行的演算法(深度學習拿出來單獨講):
• Perceptron
• Back-Propagation
• Hopfield Network
• Self-Organizing Map (SOM)
• Learning Vector Quantization (LVQ)
深度學習(Deep Learning)
Deep Learning(深度學習)方法是人工神經網路在當下的一個變種。相比傳統的神經網路,它更關注更加複雜的網路構成,許多方法都是關心半監督學習,就是一個大資料集中只有少量標註資料的那種問題。
• Restricted Boltzmann Machine (RBM)
• Deep Belief Networks (DBN)
• Convolutional Network
• Stacked Auto-encoders

降維(Dimensionality Reduction)
與聚類方法類似,對資料中的固有結構進行利用,使用無監督的方法學習一種方式,該方式用更少的資訊來對資料做歸納和描述。這對於對資料進行視覺化或者簡化資料很有用,也有去除噪聲的影響,經常採用這種方法使得演算法更加高效。
• Principal Component Analysis (PCA)
• Partial Least Squares Regression (PLS)
• Sammon Mapping
• Multidimensional Scaling (MDS)
• Projection Pursuit
組合方法(Ensemble Methods)
Ensemble methods(組合方法)由許多小的模型組成,這些模型經過獨立訓練,做出獨立的結論,最後彙總起來形成最後的預測。組合方法的研究點集中在使用什麼模型以及這些模型怎麼被組合起來。
• Boosting
• Bootstrapped Aggregation (Bagging)
• AdaBoost
• Stacked Generalization (blending)
• Gradient Boosting Machines (GBM)
• Random Forest