• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • 【机器学习】用iml和mlr解释机器学习

      【机器学习】用iml和mlr解释机器学习

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2018年5月26日
      测试开头

      【机器学习】用iml和mlr解释机器学习


      笔者邀请您,先思考:

      1您怎么解释机器学习模型?

      2 特征的重要性如何度量?

      机器学习模型时常胜过模型的可解释性,参数模型如线性回归模型。模型性能的提高有一定的代价,模型当作一个无法解释的黑盒子在运作。

      幸运的是,有很多方法可以使机器学习模型可以解释。 R包iml提供分析任何黑盒机器学习模型的工具:

      • 特征重要性:哪些是最重要的功能?

      • 特征效果:特征如何影响预测? (部分依赖图和个别条件期望曲线)

      • 单一预测的解释:单个数据点的特征值如何影响其预测? (LIME和Shapley值)

      • 替代树:我们可以用一个简短的决策树来近似潜在的黑盒子模型吗?


      iml包适用于任何分类和回归机器学习模型:随机森林,线性模型,神经网络,xgboost等。

      这篇文章向您展示了如何使用iml软件包分析机器学习模型。 mlr软件包使得机器学习模型的训练变得非常容易,而iml软件包可以轻松提取关于学习到的黑盒机器学习模型的见解。

      如果您想了解更多关于所有方法的技术细节,请阅读可解释的机器学习手册。

      【机器学习】用iml和mlr解释机器学习

      让我们来探索iml工具箱,用具体的例子来解释mlr机器学习模型!

      • 数据:波士顿房屋

      • 拟合机器学习模型

      • 使用iml预测器容器

        • 特征的重要性

        • 部分依赖

        • 替代模型

        • 用局部模型解释单一的预测

        • 用博弈论解释单一的预测

      数据:波士顿房屋

      我们将使用MASS :: Boston数据集来演示iml包的功能。 该数据集包含来自波士顿社区的中位房屋价值。

      1. data("Boston", package = "MASS")

      2. head(Boston)

      【机器学习】用iml和mlr解释机器学习

      拟合机器学习模型

      首先,我们训练一个随机森林来预测波士顿的房屋价值中位数:

      1. if(!require(mlr)) {

      2.  install.packages("mlr")

      3.  require(mlr)

      4. }

      5. tsk <- makeRegrTask(

      6.  data = Boston,

      7.  target = "medv"

      8. )

      9. lrn <- makeLearner(

      10.  "regr.randomForest",

      11.  ntree = 100

      12. )

      13. mod <- train(lrn, tsk)

      使用iml预测器容器

      我们创建一个Predictor对象,它包含模型和数据。 iml包使用R6类:可以通过调用Predictor $ new()来创建新对象。Predictor与mlr模型最适合
      (WrappedModel类),但也可以使用其他包中的模型。

      1. if(!require(iml))

      2. {

      3.  install.packages("iml")

      4.  require(iml)

      5. }

      6. X <- Boston[which(names(Boston) != "medv")]

      7. predictor <- Predictor$new(mod, data = X, y = Boston$medv)

      特征的重要性

      我们使用FeatureImp可以测量每个特征对于的预测有多重要。 特征的重要性测量通过对每个特征进行洗牌并测量性能下降情况而起作用。 对于这个回归任务,我们选择用平均绝对误差(’mae’)来衡量模型性能的损失; 另一个选择将是均方误差(’mse’)。

      一旦我们创建了FeatureImp的新对象,重要性就会自动计算出来。 我们可以调用对象的plot()函数或查看data.frame中的结果。

      1. imp <- FeatureImp$new(predictor, loss = "mae")

      2. plot(imp)

      【机器学习】用iml和mlr解释机器学习

      1. imp$results

      【机器学习】用iml和mlr解释机器学习

      部分依赖

      除了了解哪些特征很重要之外,我们对特征如何影响预测结果感兴趣。 Partial类实现了部分依赖图和单个条件期望曲线。 当我们改变其中一个特征(例如,x轴上的’lstat’)时,每条线代表一个数据点的预测(y轴)。 突出显示的行是各行的逐点平均值,并等于部分依赖图。 x轴上的标记表示“lstat”特征的分布,显示了一个区域与解释的相关程度(很少或没有意味着我们不应该过度解释该区域)。

      1. pdp.obj <- Partial$new(predictor, feature = "lstat")

      2. plot(pdp.obj)

      【机器学习】用iml和mlr解释机器学习

      如果我们想要计算另一个特征的局部依赖曲线,我们可以简单地重置特征。 另外,我们可以将曲线居中放置在我们选择的特征值处,这样可以更容易地看到曲线的趋势:

      1. pdp.obj$set.feature("rm")

      2. pdp.obj$center(min(Boston$rm))

      3. plot(pdp.obj)

      【机器学习】用iml和mlr解释机器学习

      替代模型

      另一种使模型更易解释的方法是用一个更简单的模型 – 一个决策树来替代黑匣子。 我们对黑箱模型(在我们的例子中是随机森林)进行预测,并对原始特征和预测结果进行决策树训练。 该图显示了拟合树的终端节点。 maxdepth参数控制树可以增长的深度以及它是如何解释的。

      1. tree <- TreeSurrogate$new(predictor, maxdepth = 2)

      2. plot(tree)

      【机器学习】用iml和mlr解释机器学习

      我们可以使用树来做出预测:

      1. head(tree$predict(Boston))

      【机器学习】用iml和mlr解释机器学习

      用局部模型解释单一的预测

      全局替代模型可以提高对全局模型行为的理解。 我们也可以在拟合局部模型,更好地理解单一预测。 由LocalModel拟合的局部模型是一个线性回归模型,数据点通过它们与数据点的接近程度来加权,以便我们解释预测。

      1. lime.explain <- LocalModel$new(predictor, x.interest = X[1,])

      2. lime.explain$results

      【机器学习】用iml和mlr解释机器学习

      1. plot(lime.explain)

      【机器学习】用iml和mlr解释机器学习

      用博弈论解释单一的预测

      解释个人预测的另一种方法是来自联合博弈论Shapley价值的一种方法。 假设对于一个数据点,特征值一起玩游戏,其中他们将预测作为支付。 Shapley值告诉我们如何公平分配特征值之间的支付。

      1. shapley <- Shapley$new(predictor, x.interest = X[1,])

      2. plot(shapley)

      【机器学习】用iml和mlr解释机器学习

      我们可以重用该对象来解释其他数据点:

      【机器学习】用iml和mlr解释机器学习

      data.frame表单中的结果可以像这样提取:

      1. results <- shapley$results

      2. head(results)

      【机器学习】用iml和mlr解释机器学习

      原文链接:
      https://mlr-org.github.io/interpretable-machine-learning-iml-and-mlr/
      作者: Christoph Molnar
      版权声明:作者保留权利,严禁修改,转载请注明原文链接。

      您有什么见解,请留言。

      文章推荐:

      1 【机器学习】R做线性回归

      2 【机器学习】给非开发人员介绍机器学习

      加入数据人圈子或者商务合作,请添加笔者微信。

      【机器学习】用iml和mlr解释机器学习

      数据人网是数据人学习、交流和分享的平台http://shujuren.org 。专注于从数据中学习到有用知识。
      平台的理念:人人投稿,知识共享;人人分析,洞见驱动;智慧聚合,普惠人人。
      您在数据人网平台,可以1)学习数据知识;2)创建数据博客;3)认识数据朋友;4)寻找数据工作;5)找到其它与数据相关的干货。
      我们努力坚持做原创,聚合和分享优质的省时的数据知识!
      我们都是数据人,数据是有价值的,坚定不移地实现从数据到商业价值的转换!


      点击阅读原文,进入数据人网,获取数据知识。




      公众号推荐:

      链达君,专注于分享区块链内容。

      【机器学习】用iml和mlr解释机器学习

      数据科学与人工智能,专注于分享数据科学与人工智能的内容。

      【机器学习】用iml和mlr解释机器学习



      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      【R资料】Applied Predictive Modeling
      2018年5月26日

      下一篇文章

      生信小白第17天--复制体风暴兵的故事
      2018年5月27日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?