Kaggle Titanic 问题的变量变换

机器算法验证 机器学习 数据集
2022-04-04 19:20:18

我正在检查Kaggles Titanic问题,一个共同的特征处理是与Parch(父母的数量)和Sibsp(兄弟姐妹/配偶的数量)一起玩。

  • 首先,他们来了就接受。

  • 然后他们将两者混合在TotalFamily(Sibsp + Parch)中

  • 最后,他们将分类变量转换TotalFamily为二进制变量TravelsAlone( TotalFamily = 0)

这似乎提高了性能,我试图理解为什么:

  • 一个变量比两个好?我们这样做不是失去关系吗?
  • 是因为二进制变量比分类变量更好吗?
  • 无论选择何种算法(集成、支持向量机等),这些都是好的经验法则吗?

正如我所说,请避免“自己检查并查看”答案,在看到很多人进行相同的转换后,我认为某处有一个经验法则,我正在努力寻找它。

2个回答

人们正在做的是尝试不同的事情,直到他们找到似乎有效的东西。没有特别的理由为什么将一个可以取多个值的变量转换为一个只能取两个值的变量应该改善问题。

试着这样想。某处有数据生成过程 (DGP),它生成了您之前看到的数据。您要做的是找到一个模型,让您可以重现 DGP 生成的数据。如果 DGP 恰好是线性的,那么它恰好是线性的。如果它碰巧是非线性的,那么它碰巧是非线性的。如果 DGP 是一个接受许多值的变量的函数,那么它就是一个接受许多值的变量的函数。如果 DGP 恰好是一个只取两个值的变量的函数,那么它就是一个只取两个值的函数。就是这样。

有时他们会发现一些看起来可以很好地重现 DGP 的东西,但后来发现它是错误的,因为它产生的结果与 DGP 产生的结果不同。有时它恰好运作良好。除了猜测,检查你的猜测,然后可能再次猜测之外,没有经验法则。

在这种情况下,我想有些人猜测人们并不孤单很重要,例如,如果您是一个人,那么就没有人可以给您位置,也没有人可以给您位置或帮助您获得位置。他们先是分别尝试,然后将它们组合在一起,因为他们认为他们是一个群体,意识到群体大小可能并不重要,然后猜测只是在一起的事实很重要等等。后来其他人注意到或听说了这一点工作并复制它,因此为什么它可能如此普遍。

但是要回答您的问题,我不知道没有经验法则。这种转变也没有理由起作用。这只是人们在尝试猜测 DGP 可能是什么样子时尝试的东西。

请注意,IBM Watson 对此问题的解决方案是完全错误的,并且数据集太小了 20 倍,以至于拆分样本验证无法正常工作。原始源数据集位于https://hbiostat.org/data请不要参考原始数据集的副本。

sibsp 和 parch 不能在不与年龄交互的情况下正确解释,尽管计算“乘客是孤独的”变量可能有一些优点。

在我的书Regression Modeling Strategies及其课程笔记中对此数据集使用逻辑回归进行了完整的案例研究,可以在https://hbiostat.org/rms下的 RMS 条目中找到。在我的详细分析中,你会看到我非常彻底和灵活地处理了年龄转换,并适当地惩罚了使用数据推导出年龄函数形式的分析。