📜  毫升 |查找 S 算法

📅  最后修改于: 2022-05-13 01:58:07.628000             🧑  作者: Mango

毫升 |查找 S 算法

介绍 :
find-S算法是机器学习中的一种基本概念学习算法。 find-S 算法找到适合所有正例的最具体的假设。这里我们必须注意,该算法只考虑那些正面的训练示例。 find-S 算法从最具体的假设开始,并在每次未能对观察到的正训练数据进行分类时推广该假设。因此,Find-S 算法从最具体的假设转移到最普遍的假设。

重要代表:

  1. ?表示该属性可以接受任何值。
  2. 为属性指定一个必需的值(例如 Cold )。
  3. ϕ表示没有可接受的值。
  4. 一般的假设表示为: {?, ?, ?, ?, ?, ?}
  5. 具体的假设表示为: {ϕ, ϕ, ϕ, ϕ, ϕ, ϕ}

Find-S 涉及的步骤:

  1. 从最具体的假设开始。
    h = {ϕ, ϕ, ϕ, ϕ, ϕ, ϕ}
  2. 以下一个例子为例,如果它是否定的,那么假设不会发生任何变化。
  3. 如果这个例子是正面的,并且我们发现我们的初始假设过于具体,那么我们将当前的假设更新为一般条件。
  4. 不断重复上述步骤,直到所有的训练样例都完成。
  5. 在我们完成所有训练示例后,我们将获得最终假设,何时可以用于对新示例进行分类。

例子 :



考虑以下数据集,其中包含有关哪些特定种子有毒的数据。

首先,我们认为这个假设是一个更具体的假设。因此,我们的假设是:
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