在 Matlab 2022a 中,你可以使用'TreeBagger' 对象的'OOBPermutedPredictorDeltaError' 属性来获取随机森林模型的特征重要性排序。以下是添加特征重要性排序代码的示例:

% 创建随机森林回归模型并进行交叉验证
NumTrees = 400;
nLeaf = 5;

TreeMdl = TreeBagger(NumTrees, trainFeatures, trainOutputs(:,1), 'oobprediction', 'on', 'method', 'regression', 'minleaf', nLeaf);

% 获取特征重要性排序
featureImportance = TreeMdl.OOBPermutedPredictorDeltaError;

% 对特征重要性进行排序
[sortedImportance, sortedIndices] = sort(featureImportance, 'descend');

% 打印特征重要性排序结果
for i = 1:numel(sortedIndices)
    fprintf('特征 %d: 重要性 = %f\n', sortedIndices(i), sortedImportance(i));
end

在上述代码中,我们使用'TreeBagger' 函数来训练随机森林回归模型,并将其存储在'TreeMdl' 变量中。然后,我们使用'TreeMdl.OOBPermutedPredictorDeltaError' 属性获取特征重要性排序。接下来,我们使用'sort' 函数对特征重要性进行降序排序,并将排序后的特征索引存储在'sortedIndices' 中。最后,我们通过循环打印出特征重要性排序的结果。

请注意,这段代码仅获取了第一个输出列的特征重要性排序。如果你对其他输出列感兴趣,可以相应地调整代码。同样,如果你有多个输出列,可以为每个输出列分别计算特征重要性排序。


原文地址: https://www.cveoy.top/t/topic/qPQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录