欧拉数e是一个没有循环小数的常数值 ,约为2.718281,这是机器学习常用的数值。
欧拉数
对数比较常用的底数是2或10,在机器学习中比较常用的底数是数学常数e,它的全名是Euler's Number,又称欧拉数。
欧拉数e可以用作指数函数的底数,例如:
也可以用exp(x)表达。
在对数log应用中,如果底数是e,数学表达式如:
当对数的底数是e时,则称自然对数(natural logarithm),例如: .
或者省略e,直接用公式表示:log 8。
自然对数另一个表达方式是In,用方式表达:In 8。
lim()函数中的lim是limit的缩写,是无穷大。
在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。
假设f(x)函数是逻辑函数,则y值是0~1。
逻辑函数常被用在机器学习的分类,还可以得到属于某个类别的概率。
认识逻辑函数
一个简单的逻辑函数定义:
x是正无穷大
当x是正无穷大时,数值:
推导得到当x是正无穷大时,逻辑函数值是1。
x是0
当x是0时,数值:
推导当x是0时,逻辑函数值是0.5。
x是负无穷大
当x是负无穷大时,数值:
推导当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都是用来描述事件发生的可能性。
以掷骰子为例,骰子有6面,所以有6个可能,P=0代表一定不会发生,P=1代表一定会发生,掷出特定点数的概率是
事件不发生的概率则是:
Odds是指事件发生概率与不发生概率的比值,所以Odds的公式如下:
若是以掷骰子为例,最后得到的数字如下:
从Odds到logit函数
用英文表达所谓的logit就是log of Odds,或是可以将logit称log-it,这里的it是指Odds。
这个log底数是e,也就是自然对数。
绘制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()
执行结果: