numpy.log1p()的目的是什么?

Sab*_*bah 11 python numpy

嘿,我是kaggle的新手并致力于House预测数据集.我刚刚遇到其中一个内核,无法理解numpy.log1p()在此代码的第三个管道中做了什么

我用谷歌搜索它,numpy的文档告诉它

退货:

  • 具有自然对数值x + 1的数组;
  • 其中x属于输入数组的所有元素.

但是,在找到相同特征的原始和转换数组的偏度时,找到添加了一个(+1)的日志的目的是什么?它有什么作用 ?

有人可以指导我吗?

Nil*_*ner 25

NumPy的文档给出提示:

对于实值输入,在浮点log1p精度方面也是x如此之小1 + x == 1.

例如,让我们添加一个非常小的非零数字1.0.舍入错误使它成为一个1.0.

>>> 1e-100 == 0.0
False
>>> 1e-100 + 1.0 == 1.0
True
Run Code Online (Sandbox Code Playgroud)

如果我们尝试使用log那个不正确的总和,我们会得到一个不正确的结果(与WolframAlpha相比):

>>> np.log(1e-100 + 1)
0.0
Run Code Online (Sandbox Code Playgroud)

但是如果我们使用log1p(),我们会得到正确的结果

>>> np.log1p(1e-100)
1e-100
Run Code Online (Sandbox Code Playgroud)

同样的原则也适用于exp1m()logaddexp():The're为小更准确x.


Eva*_*ans 5

https://docs.scipy.org/doc/numpy/reference/generated/numpy.log1p.html

enter image description here

如果x的范围是0 ... + Inf,则它将永远不会导致错误(众所周知,log(0)会导致错误)。

并非始终是最佳选择,因为如您所见,在x = 0之前您将失去一条大曲线,这是关于对数函数的最佳选择之一