【问题标题】:Feature vectors for multiclass perceptron多类感知器的特征向量
【发布时间】:2020-02-12 23:33:31
【问题描述】:

我正在尝试在 python 中实现多类感知器。当涉及到多分类时,我已经完全理解了感知器算法的概念,但仍然对我们应该从训练数据中提供的特征向量感到困惑。

这个问题只是一个文本(文档)分类问题。我正在尝试在文本预处理阶段使用一元词频率作为感知器的特征。当我根据每个训练文档中的术语(即 unigram)频率为每个文档构建特征时,构造的特征恰好非常稀疏(文档中出现的每个标记的术语频率,而那些没有的则为 0发生)。

我的问题是关于这个的替代模式。构建特征向量有更好的解决方案吗?

谢谢!

【问题讨论】:

    标签: python machine-learning perceptron


    【解决方案1】:

    另一种方法是词嵌入。在这种情况下,不是使用 one-hot 向量对单词进行编码,而是使用如下图所示的密集特征对它们进行编码。

    此图显示了一种降维方法,但该技术可以用作模型的输入。

    更新

    解决文本问题的更好方法是循环神经网络 (RNN),如 LSTM 和 GRU。这些网络在应用于文本问题时,会根据文本的 oder 词来预测输出。下图显示了 RNN 的示例。

    “X”是输入特征,X1 是第一个词,X2 是第二个词,Xt 是最后一个词,“W”是为网络传播的信息。使用此模式,模型将根据您所有文本的信息进行预测,不仅知道一元组,还知道单词之间的关系。

    【讨论】:

    • 我对词嵌入方法很熟悉,但是对于这个特定的问题,我倾向于使用一元词频率特征。
    • 我将使用一种我认为对您的问题更好的方法来更新我的答案,而不是输入功能。
    • 感谢您的全面回答,但正如我所说,哪种方法更适合这个问题并不重要,特别是关于使用 unigram 频率特征的多类感知器。再次感谢
    【解决方案2】:

    我通过使用训练集中出现的每个一元组的 ID 来解决这个问题;具体来说,训练集中的每个实例。

    因此,首先我通过遍历每个文档来创建一个独特的词汇字典,为新出现的每个术语赋予增量 id。在执行感知器时,我在文档中遍历词汇 id 及其计数,并将它们与感知器权重矩阵中的相关条目相乘。从这个意义上说,我不需要做点积,忽略那些稀疏的条目(0 * 0)。

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 2015-04-16
      • 2014-03-11
      • 2017-02-21
      • 2015-03-20
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      相关资源
      最近更新 更多