centering matrix中心矩阵的代码测试

centering matrix

在这里插入图片描述

在这里插入图片描述

对于每个[m,n]的矩阵X,当Cm乘X得到的结果是,每个元素减去每一列的平均值
当X乘Cn得到的结果是,每个元素减去每一行的平均值
对于每个[n,n]的矩阵X,当Cn乘X乘Cn得到的结果是,双中心矩阵,行和列的平均值都是0。
在这里插入图片描述
在这里插入图片描述
对于每个[m,n]的矩阵X,XCnX’结果是协方差矩阵。(每个行是一个变量,列是一个样本)
(CnX)’(CnX)=X’CnX(列是一个变量,行是样本)

代码演示

在这里插入图片描述
在这里插入图片描述
H2和H3如上。
在这里插入图片描述
KH和HK(对应减去row/column的均值)验证完毕。

在这里插入图片描述
在这里插入图片描述

对于每个[m,n]的矩阵X,XCnX’结果是协方差矩阵。(每个行是一个变量,列是一个样本)

在这里插入图片描述
在这里插入图片描述
对于每个[m,n]的矩阵X,(CmX)’(CmX)=X’CmX是协方差矩阵(列是一个变量,行是样本)

在这里插入图片描述
双中心矩阵
在这里插入图片描述
HKH结果为双中心矩阵,HKH 或者HKH 都等价
相当于把行和列的平均值依次做了减法,最终得到的矩阵就是双中心矩阵,行和列的平均值都是0.

线性核转化为rbf核

将核函数转换为在这里插入图片描述
先给定一个矩阵K
在这里插入图片描述
线性核应该是K乘K的转置

在这里插入图片描述
在这里插入图片描述
线性核的a[i][j]表示的是i向量和j向量的内积

将其转化为RBF核矩阵

RBF核的a[i][j]表示的是i向量和j向量的距离然后除以一个常数
首先转换为两个向量的距离 即(a-b)2=a2+b2-2ab

  dot_products = x.dot(x.T)#求得线性核 
  sq_norms = np.diag(dot_products) #线性核的对角线 即各个向量的平方
  sq_distances = -2 * dot_products + sq_norms[:, None] + sq_norms[None, :]
  #-2*dot_products得到的矩阵的各个元素为:-2ab,加上后面两个即 a2+b2

在这里插入图片描述
结果无误。
第二种方法也可以

   GX = np.dot(X, X.T)
   KX = np.diag(GX) - GX + (np.diag(GX) - GX).T

在这里插入图片描述
sigma值的确定

 mdist = np.median(KX[KX != 0])  #除了对角线的所有距离
 sigma = math.sqrt(mdist) #中位数取平方
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页