我有一个8670个试验的训练数据集,每个试验有125个时间样本,而我的试验集有578个试验。当我应用scikit-learn中的支持向量机算法时,得到了很好的结果。
但是,当我应用logistic回归时,会出现以下错误:
"ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 1.0" .
我的问题是为什么支持向量机能够给出预测,而logistic回归却给出了这个错误?
可能是数据集有问题,或者是因为训练样本看起来很相似,逻辑回归无法分类?
我在下一期的类似线性模块中读到了这个:https://github.com/lensacom/sparkit-learn/issues/49
“不幸的是,这确实是一只虫子。Sparkit并行地训练sklearn的线性模型,然后在一个reduce步骤中将它们平均。至少有一个块,其中仅包含一个标签。要检查,请尝试以下操作:
要解决这个问题,您可以随机化列车数据,以避免使用一个标签的数据块,但这仍在等待一个聪明的解决方案。”
编辑:我找到了一个解决方案,上面分析的错误是正确的。这将是一个解决办法。
要按照与使用scikitlearn utils模块相同的顺序排列数组:
然后用那些洗牌数组再次训练你的模型,它会起作用的!
相关问题 更多 >
编程相关推荐