物联网软件定制开发多少钱
物联网软件开发资讯 你的位置:物联网软件定制开发多少钱 > 物联网软件开发资讯 >

物联网app开发 R言语立时丛林的模子评释(凝视)

发布日期:2024-09-28 06:49    点击次数:103

图片

图片

图片

图片

图片

图片

图片

今天给人人先容若何使用randomForestExplainer对立时丛林模子的恶果进行评释。

从名字就能看出来,randomForestExplainer是成心为randomForest包开辟的模子评释R包,亦然DrWhy.AI系列器用的一部分。

比较于其他的通用的模子评释R包,这个包有一些独有的功能,不错对立时丛林模子进行止境详备的评释。

装置
# 2选1install.packages("randomForestExplainer")devtools::install_github("ModelOriented/randomForestExplainer")
加载R包和数据

使用一个转头数据集进行演示。其中medv是恶果变量(房价),其余是展望变量(13个展望变量)

library(randomForest)library(randomForestExplainer)data(Boston, package = "MASS")Boston$chas <- as.logical(Boston$chas)str(Boston)## 'data.frame':    506 obs. of  14 variables:##  $ crim   : num  0.00632 0.02731 0.02729 0.03237 0.06905 ...##  $ zn     : num  18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...##  $ indus  : num  2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...##  $ chas   : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...##  $ nox    : num  0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524 0.524 ...##  $ rm     : num  6.58 6.42 7.18 7 7.15 ...##  $ age    : num  65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...##  $ dis    : num  4.09 4.97 4.97 6.06 6.06 ...##  $ rad    : int  1 2 2 3 3 3 5 5 5 5 ...##  $ tax    : num  296 242 242 222 222 222 311 311 311 311 ...##  $ ptratio: num  15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...##  $ black  : num  397 397 393 395 397 ...##  $ lstat  : num  4.98 9.14 4.03 2.94 5.33 ...##  $ medv   : num  24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...
建造模子

建造立时丛林模子:

添加localImp = TRUE示意需要狡计每个展望变量对每个不雅测的展望恶果的孝顺。

set.seed(2017)forest <- randomForest(medv ~ ., data = Boston, localImp = TRUE)forest## ## Call:##  randomForest(formula = medv ~ ., data = Boston, localImp = TRUE) ##                Type of random forest: regression##                      Number of trees: 500## No. of variables tried at each split: 4## ##           Mean of squared residuals: 9.793518##                     % Var explained: 88.4
模子评释

底下会凝视先容这个R包的几个函数,通过从多个方面临这个恶果进行评释。

最小深度漫步

在有谋略树或者立时丛林中,树的深度是一个首要的超参数,频繁一个特征(变量)的深度越小,证据这个特征越首要(也不全齐是这么哈)。

咱们不错狡计每个特征的深度漫步,就不错简略了解这个特征的首要性。这个历程不错通过min_depth_distribution终了:

min_depth_frame <- min_depth_distribution(forest)head(min_depth_frame, n = 10)##    tree variable minimal_depth## 1     1      age             3## 2     1    black             5## 3     1     chas             9## 4     1     crim             2## 5     1      dis             4## 6     1    indus             3## 7     1    lstat             1## 8     1      nox             4## 9     1  ptratio             2## 10    1      rad             5

这个恶果不错径直画出来,使用plot_min_depth_distribution即可可视化每个特征的最小深度的漫步以及它的平均值:

plot_min_depth_distribution(min_depth_frame)

图片

你径直把forest这个对象提供给plot_min_depth_distribution亦然不错的,可是使用min_depth_frame的克己是,要是你要画图多个最小深度的图,不错幸免近似狡计,这个狡计历程还挺费期间的.

排列三第2024181期开出组选号码233,该号码历史上开出23次。前22次出现之后,其下期奖号为:492、999、575、239、947、779、931、219、937、741、652、435、665、037、809、830、133、197、412、714、183、303。组选号码233开出之后,其前后5期分别开出号码:(统计见下表) 

在狡计平均最小深度时,plot_min_depth_distribution提供3种狡计规范:

mean_sample = "all_trees":没灵验于别离的变量的最小深度等于树的平均深度mean_sample = "top_trees":这个是默许确立.只使用其中一部分树进行狡计mean_sample = "relevant_trees":忽略缺失值,只使用非缺失值狡计平均最小深度

从上图来看dis这个变量的名次是高于indus的,因为平均深度小,可是从图中不错看出dis这个变量莫得在深度为0时使用过,是以也有可能indus的名次应该靠前.

要是某个数据有很多缺失值,咱们不错尝试使用mean_sample = "relevant_trees"来碰庆幸恶果会不会不同(关于咱们这个数据恶果相同)

plot_min_depth_distribution(min_depth_frame, mean_sample = "relevant_trees",                             k = 15)

图片

不错看到dis的名次还是高于indus的.

在稽察这个最小深度漫步图时,需要把平均值和漫步详细来看,弗成只看平局值.

变量首要性

径直狡计变量首要性,这个历程也比较慢,可是会同期狡计多种意想变量首要性的标的:

