在进行纯预测性建模时,探索性数据分析重要吗?


23

使用机器学习技术构建预测模型时,进行探索性数据分析(EDA)有什么意义?可以直接进入特征生成并构建模型吗?EDA中使用的描述性统计如何重要?


6
您询问有关“探索性数据分析”的问题,但您还包括[descriptive-statistics]标记,最后一个问题是描述性统计数据是否重要。在这种情况下,当您提到EDA时,您只是意味着计算各种描述性统计信息,还是询问有关描述性统计信息和EDA的问题?我之所以这么问,是因为很多人(包括我在内)都将EDA视为不仅仅是描述性统计数据。
gung-恢复莫妮卡

“特征生成”到底是什么?这不是一个探索性的过程吗?
einar,

5
最近,我得到了37个人的224次观察。当描述性分析告诉我,我有36位女士和1位男士时,我曾计划调查其他性别/性别的影响。由于这种描述性统计,我跳过了所有与性别/性别有关的分析。这对我很重要,因为描述性因素影响了我的模型构建过程。stats.stackexchange.com/questions/352015/…
Bernhard

Answers:


47

不久前,我有一个数据科学职位的面试任务。给了我一个数据集,并要求我建立一个预测模型来预测给定其他变量的某个二进制变量,时间限制为几个小时。

我依次研究了每个变量,将它们绘制成图表,计算汇总统计信息等。我还计算了数字变量之间的相关性。

我发现的东西包括:

  • 一个分类变量几乎完全符合目标。
  • 两个或三个变量丢失了一半以上的值。
  • 有两个变量具有极端的异常值。
  • 两个数值变量完全相关。
  • 等等

我的观点是,这些是故意放置的,以查看人们在尝试建立模型之前是否会注意到它们。该公司之所以加入它们,是因为它们是现实生活中可能发生的事情,并且会严重影响模型性能。

因此,是的,EDA在进行机器学习时很重要!


8
当我给学生作业时,我也经常这样做;-)。
gung-恢复莫妮卡

14

显然是的。

数据分析可能会导致您在很多方面会损害您的预测模型:

资料不完整

假设我们正在谈论定量数据,则必须决定是要忽略该列(如果缺少太多数据)还是要弄清楚“默认”值(均值,模式,等等)是什么。您必须先浏览数据才能做到这一点。

异常数据

假设你有,这是非常强烈的相关性,但有你的数据的2%,也就是数据的方式关闭此相关。您可能希望完全删除此数据,以帮助您建立预测模型

删除相关性太大的列

好的,这与我先前的观点有点矛盾,但是英语不是我的主要语言,所以希望您能理解。

我将以一个愚蠢的示例为例,假设您分析了一个足球场的数据集,并且将其Width, Length, Area作为参数。好吧,我们可以轻松地想象这三个参数将高度相关。您的栏之间的相关性过多会使预测模型指向错误的方向。您可能决定刷新一个或多个参数。

查找新功能

我将以小型的Titanic Kaggle“竞争”为例。查看这些人的姓名时,您可能会发现可以提取Title该人的特征。事实证明,此功能在建模方面非常重要,但是如果您不先分析数据就可能会错过它。

您可能会决定对连续数据进行分类,因为它感觉更合适,或者将连续特征转变为分类特征。

查找使用哪种算法

我现在无法绘制图,但是让我们做一个简单的例子。

假设您有一个带有一个功能列和一个二进制(仅0或1)“结果”列的小型模型。您要为此数据集创建预测性分类模型。

再次作为示例,如果要绘制它(soo,分析数据),则可能会意识到该图围绕1值形成了一个完美的圆。在这种情况下,很明显可以使用多项式分类器来建立一个很好的模型,而不用直接跳到DNN。(很明显,考虑到我的示例中只有两列,这并不是一个很好的示例,但是您明白了)

总体而言,如果您不先查看数据,就不能指望预测模型会表现良好。



8

我们以前在化学上有一句话:

在实验室花费了两个星期,可以为您节省Scifinder两个小时的时间 ”。

我确信机器学习也是如此:

花了两个星期训练神经网络可以为您节省2个小时查看输入数据的时间 ”。

这些是我开始任何ML处理之前要经历的事情。

  • 绘制每个(连续)变量的密度。数字如何倾斜?我是否需要对数转换以使数据有意义?离群值有多远?是否存在不具有物理或逻辑意义的值?
  • 留意NA。通常,您可以只丢弃它们,但是如果它们很多,或者它们代表了系统行为的关键方面,则可能必须找到一种重新创建数据的方法。这本身可能是一个项目。
  • 根据响应变量绘制每个变量。仅仅盯着它,您能从中得到多少意义?有明显的曲线可以拟合功能吗?
  • 首先评估您是否需要复杂的ML模型。有时,线性回归是您真正需要的。即使不是,它也可以为您的ML模型提供良好的基线拟合,以加以改进。

除了这些基本步骤,在将ML流程应用于数据之前,我不会花太多时间查看数据。如果您已经拥有大量变量,则不仅很难找到它们,而且很难绘制和理解它们的复杂非线性组合。这是计算机最好处理的事情。


6

统计角度:

除了建模阶段的错误外,在没有先进行EDA的情况下尝试进行预测有以下三种可能的结果:

  1. 预测会给出明显的废话结果,因为您的输入数据违反了预测方法的假设。现在,您必须返回并检查您的输入以找出问题所在,然后解决问题并重做分析。根据问题的性质,您甚至可能需要更改预测方法。(您是什么意思,这是一个类别变量?)
  2. 预测给出的结果很差,但不是很明显,因为您的数据以不太明显的方式违反了假设。您还是回去检查那些假设(在这种情况下,请参阅上面的#1),否则您会接受不好的结果。
  3. 幸运的是,您输入的数据恰好是您期望的(我知道这确实会偶尔发生),并且预测提供了良好的结果……这将是非常不错的,只是您无法分辨出这和#之间的区别。 2以上。

项目管理的观点:

解决数据问题可能需要大量时间和精力。例如:

  • 数据很脏,您需要花一些时间开发流程来清理它。(例如:我必须为所有在1月继续写错年份的人,在year字段中输入日期的人以及将日期解析为MM / DD / YYYY的系统编写自动更正的时间而不是DD / MM / YYYY。)
  • 您需要询问有关数据含义的问题,只有Joan可以回答。琼(Joan)将在您的项目开始两周后开始六个月的假期。
  • 数据限制使您无法交付要交付的一切商品(例如,Bernhard的例子,因为数据集只有一名女性,因此无法按性别进行分析),并且您/您的客户需要弄清楚该如何处理。

您越早发现此类问题,就越有可能使您的项目步入正轨,准时完成并让客户满意。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.