【发布时间】:2020-12-18 21:13:57
【问题描述】:
我使用 LogisticRegressionCV 的 .score() 方法为我的模型生成准确度分数。
我还使用了cross_val_score 来获得具有相同的 cv 拆分 (skf) 的准确度分数,期望会出现相同的分数。
但是很可惜,它们是不同的,我很困惑。
我首先做了一个 StratifiedKFold:
skf = StratifiedKFold(n_splits = 5,
shuffle = True,
random_state = 708)
之后,我使用 skf 作为 CV 参数的参数实例化了一个 LogisticRegressionCV(),在训练集上进行拟合和评分。
logreg = LogisticRegressionCV(cv=skf, solver='liblinear')
logreg.fit(X_train_sc, y_train)
logreg.score(X_train_sc, y_train)
这给了我 0.849507735583685 的分数,这是默认的准确度。既然是 LogisticRegressionCV,这个分数其实就是平均准确率分数吧?
然后我用cross_val_score:
cross_val_score(logreg, X_train_sc, y_train, cv=skf).mean()
这给了我 0.8227814439082044 的平均准确度分数。
我有点困惑为什么分数不同,因为我认为我基本上在做同样的事情。
【问题讨论】:
标签: python scikit-learn classification logistic-regression cross-validation