【问题标题】:Dealing with different number of levels in train and test data sets处理训练和测试数据集中不同数量的级别
【发布时间】:2016-08-10 14:03:14
【问题描述】:

我在这方面的知识很差,如果这是一个微不足道的问题,请向我道歉。

我需要训练一个模型,并且我有两个数据集:用于构建模型的训练数据和用于在其上应用模型的评分数据。

一个重要的分类变量在训练数据中有 200 个级别,而在评分数据中只有 50 个级别。事实上,它们只共享 20 个级别。

那么,处理这种情况的正确方法是什么?我应该将水平限制在水平的交叉点还是保持不变还是什么? 最佳。

【问题讨论】:

    标签: r


    【解决方案1】:

    这里有许多不同的选项。我假设您在这里谈论的是单个属性,并且我还假设因为您谈论的是数字级别:

    1. 第一种选择是什么都不做,看看你会得到什么结果。
    2. 第二个是标准化值。从 0 到 1 将它们全部设置在相同的范围内。
    3. 您也可以尝试分箱,我不确定 R 中的内容。

    我不是专家,但我发现做一些测试并尝试不同的方法并没有什么坏处。我在学校使用的一个程序叫做 Weka,它是免费和开源的,还有一些教学视频将向您介绍数据分析背后的理论 http://www.cs.waikato.ac.nz/ml/index.html

    【讨论】:

    • 很确定他们在谈论一个分类变量,而不是连续的。不过,我可能是错的。
    【解决方案2】:

    使用测试数据集测试模型时,您需要过滤掉测试数据集中不存在的级别(假设您的模型无法处理缺失的级别)。

    或者,您可以将数据重新划分为测试集和训练集,其中测试集中的所有级别都存在于训练集中。 createDataParition 包中的 createDataParition 函数将为您执行此操作 - 例如见here

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2017-04-05
      • 1970-01-01
      • 2017-03-24
      • 2020-06-26
      • 2014-09-22
      • 1970-01-01
      • 2021-10-03
      • 2016-03-26
      相关资源
      最近更新 更多