在“資料為王”的今天,越來越多的人對資料科學產生了興趣。資料科學家離不開演算法的使用,那麼,資料科學家最常用的演算法,都是哪些呢?最近,著名的資料探勘資訊網站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

  為了使差異更為醒目,我們計算特定行業型別相關的平均演算法使用量設計演算法為Bias(Alg,Type)=Usage(Alg,Type)/Usage(Alg,All)-1。

圖2:按行業的演算法使用偏差

  我們注意到產業界資料科學家更傾向使用迴歸演算法、視覺化、統計演算法、隨機森林演算法和時間序列。政府/非盈利組織更傾向使用視覺化、主成分分析和時間序列。學術研究人員更傾向使用主成分分析和深度學習。學生通常使用演算法較少,但他們用的更多的是文字挖掘和深度學習。

接下來,我們看看代表整體KDnuggets訪客的地區參與情況。

參與投票者的地區分佈如下:

北美,40%

歐洲,32%

亞洲8%

拉美,5.0%

非洲/中東,3.4%

澳洲/紐西蘭,2.2%

與2011年的調查一樣,我們將產業/政府合併為同一個組,將學術研究人員/學生合併為第二組,並計算演算法對產業/ 政府的“親切度”:

  親切度為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

雖然增量建模又一次成為最“產業”的演算法,但出乎意料的是它的使用率如此低:區區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:產業親切度(上文已提到)

 

 
來源:大資料雜談  作者:劉志勇