8

我有一个包含 14 个特征的数据集,其中很少有如下所示,其中性别和婚姻状况是分类变量。

height,sex,maritalStatus,age,edu,homeType

SEX
         1. Male
         2. Female

MARITAL STATUS
         1. Married
         2. Living together, not married
         3. Divorced or separated
         4. Widowed
         5. Single, never married

现在我正在使用 R 中的 rpart 库来构建分类树,使用以下内容

rfit = rpart(homeType ~., data = trainingData, method = "class", cp = 0.0001)

这给了我一个不考虑性别和婚姻状况的决策树。

我正在考虑为此使用 as.factor :

sex = as.factor(trainingData$sex)
ms = as.factor(trainingData$maritalStatus)

但我不确定如何将这些信息传递给 rpart。由于 rpart() 中的数据参数采用“trainingData”数据帧。它将始终采用此数据框中的值。我对 R 并不陌生,希望有人能在这方面提供帮助。

4

2 回答 2

10

trainingData您可以直接对数据框进行更改,然后运行rpart()​​.

trainingData$sex = as.factor(trainingData$sex)
trainingData$maritalStatus = as.factor(trainingData$maritalStatus)
rfit = rpart(homeType ~., data = trainingData, method = "class", cp = 0.0001)
于 2014-11-14T14:37:29.333 回答
-4

在实践中,您可以将任何分类值转换为序数值,例如将“婚姻状况”转换为条件 1、2、3...但是,通常您不应该进行转换,除非您对任何连续值有概念定义. 例如,如果您无法定义什么是 1.2 婚姻状况,则不应进行转换。相反,有时您可以使用代表值,具体取决于您的研究目标。例如,如果您试图链接您的数据以预测房屋类型,则每个婚姻状况的“最低舒适度”是一个序数值,如果(假设)为 1.2,则可以解释该序数值。

于 2017-06-14T10:30:54.457 回答