Machine learning 分类时,在对真实数据进行预测时,是否需要规范化新引入的特征?

Machine learning 分类时,在对真实数据进行预测时,是否需要规范化新引入的特征?,machine-learning,classification,prediction,Machine Learning,Classification,Prediction,有两个数据集-一个是训练数据集一个是特征数据集,其标签尚待预测(新数据集) 我构建了一个随机森林分类器。一路上我必须做两件事: 规范化连续数字特征 对分类编码执行一个热编码 现在我有两个问题。当我预测新数据的标签时: 我需要规范化传入的功能吗?(常识告诉我是:))如果是,我应该从训练数据集中获取特定特征的平均值、最大值、最小值,还是应该以某种方式考虑特征的新值 如何对特性的新值进行热编码?我是否考虑到功能的可能新值,扩展特定类别的可能类别词典 在我的例子中,我拥有两个数据集,因此我可以提前

有两个数据集-一个是训练数据集一个是特征数据集,其标签尚待预测(新数据集

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

  • 规范化连续数字特征
  • 对分类编码执行一个热编码

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

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

  • 如何对特性的新值进行热编码?我是否考虑到功能的可能新值,扩展特定类别的可能类别词典


  • 在我的例子中,我拥有两个数据集,因此我可以提前计算所有这些数据,但是如果我只有一个分类器和一个新的数据集呢?

    我只知道分类器的类型和您正在使用的规范化技术的基本知识,但我认为一般规则也适用于您正在做的事情,就是要做到以下几点

    您的分类器不是随机林分类器。这只是作为实际分类器的管道的一个步骤。此管道/实际分类器就是您所描述的:

  • 规范化连续数字特征
  • 对分类编码执行一个热编码
  • 使用一个随机林分类器来识别前两步的结果
  • 这个管道包含3个方面,实际上就是您使用的分类器

    现在,分类器是如何工作的

  • 您可以根据训练数据构建一些状态
  • 您可以使用该状态对测试数据进行预测
  • 因此:

  • 我需要规范化传入的功能吗?(常识告诉我是:))如果是,我应该从训练数据集中获取特定特征的平均值、最大值、最小值,还是应该以某种方式考虑特征的新值
  • 您的分类器将规范化训练数据的传入特征,因此它也将规范化那些不可见实例的特征。要做到这一点,它必须使用它在训练期间建立的状态

    例如,如果您正在对功能进行最小-最大缩放,您的州将为每个功能
    f
    存储
    min(f)
    max(f)
    。然后,在测试/预测期间,您将使用存储的
    min(f)
    max(f)
    值对每个特征
    f
    进行最小-最大缩放

    我不知道你所说的“规范化连续数字特征”是什么意思。你是说?如果您在培训期间为这种离散化建立了某种状态,那么您需要找到一种方法将其考虑在内

    如何对特性的新值进行热编码?我是否考虑到功能的可能新值,扩展特定类别的可能类别词典

    难道你不知道每个类别可以预先有多少个值吗?通常你会这样做(因为分类是指国籍、大陆等——你事先知道的事情)。如果你能得到一个你在训练中没有看到的分类特性的值,那么你是否应该关心它就成了一个问题。你从未训练过的分类价值有什么好处

    可能会添加一个“未知”类别。我认为为一个单一的扩展应该是好的,如果你从来没有训练过他们,还有什么好处呢

    你有什么分类


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

    感谢您如此明确的回复,我仍然需要一些时间来正确处理:)关于随机林/一个热门编码。你是对的,它不应该这样,但我使用的是sklearn.employ.RandomForestClassifier分类器,出于某些愚蠢的原因,它们使分类器无法读取分类字符串值-它们都需要转换为标签(0,1,2,3..等等)所以我决定,如果我能将这些值转换成标签,我可以训练自己做一些o-h-e的事情:)@Dennis如果你有更多的问题,请随意发表评论,我会尽力回答。Scikit学习仅适用于数值数据。我会先尝试将分类转换为数字标签。找到一个始终如一做得不错的工作,然后你就有了一个改进的基准。很好的答案。谢谢