在“資料為王”的今天,越來越多的人對資料科學產生了興趣。資料科學家離不開演算法的使用,那麼,資料科學家最常用的演算法,都是哪些呢?最近,著名的資料探勘資訊網站KDnuggets策劃了十大演算法調查,這次調查對資料科學家常用的演算法進行排名,並發現最“產業”和最“學術”的演算法,還對這些演算法在過去5年間(2011~2016)的變化,做了一番詳細的介紹。這次調查結果,是基於844名受訪者投票整理出來。
KDnuggets總結出十大演算法及其投票份額如下:
圖1:資料科學家使用的十大演算法和方法。
請參閱文末的所有演算法和方法的完整列表。
從調查中得知,受訪者平均使用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-近鄰演算法(K-nearest neighbors,KNN),46%份額
主成分分析(Principal Commponent Analysis,PCA),43%
隨機森林演算法(Random Forests,RF),38%
最優化演算法(Optimization),24%
神經網路-深度學習(Neural networks-Deep Learning),19%
奇異值矩陣分解(Singular Value Decomposition,SVD), 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%
下表顯示了不同演算法型別的用途:監督學習、無監督學習、元分析和其他演算法型別。我們排除了NA(4.5%)和其他(3%)的演算法。
表1:按行業型別的演算法使用
接下來,我們分析深度學習的十大演算法按行業型別的使用。
表2:深度學習的十大演算法按就業型別的使用
Table 2: Top 10 Algorithms + Deep Learning usage by Employment Type
圖2:按行業的演算法使用偏差
我們注意到產業界資料科學家更傾向使用迴歸演算法、視覺化、統計演算法、隨機森林演算法和時間序列。政府/非盈利組織更傾向使用視覺化、主成分分析和時間序列。學術研究人員更傾向使用主成分分析和深度學習。學生通常使用演算法較少,但他們用的更多的是文字挖掘和深度學習。
接下來,我們看看代表整體KDnuggets訪客的地區參與情況。
參與投票者的地區分佈如下:
北美,40%
歐洲,32%
亞洲8%
拉美,5.0%
非洲/中東,3.4%
澳洲/紐西蘭,2.2%
與2011年的調查一樣,我們將產業/政府合併為同一個組,將學術研究人員/學生合併為第二組,並計算演算法對產業/ 政府的“親切度”:
其中最“產業”的演算法”是:
增量建模(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
雖然增量建模又一次成為最“產業”的演算法,但出乎意料的是它的使用率如此低:區區3.1%,在這次調查中,是使用率最低的演算法。
最“學術”的演算法是:
神經網路(Neural networks – regular),-0.35
樸素貝葉斯(Naive Bayes),-0.35
支援向量機(SVM),-0.24
深度學習(Deep Learning),-0.19
最大期望演算法(EM),-0.17
下圖顯示了所有演算法以及它們在產業界/學術界的親切度:
圖3:Kdnugets調查:資料科學家使用的流行演算法:產業界vs學術界
下表包含了演算法的詳細資訊,在2016年和2011年使用它們的受訪者百分比調查,變化(%2016 /%2011 – 1)和行業親切度如上所述。
表3:KDnuggets2016調查:資料科學家使用的演算法
下表包含各個演算法的詳細資訊:
N: 根據使用度排名
Algorithm: 演算法名稱
Type:型別。S – 監督,U – 無監督,M – 元,Z – 其他,
2016 % used:2016年調查中使用該演算法的受訪者比例
2011 % used:2011年調查中使用該演算法的受訪者比例%Change:變動 (%2016 / %2011 – 1)
Industry Affinity:產業親切度(上文已提到)