该库可用于生成表示为CNF/DNF的可解释分类规则。

rulelearning的Python项目详细描述


IMLI

imli是一个基于maxsat的增量学习框架,用于通过基于分区的训练方法生成可解释的分类规则。该工具基于我们在aaai/acm人工智能、道德和社会会议(aies)上发表的paper,2019年。

目录说明

目录benchmarks/包含用于实验的所有基准文件。

目录rulelearning包含测试中使用的和再现性所需的所有脚本。 在rulelearning目录中,我们添加了imli.py,这是生成可解释规则的增量学习框架。要运行imli.py,需要一个off-the-self-maxsat解算器(例如,maxhs,open wbo)位于path变量中。

pip安装

运行以下命令安装此框架。

pip install rulelearning

安装MaxSat解算器

要安装open wbo,请按照官方link中的说明进行操作。 要安装maxhs,请按照官方link中的说明进行操作。 安装完成后,在path变量中添加二进制文件的路径。

export PATH=$PATH:'/path/to/open-wbo/'

export PATH=$PATH:'/path/to/maxhs/'

其他现成的maxsat解算器也可用于此框架。

用法

在python中导入rulelearning。

import rulelearning

调用imli对象的实例。如果需要,请在imli()中指定参数。例如,为了将open-wbo设置为maxsat解算器,请传递参数solver="open-wbo"

model=rulelearning.imli()

通过调用以下函数以CSV格式离散化任何数据集。benchmarks/包含一组示例数据集。

X,y=model.discretize("benchmarks/iris_bintarget.csv")

如果数据集包含分类特征,请将此类分类特征的索引指定为参数中的列表。还要寻找其他参数选择。例如:

X,y=model.discretize("benchmarks/credit_card_clients.csv",categoricalColumnIndex=[2,3,4])

按如下方式训练模型。

model.fit(X,y)

要检索学习到的规则,请调用getRule()函数。

model.getRule()

要计算测试集上的预测,例如{XTest,yTest},请调用predict(Xtest,yTest)函数。

yhat=model.predict(XTest,yTest)

使用其他getter函数学习训练模型的各种属性。

有关详细信息,请参阅源代码。

问题、问题、错误等。

请点击顶部的“问题”和create a new issue。所有问题都会得到迅速的回应。

联系人

Bishwamittra Ghoshbishwa@comp.nus.edu.sg

如何引用

@进料{gm19,
作者{ghosh,bishwamittra和meel,kuldeep s.},
title={imli:基于maxsat的可解释分类规则增量学习框架},
书名{aaai/acm人工智能、伦理与社会会议论文集(aies)},
月={1},
年份={2019},}

旧版本

旧版本的mlic(非增量框架)在分支“mlic”下可用。请阅读旧版本的自述文件以了解如何编译代码。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java测试SpringAOP方面   java在使用groovy访问JSON字段时遇到问题   java需要但没有被调用:<Capturing argument>实际上,与这个mock没有任何交互   java在O(n)时间内遍历LinkedList并删除k个元素   java在Hibernate中执行条件查询后,是否需要提交/关闭会话?   java提供apacheshiro作为JBoss7、WildFly8的模块   使用标头读取CSV,同时忽略JAVA中的某些行   java如何验证kotlin中的数据类是否为null   java墙纸未缩放到设备的显示   java以独立于实现的方式列出所有注册的JAXRS 2提供程序   java Apache ANT Exec Handle Exec/CakePHP控制台提示   java无法从dropwizard项目中排除logbackclassic依赖项   java如何通过对象向构造函数发送日期值,以及如何返回该日期值?   java为什么使用静态记录器比不使用它花费更多的时间   JavaAndroid:解析webview的内容而不重新加载和发布   java如何仅捕获异常类型   eclipse无法从Java独立项目中的ATL EMFTVM转换中读取模块   另一个路由中的java Apache camel blueprint web服务响应