3. 实验
本章我们将在真值发现和缺失填充两个数据清洗代表性应用上,验证提出模型的高效性和准确性。
数据集:
(1)stock。该数据集收集了2011年7月的所有工作日约1 000只股票的信息,其中包括分别来自55个数据源的16个属性。我们用该数据集验证提出的模型,在真值发现应用上的有效性。
(2)wine。该数据集包括200条记录,13个属性。我们用该数据集验证提出的模型,在缺失填充应用上的有效性。
实验设置:所有的实验在Intel(R) Core(TM) i5-2400 (3.10 GHz) CPU 和4 GB内存的机器上运行,我们多次重复实验并记录每个实验结果的平均值。所有的算法用python实现。我们选择了支持向量机作为分类器,并选择信息熵最大的记录、最不确定的记录作为众包记录[11]。
3.1 主动学习的有效性
首先对初始训练集的个数,对分类器准确率的影响进行实验,实验结果如图3所示。由于主动学习的特点是在初始训练集个数很少的情况下对待标记记录有选择的标记,因此在stock数据集中,将初始训练集的个数设定为5、10、15、20对分类器分别训练。在wine数据集中,将初始训练集的个数设为5、10、15、20、25、30对200个记录进行分类。初始训练集的个数对分类器准确率的影响如图3所示,由图中可以得知,分类器的准确率随着初始训练集个数的增大而增大。在图3(a)中可以看出当初始训练集内的记录小于10条时,分类器的准确率在73%左右;当训练集内的记录超过15条时,分类器的准确率超过80%。而在图3(b)中当训练集内的记录超过15条时,分类器的准确率已经可以达到90%。
下面我们对主动学习模型的有效性进行验证,当训练样本集个数为20个,待标记记录集的个数为200个时,每一次迭代的准确性变化如图4所示。在直接主动学习模型中由于每一次都选择分类器不确定的标记进行众包,因此标记错误的记录会一直减少,准确性将一直提升。在交互主动学习模型中,我们发现每次迭代将已标记的记录加入到初始训练集的做法,并不能总是提高分类器的准确率,这是因为其中存在标记错误和过拟合的影响。尽管如此,直接主动学习和交互主动学习模型依然可以用很小的训练集,在几次迭代后达到80%以上的准确率。
3.2 不确定记录选择机制评估
本节将测试选择最不确定的众包记录(uncertainty/entropy)方法的有效性,我们将其与随机算法(random)和投票算法(vote)对比。在随机算法中,将随机选择记录进行众包标记;在投票算法中,选择占比最大的候选值作为真值。实验采用直接主动学习模型实现,实验结果如图5所示。从图中可以看出,随机算法的随机性非常大,每次记录的选择对准确度有较大的影响。投票算法的准确率在0.82左右,本文提出的众包记录最大不确定度选择方法在二次迭代准确率就超过了投票算法,而且准确率随着迭代次数的增加稳步上升,
可以看出我们采用最大熵方法作为最不确定的众包记录对比投票算法和随机算法有很大的优势。
3.3 众包反馈结果的有效性
本节我们测试众包反馈结果的有效性,众包记录占全部记录的比例对准确率的影响,如图6所示,还是和投票算法作对比。从图6(a)中可以看出,我们的主动学习模型在没有众包参与的时候就已经可以达到和投票算法差不多的准确率,随着众包记录所占比例的升高准确率也在逐步上升,众包记录所占比例达到36%时准确率即可达到90%以上。而在图6(b)中,众包记录所占比例达到6%时准确率即可达到96%以上。由此可以看出,将众包应用于真值发现,缺失填充领域能起到很好的效果。