样本空间
样本空间是一个实验或随机试验所有可能结果的集合,随机试验中的每个可能结果称为样本点。例如投掷一个骰子,那么样本空间就是{1,2,3,4,5,6}。
随机变量
随机变量,顾名思义,就是“其值随机而定”的变量,一个随机试验有许多可能结果,到底出现哪个预先是不知道的,其结果只有等到试验完成后才能确定。
如掷骰子,掷出的点数X是一个随机变量,它可以取1、2、3、4、5、6中的任何一个,到底是哪一个,要等掷了骰子以后才知道。
概率分布
概率分布用来描述随机变量(含随机向量)在每一个可能状态的可能性大小。
对于随机变量X,其概率分布通常记为P(X=x),或X~P(x),表示X服从概率分布P(x)。在实际应用中,通常比较关心随机变量落在某一区间的概率,为此,引入分布函数的概念。
分布函数
定义:设X是一个随机变量,xk是任意实数值,函数:
称为随机变量X的分布函数。
对任意的实数x1、x2(x1<x2),有:
成立。上面式子表明若随机变量X的分布函数已知,那么可以求出X落在任意一区间[x1,x2]的概率。
离散型随机变量
设x1,x2,…,xn是随机变量X的所有可能取值,对每个取值xi,X=xi是其样本空间S上的一个事件,为描述随机变量X,还需知道这些事件发生的可能性(概率)。
设离散型随机变量X的所有可能取值为xi(i=1,2,…,n):
称为X的概率分布或分布律,也称概率函数。
常见的离散随机变量的分布有:
两点分布
若随机变量X只可能取0和1两个值,且它的分布列为P(X=1)=p,P(X=0)=l-P,其中(0
二项分布
一般用二项分布来计算概率的前提是,每次抽出样品后再放回去,并且只能有两种试验结果,比如黑球或红球,正品或次品等。二项分布指出,假设某样品在随机一次试验出现的概率为p,那么在n次试验中出现k次的概率为:
假设随机变量X满足二项分布,且知道n、p、k等参数,如何求出各种情况的概率值呢?这里介绍一种比较简单的方法,利用scipy库的统计接口stats即可,具体如下:
import numpy as np
import matplotlib.pyplot as plt
import math
from scipy import stats
%matplotlib inline
n = 20
p = 0.3
k = np.arange(0,41)
#定义二项分布
binomial = stats.binom.pmf(k,n,p)
#二项分布可视化
plt.plot(k, binomial, 'o-')
plt.title('binomial:n=%i,p=%.2f'%(n,p),fontsize=15)
plt.xlabel('number of success')
plt.ylabel('probalility of success', fontsize=15)
plt.grid(True)
plt.show()
连续型随机变量
与离散型随机变量不同,连续型随机变量采用概率密度函数来描述变量的概率分布。
如果一个函数f(x)是密度函数,满足以下三个性质,我们就称f(x)为概率密度函数。
正态分布
也称“常态分布”,又名高斯分布,正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。正态分布是一种理想分布。
用python来实现正太分布
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
%matplotlib inline
#平均值或期望值
mu=0
#标准差
sigma1=1
sigma2=2
#随机变量的取值
x=np.arange(-6,6,0.1)
y1=stats.norm.pdf(x,0,1) #定义正态分布的密度函数
2=stats.norm.pdf(x,0,2) #定义正态分布的密度函数
plt.plot(x,y1,label='sigma is 1')
plt.plot(x,y2,label='sigma is 2')
plt.title('normal $\mu$=%.1f,$\sigma$=%.1f or %.1f '%(mu,sigma1,sigma2))
plt.xlabel('x')
plt.ylabel('probability density')
plt.legend(loc='upper left')
plt.show()
期望值
衡量随机变量的取值大小,数学期望也常称为均值,即随机变量取值的平均值,当然这个平均是指以概率为权的加权平均。期望值可大致描述数据的大小,但无法描述数据的离散程度。
方差
衡量随机变量数据离散程度
假设随机向量X有均值E(X)=a。试验中,X取的值当然不一定恰好是a,可能会有所偏离。偏离的量X-a本身也是一个随机变量。如果我们用X-a来刻画随机变量X的离散程度,当然不能取X-a的均值,因E(X-a)=0,说明正负偏离抵消了,当然我们可以取|X-a|这样可以防止正负抵消的情况,但绝对值在实际运算时很不方便。那么可以考虑另一种方法,先对X-a平方以便消去符号,然后再取平均得E(X-a)2或E(X-EX)2,用它来衡量随机变量X的取值的离散程度,这个量就叫作X的方差(即差的方)
协调方差
揭示随机向量间关系
对于多维随机向量,如二维随机向量(X,Y)如何刻画这些分量间的关系?显然均值、方差都无能为力。这里我们引入协方差的定义,我们知道方差是X-EX乘以X-EX的均值,如果我们把其中一个换成Y-EY,就得到E(X-EX)(Y-EY),其形式接近方差,又有X、Y两者的参与,由此得出协方差的定义,随机变量X、Y的协方差,记为Cov(X,Y):
协方差则可衡量随机变量间的相关性强度
求随机变量的方差、协方差、相关系统等,使用Python的NumPy相关的函数,如用numpy.var求方差,numpy.cov求协方差,使用numpy.corrcoef求相关系数
在机器学习中多维随机向量通常以矩阵的方式出现,所以求随机变量间的线性相关性,就转换为求矩阵中列或行的线性相关性。
这里我们举一个简单实例,来说明如果分析向量间的线性相关性并可视化结果。这个例子中使用的随机向量(或特征值)共有三个,一个是气温(temp),一个体感温度(atemp),一个是标签(label,说明共享单车每日出租量),下表是这三个特征的部分数据
这里使用Python中数据分析库pandas及画图库matplotlib、sns等。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
data_pd=data1.toPandas()
sns.set(style='whitegrid',context='notebook')
cols=['temp','atemp','label']
sns.pairplot(data_pd[cols],size=2.5)
plt.show()
可以看出,特征temp与atemp是线性相关的,其分布接近正态分布。
贝叶斯定理
贝叶斯定理是概率论中的一个定理,它跟随机变量的条件概率以及边缘概率分布有关。在有些关于概率的解释中,贝叶斯定理(贝叶斯公式)能够告知我们如何利用新证据修改已有的看法。这个名称来自于托马斯·贝叶斯。
通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A(发生)的条件下的概率是不一样的;然而,这两者是有确定关系的,贝叶斯定理就是这种关系的陈述。贝叶斯公式的一个用途在于通过已知的三个概率函数推出第四个。
贝叶斯公式为:
在贝叶斯定理中,每项都有约定俗成的名称:
·P(B|A)是已知A发生后B的条件概率,由于得自A的取值也被称作B的后验概率。
·P(B)是B的先验概率(或边缘概率)。之所以称为“先验”是因为它不考虑任何A方面的因素。
·P(A|B)是已知B发生后A的条件概率,称为似然(likelihood),也由于得自B的取值而被称作A的后验概率。
·P(A)是A的先验概率或边缘概率。
信息论主要研究的是对信号所含信息的多少进行量化。
信息量
信息量是信息论中度量信息多少的一个物理量,它从量上反应具有确定概率的事件发生时所传递的信息。
信息熵
信息熵(entropy)又简称为熵,是对随机变量不确定性的度量。
信息熵越大,包含的信息就越多,那么随机变量的不确定性就越大。
条件熵
条件熵H(Y|X)表示在已知随机变量X的条件下,随机变量Y的不确定性。
注意,这个条件熵不是指随机变量X在给定某个数的情况下,另一个变量的熵是多少,以及变量的不确定性是多少,而是期望!因为条件熵中X也是一个变量,意思是在一个变量X的条件下(变量X的每个值都会取),另一个变量Y熵对X的期望。
条件熵比熵多了一些背景知识,按理说条件熵的不确定性小于熵的不确定性,即H(Y|X)≤H(Y)
定理:对二维随机变量(X,Y),条件熵H(Y|X)和信息熵H(Y)满足如下关系:
互信息
互信息(mutual information)又称为信息增益,用来评价一个事件的出现对于另一个事件的出现所贡献的信息量。记为:
在决策树的特征选择中,信息增益为主要依据。在给定训练数据集D,假设数据集由n维特征构成,构建决策树时,一个核心问题就是选择哪个特征来划分数据集,使得划分后的纯度最大。一般而言,信息增益越大,意味着使用某属性a来划分所得“纯度提升”越大。因此,我们常用信息增益来构建决策树划分属性。
相对熵
相对熵(relative entropy),所谓相对,一般是在两个随机变量之间来说,又被称为KL散度(Kullback-Leibler Divergence,KLD)
相对熵有些重要性质:
交叉熵
交叉熵可在神经网络(机器学习)中作为代价函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵代价函数可以衡量p与q的相似性。
交叉熵作为代价函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差代价函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。