我使用MATLAB函数TreeBagger()进行随机森林分类,用于分配。当测试数据的变量数量与Training数据的变量数量不同时,它会出错。
我被告知变量选择应仅针对训练数据而不是测试数据,因此测试数据没有偏差。因此,在将初始数据集(50个变量)拆分为训练和测试集之后,我在训练集上执行变量选择(独立的卡方检验)。因此训练集由37个变量组成,而测试集保留50个变量。
我使用TreeBagger()来训练训练集,然后我使用测试集进行预测(函数predict())。我收到一个错误,因为测试集的变量数量与模型训练的变量数量不同。
仅在训练集上执行变量选择是否错误?有没有办法可以使用此功能执行预测?
答案 0 :(得分:1)
所选变量是最终模型的一部分。 这意味着最终模型只需使用训练集上选择的变量即可。 因此,在应用TreeBagger模型之前,过滤掉未选择的变量,然后应用它来获取测试集的预测。