首页 > 解决方案 > 预测函数返回更少的样本

问题描述

我使用 caret R 包中的 train 函数训练模型。当我在包含 45 个样本的测试数据中测试模型时,预测函数仅返回 43 个样本的类标签。我附上了包含测试数据和我的模型的 rda 数据。我感谢您的帮助。 测试数据+模型

这是我使用的代码:

dim( test_data[,!(colnames(test_data) %in% c('lable')) ])

45 179

dim(predict(mod, test_data[,!(colnames(test_data) %in% c('lable')) ],type="prob"))

43 2

问候

标签: rr-caretpredict

解决方案


您的数据框中缺少数据:

> pdata = data1[,!(colnames(data1) %in% c('lable')) ]

pdata有 45 行,但是:

> ok = complete.cases(pdata)
> sum(ok)
[1] 43

只有 43 个有完整的数据。

哪些行有缺失数据?

> rownames(pdata[!ok,])
[1] "GSM1388233" "GSM1388235"

没有给出警告,因为文档说:

 ## S3 method for class 'train'
 predict(object, newdata = NULL, type = "raw",
   na.action = na.omit, ...)

这就是说忽略任何缺少数据的行 - 静默。


推荐阅读