【问题标题】:building classification tree having categorical variables using rpart使用 rpart 构建具有分类变量的分类树
【发布时间】:2015-01-11 13:02:37
【问题描述】:

我有一个包含 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 不太熟悉,希望有人能在这方面提供帮助。

【问题讨论】:

    标签: r decision-tree rpart


    【解决方案1】:

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

    trainingData$sex = as.factor(trainingData$sex)
    trainingData$maritalStatus = as.factor(trainingData$maritalStatus)
    rfit = rpart(homeType ~., data = trainingData, method = "class", cp = 0.0001)
    

    【讨论】:

    • 我正在尝试将该答案应用于一个类似的示例,其中我的分类变量是星期几。只是为了确保我在训练集中只留下了那个变量,但是当我尝试训练分类器时,模型似乎只有一个根节点,这意味着我没有考虑这个变量。你知道可能是什么问题吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 2015-02-17
      • 2021-12-02
      • 2011-02-05
      • 2014-04-08
      • 2016-01-15
      • 2021-03-15
      • 2013-04-09
      • 2021-04-22
      相关资源
      最近更新 更多