机器学习特征自动构造 Python 库

机器学习越来越多地从人工设计模型转向使用 H20、TPOT 和 auto-sklearn 等工具自动优化的工具。这些库以及随机搜索(参见《Random Search for Hyper-Parameter Optimization》)等方法旨在通过寻找匹配数据集的最优模型来简化模型选择和机器学习调优过程,而几乎不需要任何人工干预。然而,特征工程作为机器学习流程中可能最有价值的一个方面,几乎完全是人工的。

特征工程也被称为特征构造,是从现有数据中构造新的特征从而训练机器学习模型的过程。这一步可能比实际上使用的模型更重要,因为一个机器学习算法只能从我们给定的数据中学习,所以构造一个和任务相关的特征是至关重要的,参见优质论文《A Few Useful Things to Know about Machine Learning》。

通常,特征工程是一个冗长的人工过程,依赖于领域知识、直觉和数据操作。这个过程可能是极其枯燥的,同时最终得到的特征将会受到人的主观性和时间的限制。特征工程自动化旨在通过从数据集中自动构造候选特征,并从中选择最优特征用于训练来帮助数据科学家。

使用 Feature Tools Python 库将实现特征工程自动化,项目已开源。

GitHub地址项目 GitHub 地址

20G 绝地求生比赛数据集分析

项目主要分析绝地求生 72 万场比赛的数据,并结合数据给出吃鸡攻略,用数据吃鸡!

数据集说明

  • 数据来自 Kaggle
  • 数据主要分成两部分,一部分是玩家比赛的统计数据,在 aggregate.zip,一部分是玩家被击杀的数据,在 deaths.zip
  • 本次分析选取其中的两个数据集进行分析

运行环境:

  • python 3.6

需要安装的包

  • pandas、numpy、scipy
  • matplotlib、seaborn、boke

GitHub地址项目 GitHub 地址

自然语言处理最新教材开放下载

乔治亚理工大学 Jacob Eisenstein 教授开放了自然语言处理领域的最新教材《Natural Language Processing》,该教材 2018 年 6 月第一版的 PDF 已经在 GitHub 上开放下载。这本书的内容主要分为四大章节,即 NLP 中监督与无监等学习问题、序列与解析树等自然语言的建模方式、语篇语义的理解,以及后这些技术最在信息抽取、机器翻译和文本生成等具体任务中的应用。

Eisenstein 将这一本非常完善的教材称之为「Notes」,它是在乔治亚理工大学学习自然语言处理相关领域所需要了解的基础。例如在介绍自然语言处理理论与方法的课程 CS4650/7650 中,这本开放书籍就作为标准的课程教材。

CS4650/7650 2018 春季课程需要阅读 GitHub 目录下 eisenstein-nlp-notes-jan-10-2018.pdf 文件,而另外一个文件 eisenstein-nlp-notes.pdf 会包含一些章节上的更新,不过它会在整个学期内进行。Eisenstein 表示这本开放书籍也可以用于其它研究或课程,书籍上的任何误差或反馈都能直接发邮件给作者。

自然语言处理是令计算机能访问人类语言的一组方法。在过去的十年中,自然语言处理已经深入了我们的日常生活:自动机器翻译在网站和社交媒体中已经无处不在、文本分类确保了电子邮箱在海量垃圾邮件中屹立不倒、搜索引擎已经不再只是字符匹配与网络分析,它已经能理解高维度的复杂语言,还有近来对话系统的兴起也令信息的分享与交互更高效。

这些强大的应用其实都基于一套通用的思想,即利用算法、语言规则、逻辑和统计知识理解自然语言。这本书的目的是提供这些思想与技术的基础,并应用于各种实际的任务中。此外,这本书除了详细的概念与算法,同时还包括一些高阶主题,读者可按需求学习与阅读。

此前,机器之心网站做了详细的课程介绍

GitHub地址项目 GitHub 地址

伯克利发布目前最大规模开放驾驶视频数据集:BDD100K

近日,UC Berkeley 发布了迄今为止规模最大、最多样化的开放驾驶视频数据集 —— BDD100K。该数据集共包含 10 万个视频,BAIR 研究者在视频上采样关键帧,并为这些关键帧提供注释。此外,BAIR 还将在 CVPR 2018 自动驾驶 Workshop 上基于其数据举办三项挑战赛。

