在许多应用中,创建大型训练数据集可能非常昂贵,甚至是不可能的。那么,我们可以采取哪些措施来减少达到良好准确性所需的数据集大小呢?
回答:
实际上,机器学习中有一个专门的分支致力于解决这个问题(标记数据集是昂贵的):半监督学习
坦白说,根据我的经验,计算过程相当漫长,而且结果与完全标记的数据集相比相形见绌……但在没有其他选择的情况下,在大型未标记数据集上进行训练总比什么都不做要好!
编辑:我最初理解这个问题是“标记数据集很昂贵”,而不是“无论如何数据集的规模都会很小”。
那么,除其他方法外,我会:
-
使用留一法交叉验证来调整我的参数。这是计算成本最高的,但也是最好的方法。
-
选择收敛速度较快的算法。(你需要一个比较表,但我现在没有)
-
需要非常好的泛化性能。弱分类器的线性组合在这方面表现不错。kNN(k最近邻)在这方面表现极差。
-
偏向“泛化”参数。大多数算法在泛化(规律性)和质量(训练集是否被分类器很好地分类)之间进行权衡。如果你的数据集很小,你应该将算法偏向于泛化(在使用交叉验证调整参数之后)。