FIND-S算法 - 简单的问题

时间:2011-04-22 15:52:40

标签: artificial-intelligence machine-learning

FIND-S算法可能是最简单的机器学习算法之一。但是,我找不到很多例子。只是标准的“晴天,下雨,玩球”的例子总是用于机器学习。请有人帮我这个应用程序(它是机器学习中的过去的考试问题)。

假设的格式为a <= x <= bc <= y <= d,其中xyx,y平面中的点,c和{{ 1}}是任何整数。基本上,这些假设定义了d空间中的矩形。

这些是培训示例,其中x,y是一个反面示例,-是一个正面示例,而对是+坐标:

x,y

我想做的就是将FIND-S应用到这个例子中!一定很简单!一些提示或解决方案都会很棒。

谢谢。

1 个答案:

答案 0 :(得分:50)

Find-S寻求适用于所有正面例子的最具限制性(即最具特定性)的假设(否定被否定)。

在您的情况下,有一个明显的图形解释:“找到包含所有'+'坐标的最小矩形”......

hypothesis space

... a = 4,b = 6,c = 3,d = 5.

执行此操作的算法将是这样的:

Define a hypothesis rectangle h[a,b,c,d], and initialise it to [-,-,-,-]
for each + example e {
    if e is not within h {
        enlarge h to be just big enough to hold e (and all previous e's)
    } else { do nothing: h already contains e }
}

如果我们通过您的训练集逐步完成此操作,我们会得到:

 0. h = [-,-,-,-] // initial value
 1. h = [4,4,4,4] // (4,4) is not in h: change h so it just contains (4,4)
 2. h = [4,5,3,4] // (5,3) is not in h, so enlarge h to fit (4,4) and (5,3)
 3. h = [4,6,3,5] // (6,5) is not in h, so enlarge again
 4. // no more positive examples left, so we're done.