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) #中位数取平方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值