数据科学中最常用的十种算法

  • A+
所属分类:数据科学 机器学习

最新一期的 KDnuggets 调查展示了一份数据科学家使用度最高的算法列表,这份列表中包含了很多惊喜,包括最学术的算法和面向产业化的算法。

哪些方法/算法是您在过去 12 个月中运用到一个实际的数据科学相关的应用程序中的?

这是基于 844 个投票者的结果

排名前十的算法以及他们的投票者的比例分布如下:

数据科学中最常用的十种算法

图 1 :数据科学家使用度最高的 10 大算法

文末有全部算法的集合列表

每个受访者平均使用 8.1 个算法,这相比于 2011 的相似调查显示的结果有了巨大的增长

与 2011 年关于数据分析/数据挖掘的调查相比,我们注意到最常用的方法仍然是回归、聚类、决策树/Rules 和可视化。相对来说最大的增长是由 (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%

下表显示了不同的算法类型的使用:监督算法、无监督算法、元算法,以及职业类型决定的对算法的使用。我们排除 NA(4.5%)和其他(3%)的职业类型。

职业类型 % 投票者比例 平均算法使用个数 % 监督算法使用度 % 无监督算法使用度 % 元使用度 %其他方法使用度
1 产业 59% 8.4 94% 81% 55% 83%
2 政府/非营利机构 4.10% 9.5 91% 89% 49% 89%
3 学生 16% 8.1 94% 76% 47% 77%
4 学术界 12% 7.2 95% 81% 44% 77%
5 整体 8.3 94% 82% 48% 81%

表 1:根据职业类型显示的不同算法使用度

我们注意到,几乎每个人都使用监督学习算法。

政府和产业业数据科学家比学生和学术研究人员使用更多不同类型的算法,而产业数据科学家们更倾向于使用元算法。

接下来,我们根据职业类型分析了前 10 名的算法+深度学习使用情况。

算法 产业 政府/非盈利机构 学术界 学生 整体
1 回归 71% 63% 51% 64% 67%
2 聚类 58% 63% 51% 58% 57%
3 决策 59% 63% 38% 57% 55%
4 可视化 55% 71% 28% 47% 49%
5 K-近邻法 46% 54% 48% 47% 46%
6 主成分分析 43% 57% 48% 40% 43%
7 统计 47% 49% 37% 36% 43%
8 随机森林 40% 40% 29% 36% 38%
9 时间序列 42% 54% 26% 24% 37%
10 文本挖掘 36% 40% 33% 38% 36%
11 深度学习 18% 9% 24% 19% 19%

表 2:根据职业类型分类的 10 大算法+深度学习使用情况

为了更明显的看到差异,我们计算了具体职业分类相比于平均算法使用度的一个算法偏差,即偏差(ALG,类型)=使用(ALG,类型)/使用(ALG,所有的)

数据科学中最常用的十种算法

图 2:职业对算法的使用偏好

我们注意到,产业数据科学家们更倾向于使用回归、可视化、统计、随机森林和时间序列。政府/非营利更倾向于使用可视化、主成分分析和时间序列。学术研究人员更倾向于使用主成分分析和深度学习。学生普遍使用更少的算法,但多为文本挖掘和深度学习。

接下来,我们看看某一具体地域的参与度,表示整体的 KDnuggets 的用户:

  • 美国/加拿大,40%
  • 欧洲,32%
  • 亚洲,18%
  • 拉丁美洲,5%
  • 非洲/中东,3.4%
  • 澳洲/新西兰,2.2%

由于在 2011 年的调查中,我们将产业/政府分在了一组,而将学术研究/学生分在了第二组,并计算了算法对于业界/政府的亲切度:

N(Alg,Ind_Gov) / N(Alg,Aca_Stu)

——————————- – 1

N(Ind_Gov) / N(Aca_Stu)

因此亲切度为 0 的算法表示它在产业/政府和学术研究人员或学生之间的使用情况对等。越高 IG 亲切度表示算法越被产业界普遍使用,反之越接近「学术」。

最「产业」的算法是:

  • 异常检测,1.61
  • 生存分析,1.39
  • 因子分析,0.83
  • 时间序列/序列,0.69
  • 关联规则,0.5

而 uplifting modeling 又是最「产业的算法」,令人惊讶的发现是,它的使用率极低 – 只有 3.1% – 是本次调查的算法中最低的。

最学术的算法是:

  • 常规神经网络,-0.35
  • 朴素贝叶斯,-0.35
  • 支持向量机,-0.24
  • 深度学习,-0.19
  • EM,-0.17

下图显示了所有的算法及其产业/学术亲切度。

数据科学中最常用的十种算法

图 3:KDnuggets 投票:最常被数据科学家使用的算法:产业界 VS 学术界

下表有关于算法的细节、两次调查中使用算法的比例、以及像上面解释的产业亲切度。

表 3:KDnuggets 2016 调查:数据科学家使用的算法

接下来的图表展示了算法的细节,按列

  • N:根据使用度排名
  • 算法:算法名称,
  • 类型:S – 监督,U – 无监督,M – 元,Z – 其他,
  • 在 2016 年调查中使用这种算法的调查者比例
  • 在 2011 年调查中使用这种算法的调查者比例
  • 变动(%2016 年/2011% – 1),
  • 产业亲切度(如上所述)
N 算法 类型 2016 年使用度 % 2011 年使用度 % 改变度 % 产业亲和度
1 回归 S 67% 58% 16% 0.21
2 聚类 U 57% 52% 8.70% 0.05
3 决策树/Rules S 55% 60% -7.30% 0.21
4 可视化 Z 49% 38% 27% 0.44
5 K-近邻法 S 46% 0.32
6 主成分分析 U 43% 0.02
7 统计 Z 43% 48% -11% 1.39
8 随机森林 S 38% 0.22
9 时间序列/序列分析 Z 37% 30% 25% 0.69
10 文本挖掘 Z 36% 28% 29.80% 0.01
11 组合方法 M 34% 28% 18.90% -0.17
12 支持向量机 S 34% 29% 17.60% -0.24
13 Boosting M 33% 23% 40% 0.24
14 常规神经网络 S 24% 27% -10.50% -0.35
15 最优化 Z 24% 0.07
16 朴素贝叶斯 S 24% 22% 8.90% -0.02
17 Bagging M 22% 20% 8.80% 0.02
18 偏差检测 Z 20% 16% 19% 1.61
19 神经网络-深度学习 S 19% -0.35
20 奇异值分解 U 16% 0.29
21 关联规则 Z 15% 29% -47% 0.5
22 图/连接/社会网络分析 Z 15% 14% 8% -0.08
23 因素分析 U 14% 19% -23.80% 0.14
24 贝叶斯网络 S 13% -0.1
25 遗传算法 Z 8.80% 9.30% -6% 0.83
26 生存分析 Z 7.90% 9.30% -14.90% -0.15
27 最大期望 U 6.60% -0.19
28 其他方法 Z 4.60% -0.06
29 Uplift modeling S 3.10% 4.80% -36.10% 2.01

表 4:KDnuggets 2016 调查:数据科学家使用的算法

编译:机器之心

参与:Terrence L、李亚洲

原文链接: 深度 | KDnuggets 官方调查:数据科学家最常用的十种算法

基于大数据的用户特征分析
R语言实战(中文完整版)
MySQL必知必会
小额消费信贷用户数据

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: