无法从 rpart 预测
cannot predict from rpart
我有一个特征矩阵(按列),其中最后一列是 class 标签。观察结果在行中。
我在 R 中使用 rpart
在我的数据子集上构建决策树,并使用其余数据进行预测测试。学习树的代码是
fTree <- rpart(feature$a ~ feature$m, data = feature[fold != k, ],
method = "class", parms = list(split = "gini"))
测试代码为
predFeature <- predict(fTree, newdata = feature[fold == k, ],
type = "class")
其中 k
是我用来 select 数据子集的整数,而 fold
是我用来创建不同子集的矩阵。
我收到一条警告消息,我知道你们中的一些人已经知道了:
'newdata' had 306 rows but variables found have 3063 rows.
我读了一个与此相关的 post 但我没能理解原因。
因此,我们将不胜感激进一步的帮助。
提前致谢。
很难确定,因为您的示例不可重现,但我很确定问题如下:您已经为您的树安装了
rpart(feature$a ~ feature$m, data = feature[fold != k, ], ...)
因此,因变量总是 feature$a
来自 完整 feature
数据集(显然有 3063 个观察值)和 不是子集 feature[fold != k, ]
中的 。这可以正常工作,但不是您想要适合的树。因此,预测令人惊讶,因为 newdata
只有 306 个观测值,但这些观测值未被使用,但 still full 数据集到期到公式中的硬编码 feature$a
。
正在使用
rpart(a ~ m, data = feature[fold != k, ], ...)
更容易阅读,更少打字,应该可以解决您观察到的问题。
我有一个特征矩阵(按列),其中最后一列是 class 标签。观察结果在行中。
我在 R 中使用 rpart
在我的数据子集上构建决策树,并使用其余数据进行预测测试。学习树的代码是
fTree <- rpart(feature$a ~ feature$m, data = feature[fold != k, ],
method = "class", parms = list(split = "gini"))
测试代码为
predFeature <- predict(fTree, newdata = feature[fold == k, ],
type = "class")
其中 k
是我用来 select 数据子集的整数,而 fold
是我用来创建不同子集的矩阵。
我收到一条警告消息,我知道你们中的一些人已经知道了:
'newdata' had 306 rows but variables found have 3063 rows.
我读了一个与此相关的 post 但我没能理解原因。 因此,我们将不胜感激进一步的帮助。 提前致谢。
很难确定,因为您的示例不可重现,但我很确定问题如下:您已经为您的树安装了
rpart(feature$a ~ feature$m, data = feature[fold != k, ], ...)
因此,因变量总是 feature$a
来自 完整 feature
数据集(显然有 3063 个观察值)和 不是子集 feature[fold != k, ]
中的 。这可以正常工作,但不是您想要适合的树。因此,预测令人惊讶,因为 newdata
只有 306 个观测值,但这些观测值未被使用,但 still full 数据集到期到公式中的硬编码 feature$a
。
正在使用
rpart(a ~ m, data = feature[fold != k, ], ...)
更容易阅读,更少打字,应该可以解决您观察到的问题。