归纳逻辑编程中的多值子句与依赖概念学习
1. 多值子句的引入与实现
当属性(分类属性和/或数值属性)的值数量显著增加时,假设可能会包含大量规则,这使得这些假设难以解释。创建多值子句可以帮助归纳逻辑编程(ILP)算法创建更小的假设,从而解决这一问题。
1.1 多值子句的创建步骤
- 创建值的子集 :对给定文字的所有值集合进行二元分割。对于分类值集合 (C = {v1, …, vm}),得到两个不相交的子集 (C1) 和 (C2),使得 (C1 ∩ C2 = ϕ)。对于数值值,找到分割点 (d),将值集合分为小于等于 (d) 和大于 (d) 的两个子集。
- 创建多值子句 :使用值的子集创建多值子句。对于分类属性,每个值子集在适当的文字中声明,而不是单个值。对于数值属性,根据分割点创建两个子句,分别表示小于等于 (d) 和大于 (d) 的值。
- 修改背景知识 :将多值子句添加到背景知识中。
- 学习 :ILP 算法使用新信息,新子句的文字可用于 ILP 搜索。
graph LR
A[创建值的子集] --> B[创建多值子句]
B --> C[修改背景知识]
C --> D[学习]
1.2 示例
以判断图形是否为四边形为例,目标文字是 class (
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