自动驾驶将改变每个社区的生活。然而,最近的事件表明,在自动驾驶系统部署到现实世界中后,人造感知系统如何避免错误(甚至看似明显的错误)还不得而知。BAIR 的计算机视觉研究者有兴趣探索自动驾驶感知算法的前沿,以使其更加安全。为了设计和测试潜在的算法,研究者想利用真实驾驶平台收集数据中的所有信息。这种数据有四个主要特点:大规模、多样化、在街上采集、具有时间信息。数据多样性对于测试感知算法的鲁棒性尤为重要。但是,当前的开放数据集只能覆盖上述属性的一部分。因此,在 Nexar 的帮助下,BAIR 将发布 BDD100K 数据库,这是迄今为止用于计算机视觉研究的最大、最多样化的开放驾驶视频数据集。该项目由伯克利 DeepDrive 产业联盟组织和赞助,该联盟研究计算机视觉和机器学习在汽车应用上的最新技术。

GitHub地址项目 GitHub 地址

Spark 团队开源全流程机器学习平台:MLflow

Spark 和 Mesos 的核心作者兼 Databrick 首席技术专家 Matei Zaharia 宣布推出开源机器学习平台 MLflow,这是一个能够覆盖机器学习全流程(从数据准备到模型训练到最终部署)的新平台,旨在为数据科学家构建、测试和部署机器学习模型的复杂过程做一些简化工作。Matei 表示,研究工作主要围绕着 ——

如何为开发者提供类似谷歌 TFX、Facebook FBLearner Flow 等平台类似的好处,但是要以开放的方式——不仅在开源的意义上开放,而且是可以使用任何工具和算法的意义上开放

的想法展开。

每个做过机器学习开发的人都知道机器学习的复杂性,除了软件开发中常见的问题之外,机器学习还存在很多新的挑战。作为一家大数据解决方案公司,Databricks 与数百家使用机器学习的公司合作,所以能够清楚地了解他们的痛点,比如工具太过复杂、难以跟踪实验、难以重现结果、难以部署模型。由于这些挑战的存在,机器学习开发必须变得与传统软件开发一样强大、可预测和普及。为此,很多企业已经开始构建内部机器学习平台来管理机器学习生命周期。例如,Facebook、谷歌和优步分别构建了 FBLearner Flow、TFX 和 Michelangelo 来进行数据准备、模型训练和部署。但这些内部平台存在一定的局限性:典型的机器学习平台只支持一小部分内置算法或单个机器学习库,并且被绑定在公司内部的基础设施上。用户无法轻易地使用新的机器学习库,或与社区分享他们的工作成果。

Databricks 认为应该使用一种更好的方式来管理机器学习生命周期,于是他们推出了 MLflow,一个开源的机器学习平台。MLflow 的 alpha 版本包含了三个组件:

其中,MLflow 的跟踪组件支持记录和查询实验数据,如评估度量指标和参数。MLflow 的项目组件提供了可重复运行的简单包装格式。最后,MLflow 的模型组件提供了用于管理和部署模型的工具。

GitHub地址项目 GitHub 地址

MXNet 数据可视化工具

此前,跨象乘云™ 曾经介绍过多款包括:神经网络LSTM 网络,以及 CapsNet 胶囊网络的数据可视化工具。由于深度神经网络的设计和训练非常之难,通常涉及大量的调整、修改网络结构和尝试各种优化算法和超参数。从理论角度看,深度神经网络架构的数学基础仍然不够完善,相关技术通常是以经验性的成果作为基础。

所幸的是,数据可视化与生俱来的视觉特性可以弥补上述的部分缺陷,并描绘出更高层次的图像,在深度神经网络训练过程中助研究人员一臂之力。例如,在模型训练过程中,如果可以实时地绘制出梯度数据分布,就可以快速检测并纠正消失梯度或爆炸梯度现象。

另外,对词嵌入(word embedding)向量进行可视化可以清楚地看到单词在低维空间汇聚成不同的流形,从而保持语境接近度。另一个例子是数据聚类:使用 T-SNE 算法将高维数据映射到较低维空间。在深度学习过程中可以大量使用数据可视化,以便更好地理解训练过程和数据本身。

TensorBoard 的出现为 TensorFlow 用户带来了强大的可视化功能。我们已经收到许多不同用户的反馈,包括企业用户,因为 TensorBoard 提供了丰富的功能集,所以有很多人在使用 TensorFlow。这个强大的工具可以用在其他深度学习框架上吗?感谢 TeamHG-Memex 的努力以及他们的 tensorboard_logger,我们现在可以使用一个透明的接口将自定义数据写入事件文件,然后由 TensorBoard 来读取这些文件。

它基于我们开发的 MXboard,一个用于记录 MXNet 数据帧并在 TensorBoard 中展示它们的 Python 包。可以按照这些简单的说明,来安装 MXBoard。

注意:如果要使用 MXBoard 所有的功能,需要安装 MXNet 1.2.0。在 MXNet 1.2.0 正式发布之前,请安装 MXNet 的 nightly 版本:

pip install --pre mxnet

GitHub地址项目 GitHub 地址