【问题标题】:Purpose of test data in supervised learning?监督学习中测试数据的目的?
【发布时间】:2015-05-02 10:01:11
【问题描述】:

所以这个问题可能看起来有点愚蠢,但我无法理解它。 测试数据的目的是什么?只是计算分类器的准确性吗?我正在使用朴素贝叶斯对推文进行情绪分析。一旦我使用训练数据训练了我的分类器,我就使用测试数据来计算分类器的准确性。如何使用测试数据来提高分类器的性能?

【问题讨论】:

    标签: machine-learning test-data supervised-learning


    【解决方案1】:

    您不会 - 正如您所猜测的那样,测试数据用于测试,不得用于其他任何用途,以免您歪曲您的准确度测量。这是任何机器学习的重要基石——只有在使用测试数据进行训练时才会自欺欺人。

    如果您正在考虑这样的绝望措施,那么正确的前进方式通常是重新检查您的问题空间和您拥有的解决方案。它是否充分模拟了您要解决的问题?如果没有,您能否设计一个更好的模型来捕捉问题的本质?

    机器学习不是灵丹妙药。它不会为您解决问题。太多失败的实验一遍又一遍地证明,“垃圾进——垃圾出”。

    【讨论】:

    • 那么,增加训练集是提高分类器性能的唯一方法吗?
    • 一个更好的模型通常是获得实质性改进的唯一方法,这似乎是您要问的。使用更好的特征,或者如果你幸运的话,放弃噪音特征;或者,尝试一种完全不同的方法。
    • 我尝试从推文中去除名词和符号,但结果并不是那么好。如果您不介意,您能否提出任何其他改进以获得更好的功能?
    • 也许你可以用一些涉及你的 Twitter 数据的问题的背景来更新你的问题。这可能有助于获得更直接的答案。
    【解决方案2】:

    在进行一般监督机器学习时,测试数据集在确定模型的性能方面发挥着关键作用。您通常会使用 90% 的输入数据构建模型,留出 10% 用于测试。然后,您可以通过查看它在 10% 训练集上的表现来检查该模型的准确性。模型对测试数据的性能是有意义的,因为模型从未“看到”过这些数据。如果模型在统计上是有效的,那么它应该在训练和测试数据集上都表现良好。这个通用过程称为交叉验证,您可以阅读更多关于它的信息here

    【讨论】:

    • 您是否将您的集合划分为训练集+开发测试集,例如this
    • 我没有任何使用朴素贝叶斯的经验,但我已经广泛使用决策树(以及一些 SVM)。您提到的文章看起来很适合您的工作。
    猜你喜欢
    • 2012-11-08
    • 2014-04-20
    • 2013-03-24
    • 2021-10-17
    • 2017-07-27
    • 2017-08-11
    • 2019-02-20
    • 2018-10-17
    • 2014-06-11
    相关资源
    最近更新 更多