机器学习-学习笔记(一)-->(假设空间&版本空间)及归纳学习算法
引言
机器学习是人工智能和数据科学领域的热点话题。本篇文章旨在介绍机器学习中的重要概念——假设空间和版本空间,以及一个常用的归纳学习算法——Find-S 算法。
假设空间和版本空间
假设空间是指机器学习模型能够表示的所有可能假设的集合。在监督学习中,每个假设由一个函数表示,即假设空间是函数集合。例如对于二分类问题,假设空间可以是所有二元分类函数的集合。而版本空间则是指与经验数据(即训练数据)一致的假设集合,版本空间是假设空间的子集,版本空间由训练数据和假设空间决定。
例如有以下训练数据集:
X1 | X2 | X3 | Y |
---|---|---|---|
1 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
这是一个二分类训练数据集,我们假设空间为三元布尔函数集合,并设定初始版本空间为所有假设的集合,即
$$ \mathcal{H} = {h_1, h_2, h_3, h_4, h_5, h_6, h_7, h_8} $$
那么,版本空间就表示能够经过二分类训练数据的所有假设组成的假设集合,可通过Find-S算法求解得到。
Find-S算法
Find-S算法是一种简单的归纳学习算法。它的思想是,从假设空间中选取一个能够与训练数据匹配的最特殊假设,不断通过样例进行迭代地缩小版本空间,最终得到符合实际情况的假设。
具体地,Find-S算法的步骤如下:
- 初始化版本空间 $\mathcal{V}$ 为假设空间 $\mathcal{H}$ 中的所有假设。
- 对于训练集中的每一个正实例,移除 $\mathcal{V}$ 中不包含该实例的假设。
- 对于训练集中的每一个负实例,移除 $\mathcal{V}$ 中包含该实例的假设。
- 返回最特殊的假设 $h_S$。
在举例说明 Find-S 算法之前,需要先定义一个重要的概念——"比较特殊"。在本文中,“比较特殊”的假设是指与训练集中某些正实例有所区别,而这些正实例与负实例没有区别。反过来,“比较泛化”的假设是指在训练数据集中,不能与任何正实例或负实例区别。
接下来,我们以三个特定的训练数据来说明 Find-S 算法。
X1 | X2 | X3 | Y |
---|---|---|---|
1 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
- 初始化: $\mathcal{H} = {h_1, h_2, h_3, h_4, h_5, h_6, h_7, h_8}$, $\mathcal{V} = \mathcal{H}$。
- 对于第一个训练样例 $(1, 0, 1, 0)$,$\mathcal{V}$ 变为 ${h_3, h_5}$,即去掉所有在这个样本上的表现不好的假设。因为 $h_1, h_2, h_4, h_6, h_7, h_8$ 都不符合样本 (1, 0, 1, 0)。其中,$h_3$ 表示 $X_1 = 1$ 且 $X_3 = 1$ 的假设,$h_5$ 表示 $X_3 = 1$ 的假设。
- 对于第二个样例 $(0, 1, 0, 1)$,$\mathcal{V}$ 变为 ${h_3}$,即保留所有在前两个样本上表现比较好的假设。这是因为只有 $h_3$ 符合第二个样本。$h_3$ 表示 $X_1 = 1$ 且 $X_3 = 1$。
- 对于第三个样例 $(1, 1, 1, 0)$,$\mathcal{V}$ 又变为 ${h_3}$,即保留所有在一个好的样本上表现比较好的假设。这是因为只有 $h_3$ 符合第三个样本。
- 返回 $h_S = h_3$,即 $X_1 = 1$ 且 $X_3 = 1$。
通过以上例子,我们看到Find-S 算法能够在有限步内找到最特殊且与训练数据集一致的假设。但需要注意的是,该算法在面对一些复杂的情况时可能会陷入局部最优解。
结论
本文介绍了机器学习中的假设空间和版本空间,以及常用于监督学习的一个简单归纳算法——Find-S算法。这里并未详细讲解其他分类算法,但这些基本概念对机器学习领域的学习和实践都是至关重要的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习-学习笔记(一)–>(假设空间&版本空间)及归纳… - Python技术站