12.59 基于模糊性的半监督学习
假设 A 是一个大数据集,并且 A 中的大部分样例没有类标;B 是 A 中一小部分样例组成的集合,并且 B 中的每个样例都有类标。利用数据集 B 我们可以训练得到分类器,但我们不能保证这样的分类器对 A-B 中的样例有较好的预测结果。基于对数据集 A-B 中的每个样例的预测结果,我们想从 A-B 中挑选出一些样例(连同对这些样例的预测结果)加入到数据集 B 中。再次利用 B 进行训练得到的分类器对于 A-B 中样例的预测精度将会有所提升。此刻需要明确的关键问题是训练得到的分类器应该满足哪些条件和我们应该怎样从 A-B 中挑选样例。理论上讲,训练得到的分类器必须满足训练精度大于0.5。在以下描述的算法 1 中我们将从不确定性的角度讨论选择样例的策略。
算法 1:基于模糊性的样例选择
步骤 1:将数据集 A 随机划分为训练集 B 和测试集 A-B;
步骤 2:基于集合 B 训练得到一个基本的分类器;
步骤 3:对于每个既在训练集又在测试集中的样例,得到基于上述基本分类器的模糊向量输出;
步骤 4:计算每个输出结果的模糊度;
步骤 5:分别基于训练集中的模糊度和测试集中的模糊度对样例进行排序;
步骤 6:基于步骤 5 中的排序结果,将训练集和测试集分别划分成三组,即高模糊度组 G1、中模糊度组 G2和低模糊度组 G3;
步骤 7:G1 组和 G3 组连同它们的预测类标将会被添加到集合 B 中用以进行下一轮训练。
需要特别注意的是为了提高学习性能,我们通常只使用 G3 组,然而在此学习算法中 G3 组和 G1组都被用到了。
我们采集了一个关于中国象棋游戏局面分类(CCGSC)的大数据集,作为示例来说明分类器的训练过程。该数据集所占计算机的存储空间为 1.86GB,包含了 107 条象棋游戏记录,多于 109 条棋局记录。这是一个典型的基于非结构化数据的半监督学习,其中大量的棋局没有类标。为了得到复杂棋局的预测结果,我们需要请教象棋大师,这是一项耗费相当巨大的工作。传统的预测方法是根据棋局预测函数计算出一个数值,然后根据这个数值得到对棋局结果的预测,但是用该方法得到的精度很低。基于 CCGS 分类数据的实验结果表明,基于模糊性的半监督学习算法可以得到很高的预测精度。对不1. 基于模糊性的半监督学习假设 A 是一个大数据集,并且 A 中的大部分样例没有类标;B 是 A 中一小部分样例组成的集合,并且 B 中的每个样例都有类标。利用数据集 B 我们可以训练得到分类器,但我们不能保证这样的分类器对 A-B 中的样例有较好的预测结果。基于对数据集 A-B 中的每个样例的预测结果,我们想从 A-B 中挑选出一些样例(连同对这些样例的预测结果)加入到数据集 B 中。再次利用 B 进行训练得到的分类器对于 A-B 中样例的预测精度将会有所提升。此刻需要明确的关键问题是训练得到的分类器应该满足哪些条件和我们应该怎样从 A-B 中挑选样例。理论上讲,训练得到的分类器必须满足训练精度大于0.5。在以下描述的算法 1 中我们将从不确定性的角度讨论选择样例的策略。确定性的适当处理能够十分显著地提升分类系统的性能,这一事实进一步证明了我们的陈述。