我已经使用Accord.NET创建了一个NaiveBayes分类器。它将根据6组左右的图像处理结果对像素进行分类。我的图像是5MP的,所以50张图像的训练集创建了一个非常大的训练数据集。
每像素6个整型数组*500万像素* 50个图像。
有没有一种方法可以增量地训练NaiveBayes分类器,而不是尝试将所有数据存储在内存中?多次调用Learn()每次都会覆盖旧数据,而不是添加到旧数据中。
发布于 2017-07-09 02:50:53
目前还不能使用Accord.NET增量地训练朴素贝叶斯模型。
但是,由于所有朴素贝叶斯要做的都是尝试将某些分布与您的数据拟合,而且您的数据的维度很少,因此您可以尝试在数据的子样本上学习模型,而不是一次学习所有数据。
当您加载图像来构建训练集时,您可以尝试随机丢弃每个图像中像素的x%。您还可以绘制不同x值的分类器精度图,以找到模型的内存和精度之间的最佳平衡(提示:对于如此小的模型和如此大量的训练数据,即使您丢弃了50%的数据,我也不会产生太大的差异)。
https://stackoverflow.com/questions/40639034
复制相似问题