2

我有一些整数的高维(30000 维)向量。我有 2 节课:[是,否]。我有 6000 个 YES 类样本和 50000 个 NO 类样本。我想训练一个分类器,以便将来自动将新样本分类到这些类之一。

我知道如何使用 Weka Java API,但我不确定以何种顺序使用哪些算法。任何人都可以就以下问题给我建议:

  1. 向量是不是维数太高,还是我有太多样本无法在 Weka 中有效地做到这一点?
  2. 我应该在开始之前降低维度吗?我可以使用什么算法来识别特征向量的重要元素?
  3. 哪种分类器最适合对此类数据进行分类?我认为决策树应该可以正常工作,但也许朴素贝叶斯训练起来更快,是吗?
  4. 由于 weka 中的每个元素都必须有一个名称,我如何为我的 30000 个功能中的每一个分配一个名称?

任何建议表示赞赏。谢谢。

4

1 回答 1

0
  1. 这个问题的维度数量肯定是相当大的,但我相信 Weka 应该能够处理大量的维度。样本的数量应该不是问题,但是 NO 类的样本比 YES 类的样本要多得多,因此平衡两者可能有助于更好地对 NO 类的情况进行分类。

  2. 如果您认为存在冗余维度或某些维度可能包含噪声,那么它肯定会有所帮助。

  3. 决策树不应该是太大的问题。Weka 中有许多算法可用,但考虑到问题的维度,我不推荐使用神经网络。

  4. 如果您已将数据保存在 CSV 文件中,则可以在数据的第一行指定属性名称。这样,您可以分配属性名称。给定维数,您可能会将这些 a1 称为 a30000 和输出类的输出。

希望这可以帮助!

于 2014-09-12T02:39:58.657 回答