Python 如何在机器学习模型中使用测试比例数据?

Python 如何在机器学习模型中使用测试比例数据?,python,machine-learning,classification,random-forest,train-test-split,Python,Machine Learning,Classification,Random Forest,Train Test Split,我有一个拥有4000个CNN特征的数据,这是一个二进制分类问题。关于测试数据,我只知道1和0的比例。我如何告诉我的模型使用比例数据预测测试标签?(有没有办法说为了达到这个比例,我给这个例子0。) 如何使用它来提高准确性?在我的案例中,培训数据主要由1(85%)和0(15%)组成 然而,在我的测试数据中,l的比例是(%38),因此它与训练数据有很大不同 我在平衡数据方面做了一些工作,这很有帮助。然而,我的模型仍然预测几乎所有数据为1。这也可能是因为自适应问题而发生的 正如@birdwatch所建议

我有一个拥有4000个CNN特征的数据,这是一个二进制分类问题。关于测试数据,我只知道1和0的比例。我如何告诉我的模型使用比例数据预测测试标签?(有没有办法说为了达到这个比例,我给这个例子0。)

如何使用它来提高准确性?在我的案例中,培训数据主要由1(85%)和0(15%)组成 然而,在我的测试数据中,l的比例是(%38),因此它与训练数据有很大不同

我在平衡数据方面做了一些工作,这很有帮助。然而,我的模型仍然预测几乎所有数据为1。这也可能是因为自适应问题而发生的

正如@birdwatch所建议的,我降低了0值的阈值,并尝试增加预测中的0标签计数

# Predicting the Test set results 
y_pred = classifier.predict_proba(X_test) 
threshold=0.3 
y_pred [:,0] = (y_pred [:,0] < threshold).astype('int') 
更改阈值后,现在是

1 :  3221
0 :  8653

然而,有没有其他方法可以使用测试比例来确保结果?

没有任何合理的方法。这样做会在模型中产生奇怪的偏见。你可以做的一件事是接受不太可能的结果,只要它有足够高的分数。通常情况下,您会使用0.5阈值,但在这里您可能会使用0.7。请注意,在提供有用答案后,以使该答案不相关的方式更新问题并非如此。我恳请您接受答案,并打开一个包含新细节的新问题(如有必要,您可以在此处添加链接)。更重要的是,很明显,你现在得到的具体结果取决于特定的阈值选择,因此你可能需要做一些进一步的实验,并将结果包括在你的新问题中。包括术语“类别不平衡”或“不平衡数据”,以及标签
不平衡数据
1 :  3221
0 :  8653