【问题标题】:How to apply weights in rpart?如何在 rpart 中应用权重?
【发布时间】:2017-09-13 02:35:48
【问题描述】:

我有这些来自 Kaggle 实践竞赛的房屋数据,我正在使用 rpart 训练一个简单的第一个模型来预测售价。

模型无法正确识别销售条件异常或预付定金的销售。因此,我想增加这个变量的重要性,这在模型中显然被忽略了。

我假设这是通过使用“权重”参数来完成的,但是这个参数是如何使用的呢?如何确定我希望哪些变量具有更高的权重?

【问题讨论】:

  • rpart 中的权重是案例权重。他们对观察结果进行加权,而不是对特征进行加权。
  • 那么如何给一个特征增加权重呢?只是复制观察结果?
  • 我不知道任何提供加权特征选择的算法。虽然我确信它们存在。我将获取您的完整决策树的输出,并将其用作具有销售条件功能的第二个决策树的输入。这将构建只有两个特征的第二棵树。如果它没有出现,那么它可能在另一个功能中占了。
  • 我会尝试使用它,谢谢。

标签: r rpart


【解决方案1】:

来自documentation

权重

可选的案例重量。

费用

一个非负成本向量,一个用于模型中的每个变量。 所有变量默认为 1。这些是要应用的缩放比例 在考虑拆分时,因此对变量拆分的改进 在决定选择哪个拆分时除以它的成本。

权重是针对行的(例如,给较小的类更高的权重),成本是针对列的。

应用权重参数的示例用法 (不一定是定义权重的最佳方式):

positiveWeight = 1.0 / (nrow(subset(training, Y == TRUE)) / nrow(training))
negativeWeight = 1.0 / (nrow(subset(training, Y != TRUE)) / nrow(training))

modelWeights <- ifelse(training$Y== TRUE, positiveWeight, negativeWeight)

dtreeModel <- rpart(predFormula, training, weights = modelWeights)

【讨论】:

    猜你喜欢
    • 2014-04-11
    • 2015-05-31
    • 2012-02-01
    • 2014-06-16
    • 2015-12-23
    • 1970-01-01
    • 2016-03-07
    • 2016-04-09
    • 2013-03-25
    相关资源
    最近更新 更多