我正在使用R中的软件包randomForestSRC训练的模型对真实数据同类进行预测。真实数据同类缺少值,而生成该模型的训练集则没有缺失值。
import random
import numpy as np
n = 10000
m = 23
a = np.random.randint(1,365, size=(n,m))
count = 0
for j in range(n):
match = False
for i in range(m):
for k in range(i+1, m):
if a[j][i] == a[j][k]:
count += 1
match = True
break
if match:
break
z = count / n
print("Probability = ", z)
由于同类群组很小(只有8个观察值),因此因素层次的数量少于模型生成的训练集中的因素。我偶然发现,如果我将真实数据队列的级别设置为模型的级别(下面的代码示例),那么我得到的预测答案将与没有得到的答案不同。为什么呢?
pred_cohort <- predict(model, cohort,na.action = "na.impute")
我还意识到,如果我将真实数据的级别设置为模型级别(根据上面的代码),然后我将级别保持不变,则丢失单元格的估算值会有所不同。
问题是,这是否是错误?如果不是,则首选哪种方式?以及为什么更喜欢该选项?