使用带有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脚本。
自定义模式
如果你打算自定义神经网络的输出甚至是目标变量的处理方式,则需要在创建配置对象时指定这些。 这可以通过创建从 TargetProcessor 和 ModelAssembler 扩展的类来完成。
你可以在这里找到自定义配置模式的工作示例。
可视化
完成模型训练后,可以使用模块 visualization_utils 从生成的权重中创建一些可视化操作。
以下是为Rossmann数据集创建的一些示例:
故障排除
如果项目有任何问题,或者有其他问题,请不要犹豫,在GitHub项目的issue板块上进行留言。