逻辑回归:数学域错误 - sigmoid 函数赋值 1

Logistic Regression: math domain error - sigmoid function give value 1

我正在尝试逻辑回归。在 运行 代码中,我在 python 中遇到数学域错误。发现我在 sigmoid 函数中输入大于 38 的 (mx+b > 38) 值,它输出 1,对数函数 (-log(1-1)) 输出 "math domain error".

这是我的步骤:

  1. 求 mx+b
  2. 输入mx+b作为sigmoid函数中的x
  3. 将sigmoid、y值、x值的值输入成本函数
  4. 根据以上值求梯度。
  5. 使用梯度值优化权重。

请帮忙。

您应该先规范化数据,然后再将其放入逻辑函数中。归一化意味着将值放在 [0, 1] 范围内,因此您不应再从 sigmoid 获得 1 作为输出。您可以使用此函数进行标准化:sklearn.preprocessing.normalize