我想知道如何计算sklearn中LogisticRegressionCV的最终模型(即决策边界)。所以说我有一些Xdata和ylabel这样Xdata # shape of this is (n_samples,n_features)ylabels # shape of this is (n_samples,), and it is binary现在我跑from sklearn.linear_model import LogisticRegressionCVclf = LogisticRegressionCV(Cs=[1.0],cv=5)clf.fit(Xdata,ylabels)这只是在CV中查看一个正则化参数和5倍。因此,clf.scores_将是一个具有一个键的字典,该键的值是形状为(n_folds,1)的数组。通过这五折,您可以更好地了解模型的性能。但是,我对您从中获得的信息感到困惑clf.coef_(并且我假设中的参数clf.coef_是在中使用的参数clf.predict)。我认为有几种选择:输入的参数clf.coef_来自在所有数据上训练模型的参数clf.coef_来自最佳得分中的参数以clf.coef_某种方式在折痕处平均。我以为这是一个重复的问题,但是对于我自己而言,我无法在sklearn文档或LogisticRegressionCV的源代码中找到简单的在线答案。
2 回答

慕勒3428872
TA贡献1848条经验 获得超6个赞
refit=True
默认情况下,您具有该参数。在文档上,您可以阅读:
如果设置为“真”,则将所有折叠的分数平均,并获取与最佳分数对应的系数和C,并使用这些参数进行最终的调整。否则,将对应于跨折最佳得分的系数,截距和C取平均。
因此,如果refit=True
使用所有数据重新训练CV模型。当说使用这些参数完成最后的改装时,它是在谈论C正则化参数。因此,它使用在K折中给出最佳平均得分的C。
当refit=False
它为您检索到交叉验证中的最佳模型时。因此,如果您训练了5折,您将获得模型(coeff + C +截距),它是根据4折数据训练的,因此在其折叠测试集上得分最高。我同意这里的文档不是很清楚,但是对C值和系数取平均值并没有多大意义。
添加回答
举报
0/150
提交
取消