假设我在数据集中有两个数组:
1)第一个是数组分类为(0,1) - [0,1,0,1,1,1,0 .....]
2)灰度图像矢量的第二阵列成本,每个矢量具有2500个元素(数字从0到300)。这些数字是来自50 * 50px图像的像素。 - [[13 160 239 192 219 199 4 60 ..] [....] [....] [....] [....]]
此数据集的大小非常重要(约12000个元素)。 我正在尝试构建bery基本二进制分类器,它将给出适当的结果。让我们说我想选择非深度学习但是有些监督方法。 这种情况适合吗?我已经尝试过各种参数的sklearn SVM。但结果是不恰当地撤离,主要包括1:[1,1,1,1,1,0,1,1,1,....]
什么是正确的方法?数据集的大小是否足以通过监督算法获得良好的结果?
答案 0 :(得分:2)
您应该在cross-validated
上发布此内容:
但作为一个直接的答案,你可能应该研究顺序来排序学习者,因为你已经清楚SVM
不是理想的解决方案。
如果您不想使用Markov models
路线,则应该查看deep learning
的顺序学习,但Neural Networks
有一个非常好的跟踪记录图像分类问题。
理想情况下,对于顺序学习,您应该尝试查看Long Short Term Memory Recurrent Neural Networks
,并且对于您当前的数据集,请查看是否对现有数据语料库(Say CIFAR-10
)进行预训练可能有所帮助。
因此,我的推荐是让Tensorflow尝试使用高级库,例如Keras
/ SKFlow
。
神经网络只是机器学习曲目中的另一个工具,你也可以给它们一个真正的机会。
编辑以解决您的评论:
您的问题不是缺少SVM的数据,
对于小型数据集,SVM将运行良好,因为它更容易在此数据集上过度拟合/拟合分离超平面。
随着您增加数据维度,请记住,使用分离超平面将其分离变得越来越困难[查看维度的诅咒]。
但是,如果您这样做,请尝试减少维数
比如PCA。
虽然在这里你必须找到神经网络的另一个围栏, 由于Kohonen Self Organizing Maps可以很好地完成这项任务,您可以尝试 将数据投影到较低的维度,从而允许SVM以更高的准确度分离它 我仍然要坚持说你可能正在使用不正确的方法。