
本文來自於 KDnuggets 所做的 十大演算法調查 ,對於資料科學家常用的演算法進行排名,並對其在 2011-2016 年間的變化進行介紹。INSIDE 獲合作媒體 雷鋒網 授權轉載。
基於調查,KDnuggets 總結出了資料科學家最常使用的十大演算法,它們分別是:
- Regression 回歸法
- Clustering 聚類法
- Decision Trees/Rules 決策樹
- Visualization 視覺化
- K-Nearest Neighbor 最近鄰接法
- PCA (Principal Component Analysis) 主成分分析法
- Statistics 統計算法
- Random Forests 隨機森林法
- Time series/Sequence 時間序列
- Text Mining 文本探勘

其中,受訪者表示平均使用了 8.1 個演算法,相比 2011 年類似的調查大幅提高了。與 2011 年的類似調查比較,我們發現最流行的演算法還是回歸法、聚類法、決策樹和視覺化。相對來說最大的成長是以下演算法:
Boosting,從 2011 年的 23.5% 至 2016 年的 32.8%,成長 40%
文本探勘 ,從 2011 年的 27.7% 至 2016 年的 35.9%,成長 30%
視覺化 ,從 2011 年的 38.3% 至 2016 年的 48.7%,成長 27%
時間序列 ,從 2011 年的 29.6% 至 2016 年的 37.0%,成長 25%
異常/偏差檢測(Anomaly/Deviation detection),從 2011 年的 16.4% 至 2016 年的 19.5%,成長 19%
集成方法(Ensemble Method),從 2011 年的 28.3% 至 2016 年的 33.6%,成長 19%
支持向量機(Support Vector Machine,SVM),從 2011 年的 28.6% 至 2016 年的 33.6%,成長 18%
回歸法 ,從 2011 年的 57.9% 至 2016 年的 67.1%,成長 16%
2016 年最流行的新演算法分別是:
最近鄰接法 ,46%
主成分分析 ,43%
隨機森林法 ,38%
優化(Optimization),24%
神經網路-深度學習(Neural networks -- Deep Learning),19%
奇異值分解(Singular Value Decomposition),16%
下降最多的分別是:
關聯規則(Association rules),從 2011 年的 28.6% 至 2016 年的 15.3%,下降 47%
增量模型(Uplift modeling),從 2011 年的 4.8% 至 2016 年的 3.1%,下降 36%
因素分析(Factor Analysis),從 2011 年的 18.6% 至 2016 年的 14.2%,下降 24%
生存分析(Survival Analysis),從 2011 年的 9.3% 至 2016 年的 7.9%,下降 15%
不同領域使用的算法比例

我們注意到幾乎所有人都在使用監督學習演算法(Supervised learning)。政府和工業界資料科學家比學生或者學術研究機構使用更多不同的演算法,而且工業界資料科學家更傾向於使用共通式演算法(Meta-algorithm)。
下面,我們繼續通過僱員的類型來分析最流行的 10 個算法和深度學習。

Bias(Alg,Type)=Usage(Alg,Type)/Usage(Alg,All) -- 1.

這是一些 KDnuggets 分析之後發現的重點:
工業界資料科學家 更傾向於使用回歸法、視覺化、統計法、隨機森林法以及時間序列。
政府 / 非盈利組織 更傾向於使用視覺化、主成分分析以及時間序列
學術界研究人員 更傾向於使用主成分分析和深度學習
學生 一般使用的算法較少,但是他們會做更多的文本探勘以及深度學習
另外,參與投票的讀者主要來自於
美國/加拿大,40%
歐洲,32%
亞洲,18%
拉丁美洲,5.0%
非洲 / 中東,3.4%
澳洲 / 紐西蘭, 2.2%
在 2011 年的調查中,KDnuggets 將產業 / 政府分在了同一組,將學術研究人員 / 學生分在了第二組,另外通過算法對於業界 / 政府的“親切度”進行了計算:
N(Alg,Ind_Gov) / N(Alg,Aca_Stu)
------------------------------- -- 1
N(Ind_Gov) / N(Aca_Stu)
親切度為 0 的算法表示其在產業 / 政府和學術研究人員 / 學生之間的使用情況對等。IG(Industry/Government)親切度越高,表示該演算法越被產業界普遍使用,反之則越「學術」。
其中,最“ 產業 ”的演算法是:
增量模型 Uplift modeling,2.01
異常檢測 Anomaly Detection,1.61
生存分析 Survival Analysis,1.39
因子分析 Factor Analysis,0.83
時間序列 Time series/Sequences,0.69
關聯規則 Association Rules,0.5
其中增量模型(Uplift modeling)又一次成了最「產業」的演算法,但是令人驚訝的是其使用率卻很低,只有 3.1%,幾乎是這次調查中使用率最低的算法。
最「 學術 」的演算法是:
神經網路 Neural networks -- regular,-0.35
單純貝式 Naive Bayes,-0.35
支持向量機 SVM,-0.24
深度學習 Deep Learning,-0.19
集成方法 EM,-0.17
下圖是所有算法以及它們在產業界/學術界的親切度:

2016 數據科學家使用的算法調查匯總
匯總表格中各項含義分別是:
N:根據使用度排名
Algorithm:算法名稱,
類型:S -- 監督,U -- 無監督,M -- 元,Z -- 其他,
% 指代調查中使用這種算法的調查者比例
Change—變動(%2016 年/2011% -- 1),
Industry Affinity—產業親切度(前文中提到)
