【问题标题】:How could I deal with the sparse feature with high dimension in an SVR task?如何处理 SVR 任务中的高维稀疏特征?
【发布时间】:2015-11-21 09:10:32
【问题描述】:

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

【问题讨论】:

    标签: machine-learning nlp pyml


    【解决方案1】:

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

    我曾处理过与您类似的问题,我发现 Information Gain 效果很好,但还有其他问题。

    我发现这篇论文(Fabrizio Sebastiani, Machine Learning in Automated Text Categorization, ACM Computing Surveys, Vol. 34, No.1, pp.1-47, 2002)是对文本分类的很好的理论处理,包括特征通过从简单(词频)到复杂(信息论)的多种方法进行归约。

    这些函数试图捕捉这样一种直觉,即 ci 的最佳术语是 在正例和负例集中分布最不同的 ci。然而,对这一原则的解释因不同的职能而异。例如,在实验科学中,χ2 用于衡量观察结果与根据初始假设预期的结果有何不同(即独立)(较低的值表示较低的依赖性)。在 DR 中,我们衡量 tk 和 ci 的独立程度。因此,对于 χ2(tk, ci) 具有最低值的项 tk 与 ci 最独立;由于我们对不感兴趣的项感兴趣,因此我们选择 χ2(tk, ci) 最高的项。

    这些技术可帮助您选择最有用的术语,将培训文档分成给定的类别;对您的问题具有最高预测值的术语。

    我已经成功地使用信息增益来减少特征,并发现这篇论文(基于熵的文本分类特征选择 Largeron、Christine 和 Moulin、Christophe 和 Géry、Mathias - SAC - Pages 924-928 2011)非常很好的实用指南。

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

    给定一个术语 tj 和一个类别 ck,ECCD(tj , ck) 可以是 从列联表计算。设 A 为数 包含 tj 的类别中的文档; B、号码 包含 tj 的其他类别的文​​档; C、 ck 的不包含 tj 和 D 的文档数, 其他类别中的文档数量 不包含 tj(其中 N = A + B + C + D):

    使用此列联表,可以通过以下方式估算信息增益:

    这种方法很容易实现,并且提供了非常好的信息论特征缩减。

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

    【讨论】:

      【解决方案2】:

      首先你可以简单地删除所有高频词和所有低频词,因为它们都不能告诉你关于文本内容的太多,然后你必须做一个词干。

      之后,您可以尝试使用Feature hashing 或一些更高级的降维技巧(PCAICA)或两者兼而有之来降低空间的维度。

      【讨论】:

      • 您好问题是这不是一个普通的英文nlp问题。这是一个中文微博。我找不到阻止中文单词的方法。而且我没有找到频率高的词,最高的是5099频率。但我认为去除低频确实是个好主意。那么通常在这种情况下,应该保留多少维呢?
      • @deathlee,嗯,我对中文一无所知,无论如何你需要自己调整维度的数量,并检查模型是否在这些维度上提供足够的分类精度。也许你可以找到中文停用词词典并删除它们(实际上它与删除高频词相同)?
      • 考虑以下两种情况:
      • 1) 高频或低频术语,其中该术语的所有出现都在一个或另一类的文档中;2) 高频或低频术语,其中该术语的出现均匀分布在2类文件。在情况 1 中,项是与频率无关的高值特征;在情况 2 中,项是低值特征,也与频率无关。最基本的特征选择技术 tf-idf 通过检查术语的频率和分布来解决这个问题。还有其他更复杂的统计方法。
      • @BobDillon,这是一个很好的方法,但我认为只有当你的类等于类别时它才有用。我的意思是你可以假设每个课程都有一些主要主题(技术、金融、新闻)。但他只想预测某条推文是否会被转发,而“yes”(转发)类可能同时包含多个主题,因为不同的人可以转发不同的推文,对不同的主题感兴趣。
      猜你喜欢
      • 2014-09-13
      • 2013-09-25
      • 2015-08-27
      • 2013-07-17
      • 2019-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多