我可以使用神经网络或svm等,如果我的输出数据是27680,所有这些都是零,只有一个是一个? 我的意思是这样做是对的吗?
当我使用SVM时出现此错误: 使用seqminopt时出错> seqminoptImpl(第198行) 在最大迭代次数内没有达到收敛。
答案 0 :(得分:1)
SVM通常是二元分类器。基本上这意味着它们将您的数据点分成两组,这表示数据点是否属于某个类。解决SVM多类问题的常用策略是一对一休息和一对一。在one-vs-rest的情况下,你会为每个班级训练一个分类器,对你来说将是27,680。在一对一的情况下,你将训练(K超过2)=(K(K-1))/ 2分类器,所以在你的情况下大约3800万。正如您所看到的,这两个数字都相当高,所以我对您成功解决SVM问题的概率感到悲观。
不过,您可以尝试按照another stackoverflow thread中的说明增加最大迭代次数。也许它仍然有效。
你可以使用神经网络来完成你的任务,而1-of-K输出并不罕见。但是,即使只有一个500个神经元的隐藏层(并使用评论中提到的输入和输出矢量大小),您的网络中也会有(27680 * 2 * 500)+(500 * 27680)= 41,520,000个权重。所以我期望相当长的培训时间(尽管谷歌员工可能会对这些数字大笑)。除非您的输入非常简单,否则您很可能还需要大量的培训示例。
作为替代方案,您可以查看决策树/随机森林,朴素贝叶斯或kNN。