【问题标题】:big number of attributes best classifiers大量属性最佳分类器
【发布时间】:2014-01-09 04:06:25
【问题描述】:

我有由 940 个属性和 450 个实例构建的数据集,我正在尝试找到最佳分类器以获得最佳结果。 WEKA推荐的每一个分类器我都用过(比如J48、costSensitive、combinatin of several classifier等) 我发现的最佳解决方案是 J48 树,准确度为 91.7778 % 混淆矩阵为:

394  27 |   a = NON_C
 10  19 |   b = C

我想在 TN 和 TP 的混淆矩阵中获得更好的结果,每个结果至少有 90% 的准确度。 我可以做些什么来改进这一点(例如扫描所有选项的长时间运行分类器?我没有想到的其他想法? 这是文件:

https://googledrive.com/host/0B2HGuYghQl0nWVVtd3BZb2Qtekk/

请帮忙!!

【问题讨论】:

  • 你试过支持向量机吗?当您有很多输入维度时(以及您正在使用的n<p-scenario),它们工作得很好。
  • @MarcClaesen 是的,我已经尝试过 SVMlib 和 SVMlinear,我应该选择哪些选项?什么是 n

  • @MarcClaesen 这里的问题是特征数量高于实例数量 - 所以 SVM 不会是最好的工具
  • @xhudik 这正是 SVM 好的原因,因为它隐含地使用了与特征数量无关的相似性。这称为n<p 设置。
  • 有什么方法可以提高分类算法的准确率(如SVM),运行时间长?内核选项是什么?

标签: machine-learning data-mining


【解决方案1】:

我猜你有一个数据集并尝试了所有可能的算法......

通常,考虑问题是一件好事:

  1. 仅查找和使用相关功能(属性),否则 任务可能很吵。相关特征 = 具有高 与类 (NON_C,C) 的相关性

  2. 您的数据集有偏差,即 NON_C 的数量远高于 C。 有时,在正面和负面(在您的情况下为 NON_C 和 C)示例的同一部分训练您的算法可能会有所帮助。并在自然(真实)部分进行交叉验证

  3. 与训练数据的数量相比,您的训练数据规模较小 特征。也许增加实例数量会有所帮助...

    ...

【讨论】:

    【解决方案2】:

    您可以做很多事情来改进分类结果。

    首先,您的训练数据似乎严重不平衡。通过使用这种不平衡进行训练,您几乎会在任何分类算法中产生明显的偏差

    其次,您拥有比示例更多的功能。考虑使用 L1 和/或 L2 正则化来提高结果的质量。

    第三,考虑将您的数据投影到较低维度的 PCA 空间中,例如包含 90% 的方差。这将消除训练数据中的大部分噪音。

    第四,确保您正在对数据的不同部分进行训练和测试。根据您的描述,您似乎正在对相同的数据进行训练和评估,这是一个很大的禁忌。

    【讨论】:

    • 谢谢,关于您的第四条评论 - 可以使用交叉验证吗?我没有看到任何其他方法来测试它。第二,我通过 SVMlib 分类器得到了更好的结果,问题是我无法在决策树上显示结果。为什么?
    • 交叉验证是测试您的模型所必需的。 SVM 是一种与决策树完全不同的技术,因此您不能在决策树上显示它。
    猜你喜欢
    • 2015-08-06
    • 2011-09-30
    • 2015-08-26
    • 2016-01-16
    • 1970-01-01
    • 2017-10-11
    • 2015-03-08
    • 2010-10-11
    • 1970-01-01
    相关资源
    最近更新 更多