我有一个数据集,其中包含与向某人例如称呼称呼有关的特征向量先生,夫人等。我正在使用此特征向量对这些人的年龄进行预测,但我的训练集并未包含我在测试集中看到的所有值。我考虑过一种方法,可以将测试集和训练集中的特定特征向量的值组合在一起,但是我不想这样做,我认为这是作弊的,因为我们正在使用测试集中的信息动车组。我真的很想就如何解决问题提出一些意见。
训练集中存在的所有值:
levels(as.factor(x$Salutation))
[1] "Capt" "Col" "Countess" "Don" "Dr" "Jonkheer" "Lady" "Major" "Master" "Miss" "Mlle" "Mme" "Mr" "Mrs" "Ms" "Rev" "Sir"
测试集中存在的所有值:
levels(as.factor(y$Salutation))
[1] "Col" "Dona" "Dr" "Master" "Miss" "Mr" "Mrs" "Ms" "Rev"
当我尝试预测测试集的年龄时,称呼“ Dona”会破坏我的决策树
最佳答案
正如BondedDust指出的那样,没有办法知道“ Dona”可能意味着什么。但是,您可以将这种观察标记为“ NA”,这是决策树可以处理的。然后,根据您的问题表述,您可以
称呼为NA的人员的输出NA年龄
将总的平均年龄替换为不称职的人
可能的是,将训练中具有NA称呼的人的平均年龄替换为测试集中具有NA称呼的人的平均年龄
合适的方法取决于数据源,是否还有其他变量,什么是评估指标等。