欧拉数与逻辑函数

欧拉数e是一个没有循环小数的常数值 ,约为2.718281,这是机器学习常用的数值。

欧拉数

对数比较常用的底数是2或10,在机器学习中比较常用的底数是数学常数e,它的全名是Euler's Number,又称欧拉数。

欧拉数e可以用作指数函数的底数,例如:e^{x}

也可以用exp(x)表达。

在对数log应用中,如果底数是e,数学表达式如:log_{e}

当对数的底数是e时,则称自然对数(natural logarithm),例如:log_{e}8 .

或者省略e,直接用公式表示:log 8。

自然对数另一个表达方式是In,用方式表达:In 8。

e=(1+\tfrac{1}{n})^n

e=\lim_{n\rightarrow \infty }(1+\frac{1}{n})^n

lim()函数中的lim是limit的缩写,\infty是无穷大。

在0.1~1000取100000个点,然后绘制欧拉数图形。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1, 1000, 100000)          # 建立含100000个元素的数组
y = [(1+1/x)**x for x in x]
plt.axis([0, 10, 0, 3])
plt.plot(x, y, label="Euler's Number")

plt.legend(loc="best")                      # 建立图例
plt.grid()
plt.show()

运行结果如下:

不设定显示空间。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1, 1000, 100000)          # 建立含100000个元素的数组
y = [(1+1/x)**x for x in x]
#plt.axis([0, 10, 0, 3])
plt.plot(x, y, label="Euler's Number")

plt.legend(loc="best")                      # 建立图例
plt.grid()
plt.show()

运行结果如下:

逻辑函数

逻辑函数(logistic function)是一种常见的Sigmoid函数(简称S函数),这个函数是皮埃尔(Pierre)在研究人口增长时命名的,这是函数的特色是因变量y的值落在0~1。

y=f(x)

假设f(x)函数是逻辑函数,则y值是0~1。

逻辑函数常被用在机器学习的分类,还可以得到属于某个类别的概率。

认识逻辑函数

一个简单的逻辑函数定义:y=f(x)=\frac{1}{1+e^{-x}}

x是正无穷大

当x是正无穷大时,数值:e^{-x}=\frac{1}{e^x}=0

y=f(x)=\frac{1}{1+e^{-x}}\approx \frac{1}{1+0}=1

推导得到当x是正无穷大时,逻辑函数值是1。

x是0

当x是0时,数值:e^{-x}

\frac{1}{e^x}=\frac{1}{e^0}=\frac{1}{1}=1

y=f(x)=\frac{1}{1+e^{-x}}\approx \frac{1}{1+1}=0.5

推导当x是0时,逻辑函数值是0.5。

x是负无穷大

当x是负无穷大时,数值:e^{-x}=\frac{1}{e^x}=\infty

y=f(x)=\frac{1}{1+e^{-x}}=\frac{1}{1+\infty }\approx 0

推导当x是负无穷大时,逻辑函数值是0。

绘制逻辑函数

逻辑函数是一种常见的S函数,下列是绘制逻辑函数图形,设x值在-5~5。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-5, 5, 10000)               # 建立含10000个元素的数组
y = [1/(1+np.e**-x) for x in x]
plt.axis([-5, 5, 0, 1])
plt.plot(x, y, label="Logistic function")

plt.legend(loc="best")                      # 建立图例
plt.grid()
plt.show()

执行结果:

logit函数

认识Odds

Odds翻译为比值、优势比、赔率 ,是指事件发生概率与不发生概率的比值。

在统计学内,概率(probability)与Odds都是用来描述事件发生的可能性。

P(A)=\frac{Number of Event A}{Total Number of Events}

以掷骰子为例,骰子有6面,所以有6个可能,P=0代表一定不会发生,P=1代表一定会发生,掷出特定点数的概率是P=\frac{1}{6}

事件不发生的概率则是:1-P=1-\frac{1}{6}=\frac{5}{6}

Odds是指事件发生概率与不发生概率的比值,所以Odds的公式如下:

Odds=\frac{Probability of Event}{Probability of no Event}=\frac{P}{1-P}

若是以掷骰子为例,最后得到的数字如下:Odds=\frac{Probability of Event}{Probability of no Event}=\frac{P}{1-P}=\frac{\frac{1}{6}}{\frac{5}{6}}=\frac{1}{5}

从Odds到logit函数

用英文表达所谓的logit就是log of Odds,或是可以将logit称log-it,这里的it是指Odds。

logit=log(Odds)=log(\frac{P}{1-P})

这个log底数是e,也就是自然对数。

logit=log(Odds)=log(\frac{P}{1-P})=ln(\frac{P}{1-P})

绘制logit函数

绘制x=0.1~0.99的logit函数图形,这个程序也标记当x=0.5时logit(x)=1的点。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.01, 0.99, 100)               # 建立含1000个元素的数组
y = [np.log(x/(1-x)) for x in x]
plt.axis([0, 1, -5, 5])
plt.plot(x, y, label="Logit function")
plt.plot(0.5, np.log(0.5/(1-0.5)),'-o')

plt.legend(loc="best")                          # 建立图例
plt.grid()
plt.show()

执行结果:

逻辑函数的应用

猜你喜欢

转载自blog.csdn.net/DXB2021/article/details/127184245