我在尝试使用逻辑回归。在运行代码时,Python中出现了数学域错误。我发现我输入到sigmoid函数中的值(mx+b > 38)大于38,导致sigmoid函数输出1,然后log函数(-log(1-1))输出了“数学域错误”。
以下是我的步骤:
- 计算mx+b
- 将mx+b作为x输入到sigmoid函数中
- 将sigmoid函数的输出值、y值、x值输入到成本函数中
- 根据上述值计算梯度
- 使用梯度值优化权重
请帮助我解决这个问题。
回答:
在将数据输入到逻辑函数之前,您应该对数据进行归一化。归一化意味着将值调整到[0, 1]范围内,这样sigmoid函数的输出就不会再是1了。您可以使用这个函数进行归一化:sklearn.preprocessing.normalize