美文网首页
4.数据取对数的意义

4.数据取对数的意义

作者: AlwaysInCoding | 来源:发表于2019-10-29 14:40 被阅读0次

平时在一些数据处理中,经常会把原始数据取对数后进一步处理。

这里总结一下这样处理的数学意义

对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系。所以

1. 缩小数据的绝对数值,方便计算。

例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。

2. 取对数后,可以将乘法计算转换成加法计算。

3. 某些情况下,在数据的整个值域中的在不同区间的差异带来的影响不同。例如,中文分词的mmseg算法,计算语素自由度时候就取了对数,这是因为,如果某两个字的频率分别都是500,频率和为1000,另外两个字的频率分别为200和800,如果单纯比较频率和都是相等的,但是取对数后,log500=2.69897, log200=2.30103, log800=2.90308 这时候前者为2log500=5.39794, 后者为log200+log800=5.20411,这时前者的和更大,取前者。因为前面两个词频率都是500,可见都比较常见。后面有个词频是200,说明不太常见,所以选择前者。

从log函数的图像可以看到,自变量x的值越小,函数值y的变化越快,还是前面的例子,同样是相差了300,但log500-log200>log800-log500,因为前面一对的比后面一对更小。

也就是说,对数值小的部分差异的敏感程度比数值大的部分的差异敏感程度更高。这也是符合生活常识的,例如对于价格,买个家电,如果价格相差几百元能够很大程度影响你决策,但是你买汽车时相差几百元你会忽略不计了。

4. 取对数之后不会改变数据的性质和相关关系,但压缩了变量的尺度,例如800/200=4, 但log800/log200=1.2616,数据更加平稳,也消弱了模型的共线性、异方差性等。

5. 且所得到的数据易消除异方差问题。

6. 在经济学中,常取自然对数再做回归,这时回归方程为 lnY=a lnX+b ,两边同时对X求导,1/Y*(DY/DX)=a*1/X, b=(DY/DX)*(X/Y)=(DY*X)/(DX*Y)=(DY/Y)/(DX/X) 这正好是弹性的定义。

当然,如果数据集中有负数当然就不能取对数了。实践中,取对数的一般是水平量,而不是比例数据,例如变化率等。

相关文章

  • 4.数据取对数的意义

    平时在一些数据处理中,经常会把原始数据取对数后进一步处理。 这里总结一下这样处理的数学意义 对数函数在其定义域内是...

  • B279-凹函数的几何意义

    ①取对数证明不等式 ②凹函数的几何意义

  • hive分组取随机数

    hive取随机的数据,可以使用rand()函数,用rand()对数据排序,取topN如果要用到分组取随机数,比如每...

  • 【MySQL】分组查询(GROUP BY)

    MySQL中使用GROUP BY对数据进行分组,GROUP BY从字面意义上理解就是根据'BY'指定的规则对数据进...

  • oracle通过base64对数据进行加密解密

    1.新建存储过程对数据进行加密 2.调用加密过程 3.新建存储过程对数据进行解密 4.调用解密过程

  • Spark 数据倾斜解决思路

    1.优化数据结构 2.修改并行度 3.对数据做采样,对数据倾斜的key增加随机的前缀. 4.局部聚合+全局聚合 5...

  • jsonpath 模块对数据的操作记录

    jsonpath 模块对数据的操作记录 json模块主要处理json数据 页面上爬取的数据,需要使用 loads(...

  • iOS-SQLite数据库总结

    数据库存在的意义就是对数据进行整合和管理,即对数据进行增,删,改,查的操作。 1.创建表的格式为 create t...

  • seaborn常见绘图学习总结(分布图)

    在做数据分析之前,有时需要对数据进行可视化,从宏观上对数据的分布有一个认识,进而更好的理解数据在实际项目中的意义。...

  • 第一篇Rmardown文档

    读取文件,并对重复基因取均值 将矩阵转换为Seurat对象,并对数据进行过滤

网友评论

      本文标题:4.数据取对数的意义

      本文链接:https://www.haomeiwen.com/subject/gqzwvctx.html