Github项目推荐 | entity_embeddings_categorical:基于Keras的实体嵌入工具库

2019-05-08 17:48:31 浏览数 (1)

使用带有Keras的神经网络将实体嵌入到分类变量上的即插即用库

by Rodrigo Bresan

概述

本项目旨在利用Keras框架,通过神经网络对实体嵌入进行预处理、训练和提取。注意:项目还在建设中,所以请谨慎使用。

项目地址:

https://github.com/bresan/entity_embeddings_categorical

安装

如果您的计算机上已经安装了virtualenv,那么安装过程会非常简单。前提是不依赖VirtualEnv官方文档。

代码语言:javascript复制
pip install entity-embeddings-categorical

文档

除了文档字符串,有关文档的主要内容可以在这里找到

测试

该项目旨在满足大多数现有需求,因此可测试性是一个主要问题。 大多数代码都经过了严格的测试,Travis作为持续集成工具,一旦有新的提交就会运行所有的单元测试。

用法

本实用程序库的用法有两种模式提供:default(默认)和custom(自定义)。 在默认配置中,可以执行以下操作:回归、二进制分类和多类分类。

如果你的数据类型与这些数据类型不同,你可以随意使用自定义模式,你可以在其中定义与目标处理和神经网络输出相关的大多数配置。

默认模式

默认模式的使用非常简单,你只需要给配置对象提供一些参数:

因此,为了创建一个从文件sales_last_semester.csv读取的简单嵌入网络,其中目标名称为total_sales,所需输出为二进制分类,训练比率为0.9,我们的Python脚本如下所示:

代码语言:javascript复制
config = Config.make_default_config(csv_path='sales_last_semester.csv', 
                                           target_name='total_sales',
                                           target_type=TargetType.BINARY_CLASSIFICATION,
                                           train_ratio=0.9)


    embedder = Embedder(config)
    embedder.perform_embedding()

看起来很简单,对吧?

你可以这里可以找到默认模式的工作示例Python脚本

自定义模式

如果你打算自定义神经网络的输出甚至是目标变量的处理方式,则需要在创建配置对象时指定这些。 这可以通过创建从 TargetProcessorModelAssembler 扩展的类来完成。

你可以在这里找到自定义配置模式的工作示例

可视化

完成模型训练后,可以使用模块 visualization_utils 从生成的权重中创建一些可视化操作。

以下是为Rossmann数据集创建的一些示例:

故障排除

如果项目有任何问题,或者有其他问题,请不要犹豫,在GitHub项目的issue板块上进行留言。

0 人点赞