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

之所以这样做是基于对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有:

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) 这正好是弹性的定义。

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

转载:https://www.cnblogs.com/zztt/p/3409675.html

处理数据时,对数据取对数的意义相关推荐

  1. 【操作系统】磁盘转速速度为7200PRM,平均寻道时间为6ms,每磁道存储1MB数据。如果数据块大小为4KB,则读取一块数据时,数据平均传输速率为

    磁盘转速速度为7200PRM,平均寻道时间为6ms,每磁道存储1MB数据.如果数据块大小为4KB,则读取一块数据时,数据平均传输速率为 背景知识 7200PRM = 7200r/min = 120r/ ...

  2. FineReport 7.0:帆软报表展示数据时,数据只有一页,但是多出一页空白页。

    帆软报表展示数据时,数据只有一页,但是多出一页空白页. 问题图片: 问题原因:报表中存在空白数据列. 解决方法:选中空白数据列,右键,选中删除列即可. 问题图片: 问题原因:报表中存在空白数据列. 例 ...

  3. EViews对数据进行调整(取对数)

    1.导入数据 (导入数据的具体操作参考) 2. 在操作栏输入 genr lnindex=log(y) (其实就是 genr lny=log(y) 3. 再输入genr lnshibor=log(x) ...

  4. 检索数据_5_给字段取个有意义的名字

    给字段取个有意义的名字 需求描述 需求:查询雇员表emp里部门编号是10的员工编号.员工名称.职位情况,并给员工编号起个别名"员工号",给员工名称起个别名"员工名&quo ...

  5. [1]数据分析中变量取对数的意义

    目录 数据取对数的理论来源 数据取对数的作用 数据取对数的理论来源 参考:https://www.zhihu.com/question/22012482 数据取对数的作用 原始数据取对数是由于基于对数 ...

  6. 通过Feign调用接口,返回数据时出现数据乱码

    在路径映射上添加 produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset ...

  7. 解决QT接受串口数据时数据更新不及时,串口数据太多导致程序界面崩溃,串口接收数据过快等问题

    1.问题背景 最近在使用上位机测试传感器接受数据是否正常,发现了很多问题,由于没有系统的学过Qt,用到什么库就学什么库,导致库中的函数很多不清晰,产生了标题中的一系列问题,经过不断的尝试,终于解决上述 ...

  8. pb数据窗口一些技取

    标识当前行 〓标识当前行也就是给当前行加上醒目的标记,以便用户更清楚当前要对哪一行数据进行操作,尤其当用户的操作中间有停顿时,继续进行操作就特别需要知道哪个是当前行.这里的当前行不要狭隘地理解成仅仅是 ...

  9. 存储mysql数据存在特殊字符时处理_转义 存储数据时特殊符号的处理

    function url_base64_encode($str){ //将这个方法处理后的数据可以存储,不会有特殊符号 if($str=="") return "&quo ...

最新文章

  1. RabbitMQ的安装(linux篇)
  2. 计算机未来的储存装置,图说计算机存储设备
  3. linux c 子线程sleep,linux c之sleep的多种实现
  4. 拥有Mac的你怎么可以不知道Downie,Downie4最新更新「安装与使用」
  5. 看透这个世界--数据封装与解封装过程
  6. 【flink】Flink-Cep实现规则动态更新
  7. 关于opencv的几个小总结
  8. OpenCV 使用光流法检测物体运动
  9. python中http_Python中的HTTP错误
  10. linux ubuntu 安装 matlab 2010 及破解 详细图解
  11. 学习windows内核一
  12. LoadBalancer负载均衡
  13. 人工智能数学基础--导数2:高阶导数及莱布尼茨(Leibniz)公式
  14. 计算机组装与维护教训,组装电脑:如果电脑出现异常一定要小心了,马虎可能会烧毁主板!...
  15. Gate Developer 软件快捷键
  16. 荣耀v10升级android10,大快人心?荣耀V10、荣耀8X、荣耀10,可以升级EMUI10了
  17. Android 基于AccessibilityService智能安装Apk 仿 豌豆荚
  18. 页游战龙三国+搭建GM后台
  19. PX4从放弃到精通(十一):混控及PWM输出
  20. HTTP状态码(HTTP Status codes)简介

热门文章

  1. 还原精灵的另类卸载方法
  2. 如何彻底清除还原精灵
  3. [世界杯] 巴西 vs 克罗地亚 1:0
  4. java 三元运算符
  5. 第一课c语言课前准备
  6. 鞍部在哪里_等高线地形图中鞍部的高度怎么看
  7. 李希贵:教育改革最大的阻力来自我们内心
  8. java 函数内定义函数_java可以在main中定义函数吗?
  9. 从零开始跑——《爱上跑步的十三周》
  10. 神奇的Gamma函数