将基于“属性值”的训练集调整为基于“属性值比较”的训练集。
对样本集进行学习,就是设法找出含逻辑变量的公式(集)。
FOIL算法
前面15.6 一阶逻辑公式及“分拆”我们知道,一阶规则通过引入变量,将规则“公式”化。
现在,将离散属性“变量化”为可比较的,假定属性的值是可以“比较”大小的,如:
属性“色泽”的值域为
{
“乌黑”
,
“青绿”
,
“浅白”
}
\{\text{“乌黑”},\text{“青绿”},\text{“浅白”}\}
{“乌黑”,“青绿”,“浅白”}
定义:“色泽”的深度关系为
“乌黑”
>
“青绿”
>
“浅白”
\text{“乌黑”}>\text{“青绿”}>\text{“浅白”}
“乌黑”>“青绿”>“浅白”。
由此,可以将基于“属性值”的训练集调整为基于“属性值比较”的训练集,如,【西瓜书表4.1】变为【西瓜书表15.1】,其特点:
- 对样本进行了编号;
- 对每个属性的值进行两两比较,形成一个该属性的比较矩阵,如,【西瓜书表15.1】的第1至第4行为属性“色泽”形成的(注:无(2,3)是由于2与3的色泽一样而省略,无(2,4)是由于4属于测试集,参见【西瓜书表4.2p.80】),所有属性的比较矩阵构成“背景知识”;
- 对分类也转化为样例的“比较”,如,【西瓜书表15.1】的下半部分,其中,“更好(1,10)”表示1号瓜比10号瓜更好;
样本编号代表样本的个体,视为逻辑变量的取值,这样就可以在规则中使用逻辑变量了,对样本集进行学习,就是设法找出含逻辑变量的公式(集)。
FOIL是著名的一阶规则学习算法,步骤如下:
(i) 初始化: 更好 ( X , Y ) ← \text{更好}(\mathit{X},\mathit{Y})\leftarrow 更好(X,Y)←
(ii) 列候选文字:
( a ) (a) (a) 至少包含一个已出现的变量;
( b ) (b) (b) 其他谓词,如,色泽更深、敲声更沉等;
( a ) (a) (a)与 ( b ) (b) (b)的所有组合都是候选文字,如,【西瓜书p.356最后一段】所示。
(iii) 选择文字:增加某文字后,则应有“FOIL增益”,比较各候选文字的“FOIL增益【西瓜书式(15.3)】”,最大者当选。
(iv) 继续增加规则体的长度(参照15.1 命题规则),形成规则集后,再进行后剪枝优化。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:15.6 一阶逻辑公式及“分拆”
下一篇:15.8 三种蕴涵(你会区分么?)