importance_frame <- measure_importance(forest)importance_frame##    variable mean_min_depth no_of_nodes mse_increase node_purity_increase## 1       age        3.21800        9070    4.2510362            1126.8328## 2     black        3.51400        8015    1.7101238             779.6626## 3      chas        6.45162         736    0.7706690             223.7377## 4      crim        2.55400        9388    8.2946300            2245.7347## 5       dis        2.54200        9210    7.3374224            2458.3168## 6     indus        3.43000        4239    5.6495909            2372.2088## 7     lstat        1.28600       11129   63.2892439           12394.3668## 8       nox        2.45400        6248   10.4210162            2814.5932## 9   ptratio        2.58800        4595    7.3896667            2665.5869## 10      rad        4.99746        2666    1.4400123             357.2610## 11       rm        1.42600       11514   33.9459827           12558.5167## 12      tax        3.31400        4420    4.8688001            1519.1153## 13       zn        5.85152        1633    0.7628575             332.5409##    no_of_trees times_a_root       p_value## 1          500            2 4.469233e-242## 2          500            1  7.699206e-95## 3          403            0  1.000000e+00## 4          500           20 1.774755e-298## 5          500            1 3.014263e-266## 6          500           63  1.000000e+00## 7          500          132  0.000000e+00## 8          500           40  9.508719e-01## 9          500           56  1.000000e+00## 10         499            3  1.000000e+00## 11         500          143  0.000000e+00## 12         500           33  1.000000e+00## 13         488            6  1.000000e+00

第一列是变量名字,背面是变量首要性的意想标的,关于转头和分类清晰的变量首要性是不相同的,咱们这里是转头:

mean_min_depth:平均最小深度no_of_nodes:使用该变量进行别离的总的节点的个数mse_increase:变量法则被打乱后,均方流毒的平局增多量node_purity_increase:使用某个变量别离后,节点纯度的增多量,通逾期常和的减少来意想no_of_trees:使用该变量进行别离的总的树的个数times_a_root:使用该变量当作根节点进行别离的树的个数p_value:单侧二项漫步覆按的p值

要是是分类问题,会清晰以下几列:

accuracy_decrease:当变量法则被打乱后,平均展望准确率下跌了若干gini_decrease:使用某个变量别离后,基尼统统的平均减极少

不错看到恶果中亦然有mean_min_depth的,是以measure_importance也允许你使用不同的规范狡计这个恶果.

不错终了多个首要性标的可视化,即是同期可视化两个变量首要性标的.

比如同期展示mean_min_depth和times_a_root两个标的,同期把点的大小映射给no_of_nodes,其实是相配于展示了3个标的:

plot_multi_way_importance(importance_frame, size_measure = "no_of_nodes")

图片

也不错通过x_measure/y_measure指定不同的标的:

plot_multi_way_importance(importance_frame,                           x_measure = "mse_increase",                           y_measure = "node_purity_increase",                           size_measure = "p_value",                           no_of_labels = 5)## Warning: Using alpha for a discrete variable is not advised.

图片

还不错径直借助ggpairs比较多个变量首要性标的的干系,其实即是狡计有干统统并进行可视化:

plot_importance_ggpairs(importance_frame)

图片

由于是借助了GGally包中的ggpairs这个函数,是以不错鼎新图形的漫步体式,就不错用来展示不同标的的名次:

plot_importance_rankings(importance_frame)

图片

交互作用评释

在证据变量首要性标的聘请好咱们的变量之后,物联网软件定制开发多少钱还不错探索下它们之间的交互作用。

比如咱们先证据mean_min_depth和no_of_trees聘请前5个最首要的变量:

(vars <- important_variables(importance_frame, k = 5,                              measures = c("mean_min_depth", "no_of_trees")))## [1] "lstat" "rm"    "nox"   "dis"   "crim"

然后探索交互作用(很慢):

interactions_frame <- min_depth_interactions(forest, vars)head(interactions_frame[order(interactions_frame$occurrences,                               decreasing = TRUE), ])##    variable root_variable mean_min_depth occurrences interaction## 33    lstat         lstat       1.279749         479 lstat:lstat## 8     black         lstat       2.464367         477 lstat:black## 53       rm         lstat       1.431866         475    lstat:rm## 3       age         lstat       2.178071         473   lstat:age## 18     crim         lstat       1.848217         473  lstat:crim## 23      dis         lstat       1.735482         473   lstat:dis##    uncond_mean_min_depth## 33                 1.286## 8                  3.514## 53                 1.426## 3                  3.218## 18                 2.554## 23                 2.542

这个恶果给出了每个变量和其他变量交互作用的最小深度等信息,occurrences是交互作用出现的次数。

恶果可视化:

plot_min_depth_interactions(interactions_frame)

图片

这个恶果横坐标是变量间的交互作用,是按照交互作用出现次数递减排序的,最前边的是lstat:lstat,同期它的mean_min_depth亦然最小的。

底下咱们聘请lstat:rm(你聘请我方需要的)赓续探索这个交互作用对展望恶果的影响:

plot_predict_interaction(forest, Boston, "rm", "lstat")

图片

从图中不错看出,rm越大,lstat越小,房价越高。

生成证明

用一瞥代码不错生成一个凝视的模子评释证明物联网app开发,内部包含统统恶果,还有一些评释,止境通俗:

explain_forest(forest, interactions = TRUE, data = Boston)
本站仅提供存储做事,统统本色均由用户发布,如发现存害或侵权本色,请点击举报。

下一篇:没有了

Powered by 物联网软件定制开发多少钱 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024 云迈科技 版权所有