毫升 |查找 S 算法
介绍 :
find-S算法是机器学习中的一种基本概念学习算法。 find-S 算法找到适合所有正例的最具体的假设。这里我们必须注意,该算法只考虑那些正面的训练示例。 find-S 算法从最具体的假设开始,并在每次未能对观察到的正训练数据进行分类时推广该假设。因此,Find-S 算法从最具体的假设转移到最普遍的假设。
重要代表:
- ?表示该属性可以接受任何值。
- 为属性指定一个必需的值(例如 Cold )。
- ϕ表示没有可接受的值。
- 最一般的假设表示为: {?, ?, ?, ?, ?, ?}
- 最具体的假设表示为: {ϕ, ϕ, ϕ, ϕ, ϕ, ϕ}
Find-S 涉及的步骤:
- 从最具体的假设开始。
h = {ϕ, ϕ, ϕ, ϕ, ϕ, ϕ} - 以下一个例子为例,如果它是否定的,那么假设不会发生任何变化。
- 如果这个例子是正面的,并且我们发现我们的初始假设过于具体,那么我们将当前的假设更新为一般条件。
- 不断重复上述步骤,直到所有的训练样例都完成。
- 在我们完成所有训练示例后,我们将获得最终假设,何时可以用于对新示例进行分类。
例子 :
考虑以下数据集,其中包含有关哪些特定种子有毒的数据。
首先,我们认为这个假设是一个更具体的假设。因此,我们的假设是:
h = {ϕ, ϕ, ϕ, ϕ, ϕ, ϕ}
考虑示例 1:
示例 1 中的数据为 { GREEN, HARD, NO, WRINKLED }。我们看到我们的初始假设更具体,我们必须在这个例子中推广它。因此,假设变为:
h = { 绿色,坚硬,不,有皱纹 }
考虑示例 2:
在这里我们看到这个例子有一个负面的结果。因此我们忽略了这个例子,我们的假设保持不变。
h = { 绿色,坚硬,不,有皱纹 }
考虑示例 3:
在这里我们看到这个例子有一个负面的结果。因此我们忽略了这个例子,我们的假设保持不变。
h = { 绿色,坚硬,不,有皱纹 }
考虑示例 4:
示例 4 中的数据为 { ORANGE, HARD, NO, WRINKLED }。我们将每个属性与初始数据进行比较,如果发现任何不匹配,我们将用一般情况(“?”)替换该特定属性。完成该过程后,假设变为:
h = { ?, HARD, NO, WRINKLED }
考虑示例 5:
示例 5 中的数据是 { GREEN, SOFT, YES, SMOOTH }。我们将每个属性与初始数据进行比较,如果发现任何不匹配,我们将用一般情况(“?”)替换该特定属性。完成该过程后,假设变为:
h = { ?, ?, ?, ? }
由于我们已经达到假设中的所有属性都具有一般条件的程度,因此示例 6 和示例 7 将导致具有所有一般属性的相同假设。
h = { ?, ?, ?, ? }
因此,对于给定的数据,最终假设将是:
最终假设:h = { ?, ?, ?, ? }
算法 :
1. Initialize h to the most specific hypothesis in H
2. For each positive training instance x
For each attribute constraint a, in h
If the constraint a, is satisfied by x
Then do nothing
Else replace a, in h by the next more general constraint that is satisfied by x
3. Output hypothesis h