代码之家  ›  专栏  ›  技术社区  ›  hidemyname

如何处理SVR任务中的高维稀疏特征?

  •  1
  • hidemyname  · 技术社区  · 11 年前

    我有一个类似twitter(另一个微博)的数据集,有160万个数据点,并试图根据其内容预测其转发数量。我提取了它的关键字,并将这些关键字用作单词包特征。然后我得到了120万个维度特征。特征向量非常稀疏,通常在一个数据点中只有十维。我使用SVR进行回归。现在已经用了2天。我认为训练时间可能需要很长时间。我不知道我这样做是否正常。是否有任何方法或有必要优化此问题?
    顺便说一下,如果在这种情况下,我没有使用任何内核,机器是32GB RAM和I-7 16核。预计培训时间为多久?我使用了lib pyml。

    2 回复  |  直到 11 年前
        1
  •  1
  •   Bob Dillon    11 年前

    你需要找到一种适合你的问题的降维方法。

    我曾处理过一个与您类似的问题,我发现信息增益工作得很好,但也有其他问题。

    我发现这篇论文(Fabrizio Sebastiani,《自动文本分类中的机器学习》,ACM计算调查,第34卷,第1期,第1-47页,2002年)是文本分类的一个很好的理论处理,包括通过从简单(术语频率)到复杂(信息理论)的各种方法进行特征约简。

    这些函数试图捕捉ci的最佳术语是 在一组积极和消极的例子中 ci。然而,不同职能部门对这一原则的解释各不相同。例如,在实验科学中,2用于测量观察结果与根据初始假设预期的结果之间的差异(即,独立性)(值越低,相关性越低)。在DR中,我们测量tk和ci的独立程度。因此,具有2(tk,ci)的最低值的项tk与ci最独立;由于我们对不感兴趣的项感兴趣,因此我们选择2(tk,ci)最高的项。

    这些技巧帮助您选择在将培训文档划分为给定课程时最有用的术语;对您的问题具有最高预测值的术语。

    我已经成功地将信息增益用于特征缩减,并发现这篇论文(基于熵的文本分类特征选择Largeron、Christine和Moulin、Christophe和Gry、Mathias-SAC-第924-928页2011)是非常好的实用指南。

    在这里,作者提出了一个基于熵的特征选择的简单公式,这对代码中的实现很有用:

    给定术语tj和类别ck,ECCD(tj,ck)可以是 根据应急表计算。设A为数字 包含tj的类别中的文档;B、 数字 包含tj的其他类别的文件;C、 不包含tj和D的ck文档的数量, 其他类别中的文档数量 不包含tj(N=A+B+C+D):

    enter image description here

    使用该应急表,信息增益可通过以下方式估算:

    enter image description here

    该方法易于实现,并提供了非常好的信息论特征约简。

    你也不需要使用单一的技术;你可以把它们组合起来。Ter频率很简单,但也可以有效。我已经将信息增益方法与术语频率相结合,成功地进行了特征选择。你应该对你的数据进行实验,看看哪种技术最有效。

        2
  •  0
  •   Ibraim Ganiev    11 年前

    首先,你可以简单地删除所有高频词和所有低频词,因为这两个词都不会告诉你文本的内容,然后你必须做词干。

    之后,您可以尝试降低空间的维度 Feature hashing 或者更高级的降维技巧( PCA , ICA ),甚至两者都有。

    推荐文章