机器学习的数学基础(1)——常见的函数与分布
来源:互联网 发布:淘宝零食店货源哪里来 编辑:程序博客网 时间:2024/05/18 02:51
最近有在系统的补数学基础,接下来会分享一些机器学习中最常见的数学函数与分布的Python实现。
1.对数函数
一般地,函数y=logax(a>0,且a≠1)叫做对数函数,也就是说以幂(真数)为自变量,指数为因变量,底数为常量的函数,叫对数函数。
1.1 简单的对数函数
实现代码如下所示:
import mathimport matplotlib.pyplot as pltif __name__ =="__main__": x = [float(i)/100 for i in range(1,300)] y = [math.log(i) for i in x] plt.plot(x,y,'r-',linewidth=2,label='logCurve') plt.legend(loc='upper left') plt.grid(True) plt.show()
绘制结果如下图所示:
1.2 常见对数函数的对比
实现代码如下所示:
import mathimport numpy as npimport matplotlib.pyplot as pltif __name__ == "__main__": x = np.arange(0.05,3,0.01) #绘制log1.5(x)曲线 y1 = [math.log(a,1.5) for a in x] plt.plot(x,y1,linewidth=2,color='r',label='log1.5(x)') y2 = [math.log(a,2) for a in x] plt.plot(x,y2,linewidth=2,color='g',label='log2(x)') y3 = [math.log(a,3) for a in x] plt.plot(x,y3,linewidth=2,color='b',label='log3(x)') plt.plot([1,1],[y1[0],y1[-1]],'r--',linewidth=2) #指定标签的位置 plt.legend(loc='lower right') plt.grid(True) plt.show()
绘制结果如下图所示:
2.常见的函数分布
常见的函数分布主要有0-1分布、二项分布、泊松分布、均匀分布、指数分布、正态分布等。其中,前三者是离散型分布,后三者是连续型分布。
2.1 二项分布
若随机变量X的概率分布为:P{X=k}= (n!/k!(n-k)!) p^k (1-p)^(n-k)
其中k = 0,1,…,n(n为大于0的正整数), p的取值范围为0-1,则称X服从参数为n, p的二项分布,记做X~b(n,p)。
由二项分布的推导可知,该种分布可用于描述n重伯努利试验中,事件A发生的概率。在每次试验中只有两种可能的结果,而且两种结果发生与否互相对立,并且相互独立,与其它各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变,则这一系列试验总称为n重伯努利实验,当试验次数为1时,二项分布服从0-1分布。
实现代码如下所示:
import numpy as npimport matplotlib.pyplot as pltif __name__ =="__main__": u = np.random.uniform(0.0,1.0,10000) plt.hist(u,100,facecolor='g',alpha=0.75,label='Binomial Distribution') plt.legend(loc="upper left") plt.grid(True) plt.show()
绘制结果如下图所示:
2.2 泊松分布
若随机变量X的概率分布为:P{X=k}= λ^k/k! e^(-λ),
其中k = 0,1,…,n(n为大于0的正整数),λ为大于0的常数则称X是服从参数为λ的泊松分布,记作X ~ P(λ).
实现代码如下所示:
import numpy as npimport matplotlib.pyplot as pltif __name__ =="__main__": #设定λ为100 x = np.random.poisson(100,10000) times = 200 plt.hist(x,bins=times,normed=True,range=[0,times],color='g',alpha=0.75,label='Poisson Distribution') plt.legend(loc="upper left") plt.grid(True) plt.show()
绘制结果如下图所示:
2.3 指数分布
若随机变量X的概率分布为p(x;λ)= λe^(-λx),其中xϵ[0,∞], λ为大于0的常数,则称X是服从参数为λ的指数分布,记作X ~ e(λ).
实现代码如下所示:
import numpy as npimport matplotlib.pyplot as pltif __name__ =="__main__": #通过赋予不同的λ值,比较不同曲线之间的区别, lam1 = 0.5 x = np.arange(0,20,0.01) y1 = lam1 * np.exp(-lam1*x) plt.plot(x,y1,color='r',label='λ=0.5') lam2 = 0.3 y2 = lam2 * np.exp(-lam2*x) plt.plot(x,y2,color='g',label='λ=0.3') lam3 = 0.1 y3 = lam3 * np.exp(-lam3*x) plt.plot(x,y3,color='b',label='λ=0.1') plt.title('Expoential Distribution') plt.legend(loc='upper right') plt.grid(True) plt.show()
绘制结果如下图所示:
2.4正态分布
正态分布(Normal distribution)又称高斯分布(Gaussian distribution)或常态分布。一般假设若随机变量X服从一个数学期望为μ、方差为σ^2的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。
实现代码如下所示:
import numpy as npimport matplotlib.pyplot as pltif __name__ =="__main__": u = np.random.uniform(0.0,1.0,10000) times = 10000 for time in range(times): u += np.random.uniform(0.0,1.0,10000) u /= times plt.hist(u,100,facecolor='b',alpha=0.75,label='Gaussian Distribution') plt.legend(loc="upper left") plt.grid(True) plt.show()
绘制结果如下图所示:
- 机器学习的数学基础(1)——常见的函数与分布
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习数学|概率论基础常见概型分布期望与方差
- 机器学习的数学基础(1)
- 机器学习:LDA_数学基础_2:贝叶斯数学:先验分布的选择
- 机器学习的数学基础(一)—— 期望、方差、协方差与相关系数
- 机器学习的数学基础
- 机器学习的数学基础
- 机器学习的数学基础
- 常见的机器学习与数据挖掘知识点之常见分布
- 机器学习理论篇1:机器学习的数学基础
- 深度学习——数学与机器学习基础
- mysql 追加update_time、create_time、id三字段
- 数据库事务特性、并发、隔离级别、锁种类、锁粒度
- Django使用自定义验证
- C语言回调函数
- 自顶向下,逐步求精
- 机器学习的数学基础(1)——常见的函数与分布
- 解决Eclipse打开后无项目问题
- L
- 【算法】【Dynamic Programming】Unique Paths II
- (四)安卓框架搭建之MVP+Retrofit+RxJava优化
- sprongboot开发注意
- (五)安卓框架搭建之BaseFragment,MainActivity, Toolbar细化
- 汉诺塔问题
- MySQL数据库备份与恢复