为什么我们在 R 的 model.matrix 函数中提到 -1 ?是因为一种热编码还是有其他原因?

Why do we mention -1 in model.matrix function in R ? is it for one hot encoding or does it have any other reason?

为什么我们在 stats 包的 model.matrix 函数的公式中提到 -1

training_matrix <-model.matrix(Survived ~.-1, data = training)

本例中使用标准 titanic 数据集。

还有文档说可以使用 model.matrix-1 符号来执行一次热编码,前提是我们已经在数据集中正确声明了因子和数字。

代码如下

data_1_matrix <-model.matrix(~.-1, data = data_1)

这个 -1 到底是做什么的?

-1 确保模型矩阵中没有常量。如果你会使用

training_matrix <-model.matrix(Survived ~., data = training)

模型矩阵中包含一列,并省略了一个类别,以确保您的模型不会出现多重共线性。

由用户决定什么更可取:如果您使用常量,您的模型中将有一个 'reference class'。如果你不这样做,就没有参考 class.