python - 如何在python scikit-learn中找到逻辑回归中的正则化参数?
Posted
技术标签:
【中文标题】python - 如何在python scikit-learn中找到逻辑回归中的正则化参数?【英文标题】:How to find the regularization parameter in logistic regression in python scikit-learn? 【发布时间】:2017-02-20 10:50:16 【问题描述】:在 scikit-learn 中,C 是正则化强度的倒数 (link)。除了我使用三个不同的 C(即 0.1、1.0 和 10.0)外,我已经手动计算了三个具有相同参数和条件的训练。我比较了验证集中的 F 分数,并确定了“最佳”C。但是,有人告诉我这是错误的,因为我不应该使用验证集来优化 C。我应该如何选择正确的 C?如果我要从 scikit-learn 中选择默认的 C (= 1.0),我有什么理由?
【问题讨论】:
【参考方案1】:我应该如何选择正确的 C?
您应该拥有三折数据集:训练、验证和测试。你在火车上训练,在验证中设置超参数,最后在测试中进行评估。特别是,当数据较小时,您可以使用 k-fold CV 方式执行此操作,您首先使用 CV 进行训练测试拆分,然后在内部使用另一个,将训练进一步拆分为实际训练和验证。
如果我要从 scikit-learn 中选择默认的 C (= 1.0),我有什么理由?
除了在权重上设置任意先验之外没有任何理由(因此任何其他值都将同样合理)。
【讨论】:
在根据测试集的表现选择C的情况下,是否属于过拟合的例子?我试图理解为什么这样做是个坏主意。 这不是过度拟合的示例,而是无效估计器的示例,只是您不能信任以这种方式选择的模型。从这个意义上讲,它与过度拟合有关,它可能导致过度拟合,但问题更深层次 - 简单地说,如果您使用数据来做出关于模型的任何决策,以及它的评估 - 评估是有偏见的,因此 - 没用。以上是关于python - 如何在python scikit-learn中找到逻辑回归中的正则化参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python
如何在python中使用scikit-image greycomatrix()函数?
如何在 Python/Scikit Learn 中转换输入的结构回归