【问题标题】:how to reduce dimensionality of vector如何降低向量的维数
【发布时间】:2013-04-07 19:55:36
【问题描述】:

我有一组向量。我正在研究将 n 维向量减少为一元值 (1-d) 的方法,比如

(x1,x2,....,xn) ------> y

这个单一的值需要是向量的特征值。每个唯一的向量产生一个唯一的输出值。以下哪种方法合适:

1- 向量的范数 - 平方和的平方根,测量到原点的欧几里得距离

2- 计算 F 的散列,使用一些散列技术避免冲突

3- 使用线性回归计算,y = w1*x1 + w2*x2 + ... + wn*xn - 如果输入值对输出没有很好的依赖性,则不太可能很好

4- 特征提取技术,如 PCA,根据 输入向量集

【问题讨论】:

  • 降维的目的是什么?你想用向量做什么?如果是机器学习问题,最好使用 PCA。
  • 这有点取决于你想用独特的价值做什么。你能详细说明一下吗?
  • @d.j.sheldrick ;我需要这些唯一值来简化向量的计算。
  • @AlptiginJalayr:我不太确定 PCA 是否提供独特的价值
  • 你需要对这些向量做什么样的计算?

标签: math vector machine-learning vectorization dimension-reduction


【解决方案1】:

从方法中不清楚您需要此转换具有哪些属性,因此我猜测您不需要转换来保留除唯一性和可能可逆性之外的任何属性。

您建议的任何技术通常都不能避免冲突:

  1. 范数 - 指向相反方向的两个向量具有相同的范数。

  2. 散列 - 如果输入不是先验已知的 - 散列函数通常表示的图像是有限的,而您有无限数量的可能向量 - 不好。

  3. 很容易找到对任何线性回归结果都给出相同结果的向量(考虑一下)。

  4. PCA 是一种特殊的线性变换 - 因此与线性回归的问题相同。

所以 - 如果您只是在寻找唯一性,您可以“字符串化”您的向量。一种方法是将它们写成文本字符串,不同的坐标由特殊字符(例如下划线)分隔。然后把这个字符串的二进制值作为你的表示。

如果空间很重要并且您需要更有效的表示,您可以考虑更有效的位编码:集合 0,1,...,9,'.','' 中的每个字符都可以由 4 位表示 - 一个十六进制数字(映射 '.' 到 A 和 '' 到 B)。现在将此字符串编码为十六进制数,节省一半的空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多