我有一组矢量。我正在研究将n维向量减少到一元值(1-d)的方法,比如说
(x1,x2,....,xn) ------> y
该单个值需要是向量的特征值。每个唯一向量都会产生唯一的输出值。以下哪种方法是合适的:
矢量的1-范数 - 测量距离原点的欧几里德距离的平方和的平方根
2计算F的散列,使用一些避免冲突的散列技术
3-使用线性回归计算,y = w1 * x1 + w2 * x2 + ... + wn * xn - 如果输入值与输出没有良好的依赖关系,则不太可能是好的
像PCA这样的4-特征提取技术,基于x1,x2,... xn分别赋予权重 输入向量集答案 0 :(得分:0)
从方法中不清楚这个转换需要哪些属性,所以我猜测你不需要转换来保留除唯一性和可能的可逆性之外的任何属性。
您建议的所有技术通常都不能避免碰撞:
Norm - 指向相反方向的两个向量具有相同的范数。
散列 - 如果输入不知道apriori - 散列函数通常意味着有一个有限的图像,并且你有无数个可能的向量 - 没有好处。
很容易找到对任何线性回归结果给出相同结果的向量(想一想)。
PCA是一种特定的线性变换 - 因此与线性回归的问题相同。
所以 - 如果你只是寻找唯一性,你可以“字符串化”你的向量。一种方法是将它们写成文本字符串,不同的坐标用特殊字符(例如下划线)分隔。然后将此字符串的二进制值作为表示。
如果空间很重要并且您需要更高效的表示,您可以考虑更有效的位编码:集合0,1,...,9,'。',''中的每个字符都可以由4位表示 - 十六进制数字(将'''映射到A,将''映射到B)。现在将此字符串编码为十六进制数字,节省一半的空间。