gpt4 book ai didi

python - ValueError : This solver needs samples of at least 2 classes in the data, 但数据只包含一个类 : 1. 0

转载 作者:太空狗 更新时间:2023-10-29 22:25:25 25 4
gpt4 key购买 nike

我有一个包含 8670 个试验的训练数据集,每个试验的长度为 125 个样本,而我的测试集包含 578 个试验。当我从 scikit-learn 应用 SVM 算法时,我得到了很好的结果。

但是,当我应用逻辑回归时,出现了这个错误:

"ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 1.0" .

我的问题是为什么 SVM 能够给出预测但逻辑回归给出这个错误?

有没有可能是数据集中有问题,或者只是逻辑回归无法分类,因为训练样本看起来与它相似?

最佳答案

我在类似线性模块的以下问题中阅读了此内容:https://github.com/lensacom/sparkit-learn/issues/49

“遗憾的是,这确实是一个错误。Sparkit 并行训练 sklearn 的线性模型,然后在减少步骤中对它们进行平均。至少有一个 block ,其中只包含一个标签。要检查,请尝试以下操作:

train_Z[:, 'y']._rdd.map(lambda x: np.unique(x).size).filter(lambda x: x < 2).count()

要解决您可以随机化火车数据以避免使用一个标签的 block ,但这仍在等待一个聪明的解决方案。”

编辑:我找到了一个解决方案,上面对错误的分析是正确的。这将是一个解决方案。

为了按照相同的顺序打乱数组,我使用了 scikitlearn utils 模块:

from sklearn.utils import shuffle
X_shuf, Y_shuf = shuffle(X_transformed, Y)

然后使用这些打乱的数组再次训练您的模型,它就会起作用!

关于python - ValueError : This solver needs samples of at least 2 classes in the data, 但数据只包含一个类 : 1. 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38138067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com