Scikit有CalibratedClassifierCV,可以让我们在特定的X和y组合上校准模型。它还明确指出:用于拟合分类器和校准分类器的数据必须是不相交的。
如果它们必须是不相交的,那么使用以下内容来训练分类器是否合法?
model = CalibratedClassifierCV(my_classifier)
model.fit(X_train, y_train)
我担心使用相同的训练集会违反“不相交数据”的规则。另一种选择是使用验证集。
my_classifier.fit(X_train, y_train)
model = CalibratedClassifierCV(my_classifier, cv='prefit')
model.fit(X_valid, y_valid)
缺点是留下较少的数据进行训练。此外,如果CalibratedClassifierCV只适用于在不同训练集上拟合的模型,则其默认选项为
cv=3
,这是为什么?交叉验证是否自行处理不相交规则?问题:使用CalibratedClassifierCV的正确方法是什么?