【发布时间】:2021-12-18 23:09:11
【问题描述】:
比较最佳 GridSearchCV 模型和基线时,我有点困惑。
例如,我们有分类问题。
作为基线,我们将使用默认设置拟合模型(让它成为逻辑回归):
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
baseline = LogisticRegression()
baseline.fit(X_train, y_train)
pred = baseline.predict(X_train)
print(accuracy_score(y_train, pred))
因此,基线为我们提供了使用整个火车样本的准确性。
接下来,GridSearchCV:
from sklearn.model_selection import cross_val_score, GridSearchCV, StratifiedKFold
X_val, X_test_val,y_val,y_test_val = train_test_split(X_train, y_train, test_size=0.3, random_state=42)
cv = StratifiedKFold(n_splits=5, random_state=0, shuffle=True)
parameters = [ ... ]
best_model = GridSearchCV(LogisticRegression(parameters,scoring='accuracy' ,cv=cv))
best_model.fit(X_val, y_val)
print(best_model.best_score_)
这里,我们有基于验证样本的准确性。
我的问题是:
- 这些准确度分数是否具有可比性?一般来说,在没有任何交叉验证的情况下比较 GridSearchCV 和模型是否公平?
- 对于基线,是否也使用 Validation 样本(而不是整个 Train 样本)更好?
【问题讨论】:
标签: machine-learning scikit-learn cross-validation gridsearchcv baseline