我将随机森林算法用三种不同的编程语言应用于同一个伪样本数据集(1000个obs,二进制1/0因变量,10个数值解释变量):
我还尝试在编程语言中保持所有模型参数的一致性(树的数量、整个样本的引导抽样、在每个分割处随机抽样作为候选变量的数量、衡量分割质量的标准)。在
虽然Matlab和Python产生的结果基本相同(即概率),但R的结果却大不相同。在
R和Matlab&Python生成的结果之间存在差异的可能原因是什么?
我想有一些默认的模型参数在R中是不同的,我不知道,或者是在底层的randomForest包中硬编码的。在
我运行的代码如下所示:
Matlab:b = TreeBagger(1000,X,Y, 'FBoot',1, 'NVarToSample',4, 'MinLeaf',1, 'Method', 'classification','Splitcriterion', 'gdi')
[~,scores,~] = predict(b,X);
Python:
^{pr2}$
R:results.rf
scores
norm.votes=FALSE, predict.all=FALSE, proximity=FALSE, nodes=FALSE)