核矩阵归一化

机器算法验证 文本挖掘 内核技巧
2022-04-12 20:29:23

最初发布在stats.SE但从未得到答案,所以在这里重新发布。

对内核矩阵进行归一化是不是一个坏主意?我的意思是Shawe-Taylor&Cristianini的“模式分析的内核方法”(matlab notation)第113页描述的方法:

% original kernel matrix stored in variable K
% output uses the same variable K
% D is a diagonal matrix storing the inverse of the norms
D = diag(1./sqrt(diag(K)));
K = D * K * D;

我特别考虑文本挖掘,其中内核由矩阵)形成。我想规范化的原因是我正在考虑组合几个这样的内核(例如来自二元组、三元组等),但是当我这样做时会得到一些非常奇怪的结果。tfidfT K=TT

在没有归一化的情况下对内核求和会导致其中一个占主导地位。(我可以使用加权和 - 例如使用,其中是 Frobenius 范数,但这似乎有点 hack - 这是无监督学习)。1/||K||F||||F

1个回答

只要你明白你在做什么,你会没事的:-)

您实际上是在将数据标准化为在特征空间中具有单位长度。等效于使用这个内核:您的数据现在将落在特征空间中半径为 1 的超球面上。当您添加内核矩阵时,您实际上是在“连接”功能(并非对所有内核都完全正确,但这是一种思考方式)。然而,在标准化情况下,新特征将落在有界、已知半径的超球面上。K(x,y)/K(x,x)K(y,y)

会痛吗?

当然,该功能的实际价值能告诉您什么吗?考虑(归一化)线性内核 [10,10] 肯定是 1 并且 [20,20] 肯定是 -1 的情况,那么使用此内核对您的数据进行归一化并不是一个好主意。

本文是一篇关于这类问题的论文。