一个函数搞定并行,为Pandas提速!为我Kaggle摘银

栏目: 数据库 · 发布时间: 6年前

内容简介:作者:Rahul Agarwal

一个函数搞定并行,为Pandas提速!为我Kaggle摘银

标星★公众号      爱你们

作者:Rahul Agarwal

编译:公众号海外部

近期原创文章:

♥  基于无监督学习的期权定价异常检测(代码+数据)

♥  5种机器学习算法在预测股价的应用(代码+数据)

♥  深入研读:利用Twitter情绪去预测股市

♥  Two Sigma用新闻来预测股价走势,带你吊打Kaggle

  利用深度学习最新前沿预测股价走势

♥  一位数据科学PhD眼中的算法交易

♥  基于RNN和LSTM的股市预测方法

♥  人工智能『AI』应用算法交易,7个必踩的坑!

♥  神经网络在算法交易上的应用系列(一)

♥  预测股市 | 如何避免p-Hacking,为什么你要看涨?

♥  如何鉴别那些用深度学习预测股价的花哨模型?

♥  优化强化学习Q-learning算法进行股市

我们有一张巨大的Pandas Dataframe,想要对其应用一个复杂的函数,这需要很多时间。

在本文章中,使用Kaggle上Quora虚假问题分类数据,我们需要创建一些数值特征,比如长度、标点的数量等。

一个函数搞定并行,为Pandas提速!为我Kaggle摘银

https://www.kaggle.com/c/quora-insincere-questions-classification/overview

首先简单介绍一下:在这次比赛中,我们必须开发出能够识别和标记虚假问题的模型。 不仅是对性能的测试,而且是对高效代码编写技能的测试 。由于这是一场Kaggle内核比赛,外部数据选项有限,所以参赛者只能使用比赛组织者提供的词嵌入向量(WordEmbedding)。这意味着我们不能使用像BERT这样的先进模型。而且我们所有的模型都必须在2小时内完成运行。花费太多预处理时间会对整个比赛不利!

小知识: 词嵌入向量(WordEmbedding)是NLP里面一个重要的概念,我们可以利用WordEmbedding将一个单词转换成固定长度的向量表示,从而便于进行数学处理。

我们可以使用并行来提高代码的性能吗?

是的,我们可以!

只使用一个函数!

只使用一个函数并行化

首先,我要定义一个函数来创建我们的特征。 add_features 是我们希望应用于数据的函数。

一个函数搞定并行,为Pandas提速!为我Kaggle摘银

我们可以使用下面的函数进行并行计算。

一个函数搞定并行,为Pandas提速!为我Kaggle摘银

这段代码有什么作用? 它将Dataframe分解为n_core部分,并产生n_cores个进程,此进程将该函数应用于所有部分。

一旦它将该函数应用于所有拆分后的Dataframe,它就会将拆分后的Dataframe连接起来,并将完整的Dataframe返回给我们。

如何使用它?

那是相当简单滴!

有用吗?

为了检查这个并行函数的性能,在Kaggle内核中的Jupyter notebook 上运行了 %%timeit magic。

一个函数搞定并行,为Pandas提速!为我Kaggle摘银

vs

只使用函数本身

一个函数搞定并行,为Pandas提速!为我Kaggle摘银

正如大家所看到的,我们通过使用并行化函数获得了一些性能。它使用的是一个只有2个CPU的Kaggle内核。

在实际的比赛中,需要进行大量的计算,而我们使用的add_features函数要复杂得多。这种并行化的功能极大地帮助我们缩短数据处理时间!

并行化并不是什么灵丹妙药,而是一颗霰弹。

它不会解决你所有的问题,你仍然需要优化更多的功能,但它是你武器库中一个很好的工具。

时间很宝贵,有时我们会觉得时间不够用。在这些时候,我们应该能够轻松地使用并行化。

MATLAB EXPO 2019 微信直播

免费!免费!免费!

一个函数搞定并行,为Pandas提速!为我Kaggle摘银

—End—

量化投资与机器学习微信公众号,是业内垂直于 Quant MFE CST 等专业的主流量化自媒体。公众号拥有来自 公募、私募、券商、银行、海外 等众多圈内 10W+ 关注者。每日发布行业前沿研究成果和最新资讯。

一个函数搞定并行,为Pandas提速!为我Kaggle摘银


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro JavaScript Design Patterns

Pro JavaScript Design Patterns

Dustin Diaz、Ross Harmes / Apress / 2007-12-16 / USD 44.99

As a web developer, you’ll already know that JavaScript™ is a powerful language, allowing you to add an impressive array of dynamic functionality to otherwise static web sites. But there is more power......一起来看看 《Pro JavaScript Design Patterns》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具