Python RF上的奇数交叉验证分数,是否意味着问题?

Python RF上的奇数交叉验证分数,是否意味着问题?,python,scikit-learn,Python,Scikit Learn,我正在泰坦尼克号数据集上尝试随机森林。然后我对我的模型进行交叉验证。我发现分数都是“1.0”。这是一个现实的分数?还是暗示我做错了什么?我已经试过SGD分类器了。SGD的CV分数为“0.81”,在我看来,对于不协调的分类器来说,这比“1.0”更可能 尽管我对这个问题做了研究,但还是找不到答案。我是机器学习新手,如果我问了一个重复的问题/犯了一些基本错误,请原谅 from sklearn.ensemble import RandomForestClassifier forest_clf=Rando

我正在泰坦尼克号数据集上尝试随机森林。然后我对我的模型进行交叉验证。我发现分数都是“1.0”。这是一个现实的分数?还是暗示我做错了什么?我已经试过SGD分类器了。SGD的CV分数为“0.81”,在我看来,对于不协调的分类器来说,这比“1.0”更可能

尽管我对这个问题做了研究,但还是找不到答案。我是机器学习新手,如果我问了一个重复的问题/犯了一些基本错误,请原谅

from sklearn.ensemble import RandomForestClassifier
forest_clf=RandomForestClassifier(n_estimators=10,random_state=42)
forest_clf.fit(X,y)


交叉验证不会在完整的训练集上运行,而是将训练集拆分为N个折叠。您在(N-1)个折叠上进行训练,并在剩余的1个折叠上进行验证。对于每个历元,随机选取1倍

每个分类(假设)得到1.0,因为在训练集上,您的模型预测100%准确-要么表现完美,要么拟合过度


您可以使用
sklearn.model\u selection.KFold
分割数据集。

是否对训练集应用交叉验证?i、 是的,我是。X是经过处理的数据,y是“幸存”的。好吧……这不是交叉验证。@只有当你的代码看起来很好时才行。我猜你的
y
要么都是1要么都是0,要么
X
或者
y
中总的来说有一些错误。或者,在将分类器传递给
cross\u val\u score
之前调用fit可能会导致一些意外行为。如果没有您使用的数据集和精确的预处理步骤,很难再现错误汉克斯,我将继续尝试找出它是哪一个。
from sklearn.model_selection import cross_val_score
cross_val_score(forest_clf, X,y, cv=3, scoring="accuracy")

 array([1., 1., 1.])