gpt4 book ai didi

algorithm - ALEPH (SWI-Prolog) 中的 WARMR 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:17:24 25 4
gpt4 key购买 nike

我正在尝试使用 WARMR 在我的数据中查找频繁的关系模式;为此,我在 SWI-Prolog 中使用 ALEPH。然而,我正在努力弄清楚如何做到这一点,以及为什么我之前的尝试没有奏效。

在我继续处理我的完整数据之前,我想制作一个玩具示例。为此,我从 aleph 包页面获取了玩具“火车”数据: http://www.swi-prolog.org/pack/list?p=aleph

关于 ar 搜索的 Aleph 手册说明:

ar 实现 WARMR 系统进行的关联规则搜索类型的简化形式(参见 L. Dehaspe,1998 年,博士论文,Katholieke Universitaet Leuven)。在这里,Aleph 简单地找到至少涵盖一个预先指定的正例部分。这个分数由参数 pos_fraction 指定。

因此我已经插入了

:- set(search,ar).
:- set(pos_fraction,0.01).

进入背景文件(并删除:- set(i,2).))并删除负样本的.n文件。我还注释掉了所有的决定和 modeh 声明逻辑,因为我们正在搜索频繁的模式,而不是规则(即在监督上下文中,head 将是一个“输出”变量和 body 中的子句--“输入”试图解释输出),即这是一项无监督的任务。

现在,原始的 trains 数据集正在尝试为“东行”列车构建规则。这是通过像 car, shape, has_car(train, car) 等谓词来完成的。最初与这些相关的所有背景知识都位于在 .b 文件和 .f 文件中的五个正示例(例如 eastbound(east1).)(+ 五个负示例,例如 eastbound(west1).,在 .n 文件中)。保持文件不变(保存上述更改)并运行 induce. 不会产生合理的结果(它将返回诸如 train(east1) 之类的基本术语作为“规则” “, 例如)。我曾尝试将一些背景知识移动到 .f 文件中,但这也没有产生任何有意义的结果。

我该如何构建 .f 和 .b 文件?如果我们不是真的想解释任何正例(肯定会构成监督问题)而是要在数据中找到频繁模式(无监督问题),那么应该将什么放入正例文件?我错过了什么吗?

如有任何帮助,我们将不胜感激。

最佳答案

首先如果能用原版的WARMR我觉得更好。但我认为你需要成为一名学者才能免费使用。您可以尝试申请许可证。 https://dtai.cs.kuleuven.be/ACE/

为了获得关联规则,我把我想要的所有例子都放在 f 文件中。 n 文件中可以包含示例,或者我认为它是空的。

我唯一改变的是:

 :- set(search,ar).
:- set(pos_fraction,0.01).

在.b 文件中。保留确定和模式声明。

set(i,2) 将查询的长度限制为有两个额外的文字(我认为),因此您可能希望它更大。

?-read_all(train).归纳。

然后你会得到一个我认为是常见查询的“好条款”。

[好的子句]
东行(A)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),长(B)。
[pos cover = 2 neg cover = 0] [pos-neg] [2]
东行(A) :-
has_car(A,B),open_car(B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),形状(B,矩形)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B), wheels(B,2)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),负载(B,矩形,3)。
[pos cover = 1 neg cover = 0] [pos-neg] [1]
东行(A) :-
有车(A,B),有车(A,C)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
有车(A,B),有车(A,C)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
有车(A,B),有车(A,C)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),短(B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),关闭(B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),形状(B,矩形)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B), wheels(B,2)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B), load(B,triangle,1)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
有车(A,B),有车(A,C)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
有车(A,B),有车(A,C)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),长(B)。
[pos cover = 2 neg cover = 0] [pos-neg] [2]
东行(A) :-
has_car(A,B),open_car(B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),形状(B,矩形)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B), wheels(B,3)。
[pos cover = 3 neg cover = 0] [pos-neg] [3]
东行(A) :-
has_car(A,B), load(B,hexagon,1)。
[pos cover = 1 neg cover = 0] [pos-neg] [1]
东行(A) :-
有车(A,B),有车(A,C)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),短(B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),open_car(B)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B),形状(B,矩形)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B), wheels(B,2)。
[pos cover = 5 neg cover = 0] [pos-neg] [5]
东行(A) :-
has_car(A,B), load(B,circle,1)。
[pos cover = 3 neg cover = 0] [pos-neg] [3]
东行(A) :-
has_car(A,B),open_car(B),形状(B,矩形)。
[pos cover = 4 neg cover = 0] [pos-neg] [4]

等等等等

规则的形式为 eastbound(A):-blah blah。但它只计算东行的例子。所以把它想象成 example_covered(A):-blah blah

关于algorithm - ALEPH (SWI-Prolog) 中的 WARMR 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com