我很困惑,因为许多人都有他们自己的方法来应用交叉验证。例如,有些将其应用于整个数据集,而另一些则将其应用于训练集。
我的问题下面的代码是否是适当的,以实现交叉验证并在应用交叉验证的情况下根据该模型进行预测]?
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import KFold
model= GradientBoostingClassifier(n_estimators= 10,max_depth = 10, random_state = 0)#sepcifying the model
cv = KFold(n_splits=5, shuffle=True)
from sklearn.model_selection import cross_val_predict
from sklearn.model_selection import cross_val_score
#X -the whole dataset
#y - the whole dataset but target attributes only
y_pred = cross_val_predict(model, X, y, cv=cv)
scores = cross_val_score(model, X, y, cv=cv)
我很困惑,因为许多人都有他们自己的方法来应用交叉验证。例如,有些将其应用于整个数据集,而另一些则将其应用于训练集。我的问题是...
您need to have a test set
甚至在进行交叉验证时也要评估完全看不见的数据的性能。请勿对此测试集进行性能调整,以避免data leakage
。