数据科学家是怎样提升效率的?5个技巧教给你!

数据科学家是怎样提升效率的?5个技巧教给你!

我进入数据科学领域有一年多了,在这里,我想与大家分享一些在工作过程中学到的一些我觉得有用的知识,可以帮助大家提高工作效率。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
为什么BI 对数据科学家很重要?
2021年数据科学家,最需要这7个技能!
数据科学家,知道这些统计知识就对了
Sampling 101:详解统计学中的抽样技术

希望这些建议能对你的人生有所帮助。

1 使用 Pandas 处理时间序列数据

如果你需要处理时间序列数据,那么你可能会花大量时间通过 SQL 查询或编写自定义函数来处理丢失的记录、或聚合特定时间粒度的数据。Pandas中,有一个resample 函数,可以帮助你以特定的频率处理数据,它的运行效率极高,只需将 DataFrame 索引设置为时间列。

我将使用房间入住率数据集来举例说明这个函数。你可以点击此处找到数据集。该数据集以分钟为单位记录了观察结果。

首先,我展示了一个简单的聚合,来获得以小时为单位的数据。

虽然这个数据集并不稀疏,但却经常遇到缺少记录的数据。考虑这些记录很重要,因为,如果没有记录,或使用上一个或下一个时间步骤进行插补,你可能需要输入 0 值来替换。下面,我删除了第15 小时的记录,以展示如何使用 第14 小时的数据来估算缺失值:

2 通过 Plotly Express 快速实现可视化

从分析,到模型训练,再到模型报告,可视化是不可或缺的。特别是对于时间序列图,我注意到我在 matplotlib 中花了很长时间去自定义 x 轴刻度的大小和角度。在我改用 Plotly Express 后,花费在让图表看起来更清晰的时间减少了大约 70%。如果我想在可视化中实现特定的细节,我仍然可以通过使用 Plotly Graph Objects 来实现。此外,Plotly还通过 Express 提供了许多简单的选项,例如,在图中设置成组的颜色,从而产生更强大的可视化效果。

使用上面提到的入住率数据集,通过Plotly Express,我创建了带有颜色分组的线图。我们可以看到,仅用两个函数就可以轻松创建这些图。

3 通过Swifter加速pandas apply()

即使在性能很高的笔记本上运行处理 Pandas 列,我有时也会遇到需要花费很久时间的情况。对此,只需添加一个简单的词,就可加速 Pandas DataFrame 中的应用功能。你只需导入Swifter这个library。

我创建了一个 5000 万行的 DataFrame,并比较了 swifter apply() 和 普通的vanilla apply() 处理代码所花费的时间。我还创建了一个带有简单 if else 条件的虚拟函数,来测试这两种方法。

我们能够将处理时间从 7 分 53 秒减少至 2 分 38 秒,减少了64.4%。

4 Python 中的多进程

当我们讨论降低时间复杂度的问题时,我总是会用多进程来处理多粒度下的数据集,因为python的多进程通过使用多个工作线程,可以为我节省很多时间。

同时,我使用上面创建的 5000 万行的数据框演示了多进程的有效性。但这次我添加了一个分类变量,它是从一组元音中选择的一个随机值。

我使用了来自 concurrent.futures 的 for 循环,与Process Pool Executor 来演示我们运行时减少的时间。

我创建了一个函数,用来分别处理每个元音的分组:

我们可以看到, CPU 时间减少了 99.3%。但是数据科学家也必须记住,要谨慎使用这些方法,因为数据无法序列化输出,因此,分组使用数据才能更好地利用此功能。

5 将MASE 作为指标

随着使用机器学习、深度学习方法来预测时间序列的兴起,有一点变得很重要,那就是,你使用的指标不能仅仅基于预测值和实际值之间的差距。预测模型的指标还应使用时间趋势中的误差,而不是仅用时间点误差,来评估模型的执行情况。你还需输入平均绝对比例误差(Mean Absolute Scaled Error)

这个指标考虑到了我们使用随机游走方法得到的误差,即上一个时间戳的值将用来预测下一个时间戳。它将模型的误差与朴素预测的误差进行比较。该指标还比较了模型和随机游走的误差。

如果 MASE > 1,则模型的性能比随机游走差。MASE 越接近 0,预测模型越好。

在本文中,我们介绍了我作为数据科学家经常使用的一些技巧,这些技巧使我的工作生活更轻松。评论分享你的一些技巧! 我也很想更多地了解其他数据科学家在他们的工作中使用的技巧。

感谢阅读!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Shree Vandana
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/5-things-that-make-my-job-as-a-data-scientist-easier-dc0820f0f136