【问题标题】:How do I handle categorical data where there are different numbers of categories for a data point in training and testing?在训练和测试中一个数据点有不同数量的类别时,如何处理分类数据?
【发布时间】:2019-05-03 15:50:07
【问题描述】:

我正在从事以下 Kaggle 项目:https://www.kaggle.com/c/house-prices-advanced-regression-techniques

我的问题是,如果有一个分类值选项存在于测试数据中,但不在训练数据中,反之亦然。例如,如果数据点 A 在训练数据中有选项 [a,b],但在测试数据中有选项 [a,b,c],反之亦然。感谢您的帮助!

我只想能够正确地训练和运行我的神经网络。

【问题讨论】:

    标签: python-3.x jupyter-notebook data-science


    【解决方案1】:

    你是 OneHotEncoding (https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html) 你的分类数据吗?您可以通过在拆分之前对分类列进行 OneHotEncoding 来避免此问题。这意味着将训练模型以考虑此列。这种方法的一个缺点是训练只会看到代表在训练集中看不到的值的列的“0”值。也许不是最佳选择,但可以解决您遇到的问题?

    问题是由于您的数据集非常小,还是因为您的列具有很多唯一值?

    【讨论】:

    • 嗨。感谢您的帮助。我是一个热门编码,但我愿意接受其他想法。这个特殊情况的问题是数据集很小,但我会很好奇你对一个有很多值的列的回答吗?谢谢!
    • 我怀疑单热编码是处理这些列的唯一方法,当然,如果您使用的是小型数据集。您也许可以考虑在划分之前复制数据群以增加集合的数量?这会给你更多的工作,如果你直接复制数据集中属性的比例将得到维护。
    • 谢谢!!我一定会试试的!
    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2011-01-04
    • 2022-01-19
    • 2018-01-01
    • 2018-05-04
    • 2017-02-20
    • 2019-01-19
    相关资源
    最近更新 更多