[Python] 数学基础 - 对数(log),常用对数,对数的逆运算(自然指数(exp),)以及在numpy计算针对向量进行对数运算

什么是对数(logarithm)

对数是一个数学运算,它表示一个数是另一个数的多少次方,通常用符号log表示。

则b叫做以a为底N的对数,记作

当a=10时称作常用对数,当a=e时称作自然对数。
 

对数中最常用的底数是10、2和e

为什么要以10为底数?

因为我们使用10进制,数量级和科学计数法也是10的倍数。所以10x的逆运算,以10为底的对数 lg x最常用、最方便,所以又称常用对数。

10进制是数字表示法中最容易普及的,根源是我们有10个手指,人们初学数字时都喜欢借助10个手指学习1、2、3……10。到了学加减运算时,更是喜欢借助手指计算。不仅老师认为这样教学直观,学生也认为这样练习方便。通过教育,这个强大的习惯,被最广泛的传播和固化下来。

为什么要以2为底数?

因为2倍或成倍式的增长,即2x,是我们日常中最简单的指数式增长。我们经常说数量成倍、翻倍、翻番、翻两番,都是2倍率的增长。所以2x的逆运算,底数为2的对数 lb x 也会比较常见。

虽然对数的底数2和10是人们使用体验和认知体验最好的对数,但是在数学中,这两个数却是不自然的,因为都是在方便人的需要。

为什么e被称为自然底数?

自然常数,符号e,为数学中一个常数,是一个无限不循环小数,且为超越数,其值约为2.718281828459045。它是自然对数函数的底数。有时称它为欧拉数(Euler number)。

扫描二维码关注公众号,回复: 17328200 查看本文章

用e做底数的对数表达方式是 ln x 。

数学译林 | 数学里的 e 为什么叫做自然底数?

对数的逆运算(指数函数)

指数函数是重要的基本初等函数之一。一般地,y=a^x函数(a为常数且以a>0,a≠1)叫做指数函数,函数的定义域是 R 。

exp () 是一个指数函数,用来求 e(底数)的 x 次幂(次方)的值。

power()函数用于计算输入数组中每个元素的指数幂。比如,power(x, y) 函数,计算 x 的 y 次方。

对数在机器学习中的应用

在机器学习中,对数函数经常被用来处理概率分布、特征值的缩放和数据预处理等问题。

  1. 处理概率分布:在某些情况下,概率分布可能会出现0或负数的情况,这会导致模型无法进行训练或者得到错误的结果。此时可以使用对数函数将概率分布转换为正数形式,例如将二项分布中的成功次数和失败次数取对数,然后再计算它们的比值。

  2. 特征值的缩放:在机器学习中,有些特征的取值范围可能会非常大或非常小,这会影响模型的性能。为了解决这个问题,可以使用对数函数将这些特征值缩放到一个相对稳定的范围内,例如将像素值缩放到[0,1]之间。

  3. 数据预处理:在机器学习中,数据预处理是非常重要的一步,它可以提高模型的性能和准确度。对数函数可以用来进行数据的归一化和标准化,例如将数据集按照比例缩放后再取对数,这样可以使得不同规模的数据具有相同的尺度,从而更好地进行模型训练。

Numpy进行向量的对数运算及逆运算

import numpy as np

# 创建一个向量
v = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# 对向量进行自然对数运算
log_v = np.log(v)
print("自然对数:\n", log_v)

# 对向量进行以10为底的对数运算
log10_v = np.log10(v)
print("以10为底的对数:\n", log10_v)

# 对向量进行以2为底的对数运算
log2_v = np.log2(v)
print("以2为底的对数:\n", log2_v)

# 对数的逆变换
print("以自然常量为底的指数:\n", np.exp(log_v))
print("以10为底的指数:\n", np.power(10,log10_v))
print("以2为底的指数:\n", np.exp2(log2_v))
print("以2为底的指数:\n", np.power(2, log2_v))

参考资料

数学译林 | 数学里的 e 为什么叫做自然底数?

猜你喜欢

转载自blog.csdn.net/u011775793/article/details/135395941