我有一个数据集,其中包含与向某人例如称呼称呼有关的特征向量先生,夫人等。我正在使用此特征向量对这些人的年龄进行预测,但我的训练集并未包含我在测试集中看到的所有值。我考虑过一种方法,可以将测试集和训练集中的特定特征向量的值组合在一起,但是我不想这样做,我认为这是作弊的,因为我们正在使用测试集中的信息动车组。我真的很想就如何解决问题提出一些意见。

训练集中存在的所有值:

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称呼的人的平均年龄


合适的方法取决于数据源,是否还有其他变量,什么是评估指标等。

10-04 14:16