導讀:本文來自於KDnuggets所做的十大算法調查,對於數據工程師常用的算法進行排名,並對其在2011-2016年間的變化進行介紹。
基於調查,KDnuggets總結出了數據科學家最常使用的十大算法,它們分別是:
1. Regression 回歸算法
2. Clustering 聚類算法
3. Decision Trees/Rules 決策樹
4. Visualization 可視化
5. k-Nearest Neighbor 鄰近算法
6. PCA (Principal Component Analysis) 主成分分析算法
7. Statistics 統計算法
8. Random Forests 隨機森林算法
9. Time series/Sequence 時間序列
10. Text Mining 文本挖掘
其中,受訪者表示平均使用了8.1個算法,相比2011年類似的調查大幅提高了。
與2011年的類似調查對比我們發現最流行的算法還是回歸算法、聚類算法、決策樹和可視化。相對來說最大的增長是由 (pct2016 /pct2011 – 1) 測定的以下算法:
- 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%
- 異常/偏差檢測,從 2011 年的 16.4% 至 2016 年的 19.5%,同比增長 19%
- 集成方法,從 2011 年的 28.3%至 2016 年的 33.6%,同比增長 19%
- 支持向量機,從 2011 年的 28.6% 至 2016 年的 33.6%,同比增長 18%
- 回歸算法,從 2011 年的 57.9% 至 2016 年的 67.1%,同比增長 16%
另外,2016年最流行的新算法分別是:
- K-近鄰,46%
- 主成分分析,43%
- 隨機森林算法,38%
- 優化,24%
- 神經網絡 – 深度學習,19%
- 奇異值分解,16%
下降最多的分別是:
- 關聯規則,從 2011 年的 28.6% 至 2016 年的 15.3%,同比下降 47%
- 增量模型,從 2011 年的 4.8% 至 2016 年的 3.1%,同比下降 36%
- 因素分析,從 2011 年的 18.6% 至 2016 年的 14.2%,同比下降 24%
- 生存分析,從 2011 年的 9.3% 至 2016 年的 7.9%,同比下降 15%
我們注意到幾乎所有人都在使用監督學習算法。
政府和工業界數據科學家比學生或者學術研究院使用更多不同的算法,而且工業界數據科學家更傾向於使用元算法。
下面,我們繼續通過雇員的類型來分析最流行的10個算法和深度學習。
為了讓這些差異更容易觀看,我們針對特定雇員類型相關的平均算法使用量設計了一個算法。
Bias(Alg,Type)=Usage(Alg,Type)/Usage(Alg,All) – 1.
我們注意到:
- 工業界數據科學家更傾向於使用回歸算法、可視化、統計算法、隨機森林算法以及時間序列
- 政府/非盈利組織更傾向於使用可視化、主成分分析算以及時間序列
- 學術界研究人員更傾向於使用主成分分析算法和深度學習
- 學生一般使用的算法較少,但是它們會做更多的文本挖掘以及深度學習
另外,參與投票的讀者主要來自於
- 美國/加拿大, 40%
- 歐洲, 32%
- 亞洲, 18%
- 拉丁美洲, 5.0%
- 非洲/中東, 3.4%
- 澳大利亞/新西蘭, 2.2%
在 2011 年的調查中,我們將產業/政府分在了同一組,將學術研究人員/學生分在了第二組,另外通過算法對於業界/政府的“親切度”進行了計算:
N(Alg,Ind_Gov) / N(Alg,Aca_Stu)
——————————- – 1
N(Ind_Gov) / N(Aca_Stu)
親切度為 0 的算法表示其在產業/政府和學術研究人員/學生之間的使用情況對等。IG親切度越高表示該算法越被產業界普遍使用,反之越“學術”。
其中,最“產業”的算法是:
- 增量模型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
下圖是所有算法以及它們在產業界/學術界的親切度:
數據科學家最常使用的算法 工業界 vs 學術界
匯總表格中各項含義分別是:
- N:根據使用度排名
- Algorithm:算法名稱,
- 類型:S – 監督,U – 無監督,M – 元,Z – 其他,
- %指代調查中使用這種算法的調查者比例
- Change—變動(%2016 年/2011% – 1),
- Industry Affinity—產業親切度(前文中提到)