使用机器学习技术构建预测模型时,进行探索性数据分析(EDA)有什么意义?可以直接进入特征生成并构建模型吗?EDA中使用的描述性统计如何重要?
使用机器学习技术构建预测模型时,进行探索性数据分析(EDA)有什么意义?可以直接进入特征生成并构建模型吗?EDA中使用的描述性统计如何重要?
Answers:
不久前,我有一个数据科学职位的面试任务。给了我一个数据集,并要求我建立一个预测模型来预测给定其他变量的某个二进制变量,时间限制为几个小时。
我依次研究了每个变量,将它们绘制成图表,计算汇总统计信息等。我还计算了数字变量之间的相关性。
我发现的东西包括:
我的观点是,这些是故意放置的,以查看人们在尝试建立模型之前是否会注意到它们。该公司之所以加入它们,是因为它们是现实生活中可能发生的事情,并且会严重影响模型性能。
因此,是的,EDA在进行机器学习时很重要!
显然是的。
数据分析可能会导致您在很多方面会损害您的预测模型:
假设我们正在谈论定量数据,则必须决定是要忽略该列(如果缺少太多数据)还是要弄清楚“默认”值(均值,模式,等等)是什么。您必须先浏览数据才能做到这一点。
假设你有,这是非常强烈的相关性,但有你的数据的2%,也就是数据的方式关闭此相关。您可能希望完全删除此数据,以帮助您建立预测模型
好的,这与我先前的观点有点矛盾,但是英语不是我的主要语言,所以希望您能理解。
我将以一个愚蠢的示例为例,假设您分析了一个足球场的数据集,并且将其Width, Length, Area
作为参数。好吧,我们可以轻松地想象这三个参数将高度相关。您的栏之间的相关性过多会使预测模型指向错误的方向。您可能决定刷新一个或多个参数。
我将以小型的Titanic Kaggle“竞争”为例。查看这些人的姓名时,您可能会发现可以提取Title
该人的特征。事实证明,此功能在建模方面非常重要,但是如果您不先分析数据就可能会错过它。
您可能会决定对连续数据进行分类,因为它感觉更合适,或者将连续特征转变为分类特征。
我现在无法绘制图,但是让我们做一个简单的例子。
假设您有一个带有一个功能列和一个二进制(仅0或1)“结果”列的小型模型。您要为此数据集创建预测性分类模型。
再次作为示例,如果要绘制它(soo,分析数据),则可能会意识到该图围绕1值形成了一个完美的圆。在这种情况下,很明显可以使用多项式分类器来建立一个很好的模型,而不用直接跳到DNN。(很明显,考虑到我的示例中只有两列,这并不是一个很好的示例,但是您明白了)
总体而言,如果您不先查看数据,就不能指望预测模型会表现良好。
EDA所做的一件重要事情是发现数据输入错误和其他异常点。
另一个是变量的分布会影响您尝试拟合的模型。
我们以前在化学上有一句话:
“ 在实验室花费了两个星期,可以为您节省Scifinder两个小时的时间 ”。
我确信机器学习也是如此:
“ 花了两个星期训练神经网络可以为您节省2个小时查看输入数据的时间 ”。
这些是我开始任何ML处理之前要经历的事情。
除了这些基本步骤,在将ML流程应用于数据之前,我不会花太多时间查看数据。如果您已经拥有大量变量,则不仅很难找到它们,而且很难绘制和理解它们的复杂非线性组合。这是计算机最好处理的事情。
除了建模阶段的错误外,在没有先进行EDA的情况下尝试进行预测有以下三种可能的结果:
解决数据问题可能需要大量时间和精力。例如:
您越早发现此类问题,就越有可能使您的项目步入正轨,准时完成并让客户满意。
[descriptive-statistics]
标记,最后一个问题是描述性统计数据是否重要。在这种情况下,当您提到EDA时,您只是意味着计算各种描述性统计信息,还是询问有关描述性统计信息和EDA的问题?我之所以这么问,是因为很多人(包括我在内)都将EDA视为不仅仅是描述性统计数据。