在大多数学术示例中,我们曾经使用get_dummies
或OneHotEncoder
转换分类特征。假设我想使用Country
作为一项功能,在数据集中我们有 100 个独特的国家/地区。当我们在国家/地区应用get_dummies
时,我们将获得 100 列,模型将使用 100 个国家/地区列和其他功能进行训练。
比方说,我们已经将这个模型部署到生产中,我们只收到了 10 个国家。当我们使用get_dummies
预处理数据时,模型将无法预测,因为"训练的特征模型数量与传递的特征不匹配",因为我们正在传递 10 个国家/地区列和其他特征。
我在下面的文章中遇到了,我们可以使用监督比率,证据权重来计算分数。但是当我们想要预测生产中的目标时,如何计算分数,哪个国家需要分配给正确的数字。
https://www.kdnuggets.com/2016/08/include-high-cardinality-attributes-predictive-model.html
你能帮我了解如何处理这种情况吗?
你可以做两件事。
- 在组合训练集和测试/验证集数据之后应用 OHE,而不是在此之前。
- 跳过 OHE 并应用 StandardScaler,因为"如果一个特征的方差比其他特征大几个数量级,它可能会主导目标函数,并使估计器无法按预期正确地从其他特征中学习。
我通常会尝试第二个选项,当我在任何分类数据集中有多个独特的功能并且可能导致我的测试/验证集时 请随时纠正我。