在分类时,是否需要在预测实际数据时规范化新的传入功能?

时间:2015-09-19 18:01:00

标签: machine-learning classification prediction

有两个数据集 - 训练一个和一组功能,标签尚未预测(新的)。

我构建了一个随机森林分类器。一路上我不得不做两件事:

  • 规范化连续数字要素。
  • 对分类进行单热编码。

现在我有两个问题。当我预测新数据的标签时:

  1. 我是否需要规范化传入的功能? (常识告诉我是的:))如果是这样,我应该从训练数据集中获取特定特征的均值,最大值,最小值,还是应该以某种方式考虑特征的新值?

  2. 如何对功能的新值进行热编码?我是否会考虑特征的可能新值来扩展特定类别的可能类别的字典?

  3. 在我的情况下,我拥有两个数据集,所以我可以提前计算所有这些东西,但如果我只有一个分类器和一个新的数据集呢?

1 个答案:

答案 0 :(得分:2)

我只对您使用的分类器类型和规范化技术有基本了解,但我认为适用于您正在做的事情的一般规则是执行以下操作。

您的分类器不是随机森林分类器。这只是管道的一个步骤,它充当您的实际分类器。这个管道/实际分类器就是你所描述的:

  
      
  1. 规范化连续数字要素。
  2.   
  3. 对分类文件执行单热编码。
  4.   
  1. 对前两个步骤中的内容使用随机森林分类器。
  2. 此管道包含3件事,是您实际使用的分类器。

    现在,分类器如何工作?

    1. 根据培训数据构建一些
    2. 您可以使用该状态对测试数据进行预测。
    3. 所以:

        
          
      1. 我是否需要规范传入的功能? (常识告诉我是的:))如果是这样,我应该从训练数据集中获取特定特征的均值,最大值,最小值,还是应该以某种方式考虑特征的新值?
      2.   

      您的分类器会对训练数据的传入要素进行规范化,因此它也会针对看不见的实例对其进行规范化。要做到这一点,它必须使用它在训练期间建立的状态。

      例如,如果您对功能进行最小 - 最大缩放,则您的状态会为每个功能min(f)存储max(f)f。然后,在测试/预测期间,您将使用存储的fmin(f)值对每个要素max(f)进行最小 - 最大缩放。

      我不确定你的意思"标准化连续数字功能"。你的意思是discretization?如果你在训练期间为这种离散化建立一些状态,那么你需要找到一种方法来计算它。

        

      如何对功能的新值进行热编码?我是否会考虑特征的可能新值来扩展特定类别的可能类别的字典?

      你不知道每个类别预先有多少价值?通常你这样做(因为分类是国籍,大陆等事情 - 事先你知道的事情)。如果您可以获得您在培训期间未见过的分类功能的价值,那么即使您应该关心它也会引发疑问。你从未接受过培训的绝对价值有什么用?

      也许添加"未知"类别。我认为扩大一个人应该没问题,如果你从来没有接受过培训,那么还有什么好处呢?

      你有什么样的分类?

      我可能错了,但你真的需要一个热门编码吗? AFAIK,基于树的分类器似乎并没有从中受益。