高斯核函数 python实现

高斯过程 Gaussian Processes 是概率论和数理统计中随机过程的一种,是多元高斯分布的扩展,被应用于机器学习、信号处理等领域。本文对高斯过程进行公式推导、原理阐述、可视化以及代码实现,介绍了以高斯过程为基础的高斯过程回归 Gaussian Process Regression 基本原理、超参优化、高维输入等问题。

一元高斯分布公式
其概率密度公式如下:
 

高斯核函数 python实现_第1张图片

 核函数(协方差函数)
核函数是一个高斯过程的核心,核函数决定了一个高斯过程的性质。核函数在高斯过程中起的作用是生成一个协方差矩阵(相关系数矩阵),衡量任意两个点之间的“距离”。最常用的一个核函数为高斯核函数,也成为径向基函数 RBF。其基本形式如下其中 。σ 和 h 是高斯核的超参数。

高斯核函数 python实现_第2张图片

一个向量的范数有0范数、1范数、2范数、p范数、无穷范数等等,通常在右边的“||”右下角用小标表示,在机器学习中,没有写出来就算就算默认为表示 2范数

设向量x=(a1,a2……,an), 则  || x ||   表示向量  x  的2范数, 计算公式如下:

    高斯核函数 python实现_第3张图片

现在设 xi = (a1,a2,……,an)

            xj = (b1,b2,……,bn)

则这两个向量的2范数

 

# 定义核函数
   def kernel(self,x1,x2):                   # x1,x2为输入空间
       m,n = x.shape[0], x.shape[0]           #获取行数
       dist_matrix = np.zeros((m,n), dtype=float)   #全零核矩阵
       for i in range(m):
           for j in range(n):
               dist_matrix[i][j] = np.sum((x1[i]-x2[j])**2)    #向量差的平方和
       return np.exp(-0.5/self.h**2*dist_matrix)               #计算结果核矩阵

你可能感兴趣的:(机器学习,python,概率论,算法)