面向Kaggle和离线比赛实用工具库nyaggle解决特征工程与验证两大难题(附代码)

雷锋网 AI 开发者按:在大多数机器学习竞赛中,特诊工程的质量通常决定着整个作品的得分与排名,也是参赛者们非常看重的一部分。在 GitHub 上,作者 Nomi(专注于计算机视觉与嵌入式技术,也是 tiny-dnn 的原作者)向我们介绍了一个面向 kaggle 数据科学和离线竞赛的实用工具库 nyaggle,可供开发者专用于特征工程与验证。

在机器学习和模式识别中,特征工程的好坏将会影响整个模型的预测性能。其中特征是在观测现象中的一种独立、可测量的属性。选择信息量大、有差别性、独立的特征是模式识别、分类和回归问题的关键一步,可以帮助开发者最大限度地从原始数据中提取特征以供算法和模型使用。

返回基础验证器的前 N 个特征,该验证器打包基本验证器以迭代返回前 n 个特征:

而 nyaggle 就是一个特定于 Kaggle 和离线比赛的实用工具库,它主要作用于四个部分,即:特征工程、模型验证、模型实验以及模型融合,尤其在特征工程和模型验证方面有较强的性能。

通过参数名称获取超参数:

雷锋网 AI 开发者    雷锋网(公众号:雷锋网)

在病房,医务人员来自不同医院,互不认识。加之厚厚的防护服,根本无法辨认彼此,防护服上标记的名字,就是他们的名片。

在典型的表格数据竞赛中,开发者可能会通过交叉验证重复进行评估,并记录参数和结果以跟踪实验。

注意:如果要自定义日志记录的行为,可以在 mlflow run 上下文中调用 run_experiment;如果正在运行,则 run_experiment 将使用当前正在运行的运行,而不是创建新的运行。

如果想让 GUI 仪表板管理实验,开发者则可以通过只设置 with_mlfow = True 来将 run_experiment 与 mlflow 一起使用(需要预先安装 mlflow)。然后在与执行脚本相同的目录中,运行即可。

加载特征并返回连接的数据框架:

绘制特征重要性并写入图像:

为了更好地开展医护工作,“剪长发”成为医护人员的共识,不仅如此,在向疫情发起总攻的时刻,更成为医护人员的集结号,鼓舞前进。

之后,run_experiment API 执行交叉验证后,会将工件存储到日志目录。输出文件存储如下:

在隔离病房内,医护人员正在紧张工作。

其中,run_experiment()正是用于此类交叉验证实验的高级 API,它在指定目录下输出参数、指标、异常预测、测试预测、功能重要性和 Submitting.csv。

分品类看,疫情之下手机等机电产品、服装、玩具、鞋靴箱包等中国出口商品的主力前4个月出口额同比都有所下降,但包括口罩在内的纺织品出口额逆势上扬,达2613亿元,同比增长5.9%。

然后在与执行脚本相同的目录中,运行即可,相关结果(带有 CV 得分和参数的实验列表)可在 http:// localhost:5000 页面上查看。

报道称,内塔尼亚胡的竞选活动试图转移人们对腐败指控的关注,而他的主要挑战者前军事首长本尼•甘茨,后者试图强调这一点。他辩称,内塔尼亚胡不适合在对抗法律指控时担任总理。

加载特征作为 pandas 数据框架:

“我们坚信,一定能够战胜疫情!”

根据以色列法律,只有在被定罪后且所有上诉途径都用尽之后,现任总理才需要辞职。

nyaggle.feature 类——以特征格式管理运行系列功能

“戴好党徽,带好头;树好标杆,做榜样!”出征前,党员医护人员整理好“戎装”,向“疫”情冲锋。

前4个月,中国进出口总值9.07万亿元,同比下降4.9%,降幅比一季度收窄1.5个百分点。其中,出口下降6.4%;进口下降3.2%;贸易顺差4157亿元,减少30.4%。

内塔尼亚胡本人否认这些指控,并指责检察官和媒体进行政治迫害。

滑动窗口时间序列交叉验证器,也是时间序列交叉验证器。该验证器基于滑动窗口提供测试索引,以分割可变间隔时间序列数据。此类与 sklearn 的 BaseCrossValidator(KFold,GroupKFold 等的基类)兼容:

另一方面,以色列将在3月2日举行一年内的第三次全国大选,前两次均未能得出有结论性的结果。

通过交叉验证评估指标并将结果(日志,预测,测试预测,特征重要性图和提交文件)存储在指定目录下。过程中将使用估计器 LGBM 分类器、LGBM 回归器、CatBoost 分类器、CatBoost 回归器其中之一,具体估计器由 type_of_target(y)和 gbdt_type 根据实际情况自动调用:

时间序列交叉验证器,提供训练/测试索引以拆分可变间隔时间序列数据。此类提供了用于时间序列验证策略的低级 API。此类与 sklearn 的 BaseCrossValidator(KFold,GroupKFold 等的基类)兼容:

nyaggle.feature.category_encoder 其中,Kfold 包装器用于类似 sklearn 的界面;此类包装器的 TransformerMixIn 具有 fit / transform / fit_transform 方法的对象,并以 K 个特征方式进行调用。而对于不同分类特征的目标编码运行方式如下: 对于分类目标  将特征替换为给定特定分类值的目标后验概率与所有训练数据上目标的先验概率的混合。 对于连续目标  用给定特定分类值的目标期望值和所有训练数据上目标的期望值的混合替换特征。

其中,在特征工程方面,nyaggle 包含了 K 个特征目标编码和 BERT 句子向量化。目标编码使用的是目标变量的均值编码类别变量,为训练集中的每个分组计算目标变量的统计量,之后会合并验证集、测试集以捕捉分组和目标之间的关系。BERT 句子向量化则是对 Bert 模型的输入做一个向量化,提取词句的三维信息。

将排行榜得分记录到现有实验目录中:

通过交叉验证评估指标;同时,它还记录了异常预测和测试预测:

分国别看,中国与东盟贸易继续保持增长。1-4月,中国与东盟贸易总值1.35万亿元,同比增长5.7%,东盟继续保持中国第一大贸易伙伴地位。受疫情影响,中国与欧盟、美国、日本贸易总值均低于去年同期,其中中欧贸易下降6.5%,中美贸易下降12.8%,中日贸易下降2.1%,降幅均比一季度收窄。

进口方面,铁矿砂、原油、煤、天然气、大豆等商品进口量增加,其中原油进口量1.7亿吨,增加1.7%;煤进口量1.3亿吨,增加26.9%。(完)

它可以与 mlflow 跟踪结合使用,如果使用 LightGBM 作为模型,则代码将非常简单如下所示:

将 pandas 数据框架另存为特征格式:

雷锋网原创文章,。详情见转载须知。

目前,根据选前民调,甘茨和内塔尼亚胡均未获得明朗的竞选优势。