r - 预测函数返回更少的样本
问题描述
我使用 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
问候
解决方案
您的数据框中缺少数据:
> 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, ...)
这就是说忽略任何缺少数据的行 - 静默。
推荐阅读
- android - Fabric 插件崩溃 --> 没有这样的属性:betaDistributionApkFilePath 类:org.codehaus.groovy.runtime.GStringImpl
- windows - 为什么 time.Now().UnixNano() 在 IO 操作后返回相同的结果?
- networking - 以无线方式将连接的设备访问本地网络
- css - CSS中的下拉菜单无法正常工作
- ios - 如何在 Xcode 中重新启用或使用情节提要?
- python - 我正在尝试使用 grid_forget 删除我的小部件,但它不起作用
- android - 编译 C 文件以便在 android 中使用
- ios - 我可以拥有具有不同 BundleId 和相同显示名称的一个应用程序的两个版本吗?
- django - 我在 django 2.2 中遇到错误,即 NOT NULL 约束失败:home_profile.user_id
- angular - 我正在使用 angular6 并且在最初加载页面时未显示标签 ng-content 内的内容