测试集中存在的训练集的特征向量中看不见的值

时间:2014-07-19 16:04:22

标签: r machine-learning data-mining

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

训练集中的所有值:

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"当我试图预测测试集上的年龄时,搞砸了我的决策树

2 个答案:

答案 0 :(得分:0)

正如BondedDust指出的那样,没有办法知道什么" Dona"可能意味着。但是,您可以将此类观察标记为" NA"这是决策树可以处理的东西。然后根据你的问题表述你可以

  1. 称呼为NA的人的输出NA年龄
  2. 将年龄的总体平均值替换为NA致敬的人
  3. 可能将代表NA致敬的人的平均年龄替换为在考试集中有NA称呼的人
  4. 什么是合适的取决于数据来源,是否有其他变量,评估指标是什么等等。

答案 1 :(得分:0)

另一种方法是,如果您的训练集足够大,并且如果您能够放弃没有所需功能集的数据,则可以这样做。删除该特定数据行。当我的训练数据集庞大时,我做了很多次。