Scikit Learn 使用随机森林的分类数据

Scikit Learn Categorical data with random forests

我正在努力应对 kaggle 中的巨大生存挑战 https://www.kaggle.com/c/titanic

我在 R 方面没有经验,所以我使用 Python 和 Scikit Learn 作为 随机森林分类器

我看到很多人使用 scikit 学习将他们的许多级别的分类转换为虚拟变量。

我不明白这样做的意义,为什么我们不能将级别映射到数值并完成它。

而且我还看到有人做了以下事情: 有一个分类特征 Pclass 具有三个级别,他为此创建了 3 个虚拟变量并删除了存活率最低的变量。我也无法理解这一点,虽然决策树不关心相关特征。

如果您只是将级别映射到数值,python 会将您的值视为数值。也就是说,数字 1<2 等等,即使您的关卡最初是无序的。想想 "distance" 的问题。 1 和 2 之间的距离是 1,1 和 3 之间的距离是 2。但是分类变量之间的原始距离是多少?例如,"banana" "peach" 和 "apple" 之间的距离是多少?你认为他们都是平等的吗?

关于虚拟变量:如果您有 3 个 类 并创建 3 个虚拟变量,它们不仅相关,而且是线性相关的。这可不是什么好事。