我有8670个试验的训练数据集,每个试验有125个时间样本,而我的测试集由578个试验组成。当我将支持向量机算法应用于科学学习中时,取得了很好的效果。
但是,当我应用逻辑回归时,会发生以下错误:
"ValueError:这个解决程序需要数据中至少两个类的样本,但是数据只包含一个类: 1.0“。
我的问题是,为什么支持向量机能够给出预测,而逻辑回归却给出了这个错误?
是否有可能数据集中有问题,或者仅仅是逻辑回归无法分类,因为训练样本看起来与它相似?
发布于 2016-07-29 13:35:05
我在类似的线性模块上阅读了以下问题:https://github.com/lensacom/sparkit-learn/issues/49
“遗憾的是,这确实是个错误。Sparkit并行地训练sklearn的线性模型,然后用简化步骤对它们进行平均化。至少有一个块,其中只有一个标签。要检查以下内容:
train_Z[:, 'y']._rdd.map(lambda x: np.unique(x).size).filter(lambda x: x < 2).count()要解决这个问题,您可以将火车数据随机化,以避免使用一个标签的块,但这仍在等待一个聪明的解决方案。“
编辑:我找到了一个解决方案,上面分析的错误是正确的。这将是一个解决办法。
为了按照相同的顺序处理数组,我使用了一个scikitlearn utils模块:
from sklearn.utils import shuffle
X_shuf, Y_shuf = shuffle(X_transformed, Y)然后再使用那些杂乱的数组来训练你的模型,它会工作的!
https://stackoverflow.com/questions/38138067
复制相似问题