代码之家  ›  专栏  ›  技术社区  ›  Him

scikit learn logisticsregression添加功能时日志丢失增加

  •  -1
  • Him  · 技术社区  · 8 年前

    我正在对 NHTS 2017 数据集。根据文件, sklearn.linear_model.LogisticRegression 采用交叉熵损失(对数损失)作为损失函数对模型进行优化。然而,当我添加新特性并拟合模型时,损失似乎并不是单调递减的。具体来说,如果我将家庭驾驶员人数与车辆拥有量相匹配(驾驶员人数是车辆拥有量的唯一最具预测性的变量),我得到的损失比不加选择地匹配所有变量得到的损失要少。

    可能是因为 sklearn.metrics.log_loss 做一些不同于实际损失函数的事情 LogisticRegression . 可能这个问题已经变得非常不凸,以至于它找到了一个糟糕的解决方案。有谁能解释为什么我的损失 增加 当我添加功能时?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jan K    8 年前

    可能有多种原因,但我的猜测是:

    • penalty -默认情况下,logistic回归是用l2训练的 防止过度安装的惩罚。在这种情况下,损失函数是交叉熵损失加上l2权重范数。因此,更多的特征不一定能保证交叉熵本身减小。

    顺便说一句,你的目标似乎是在训练中获得最高的分数(最低的损失)。我不会对此提出异议,但也许会调查测试/验证集。