解释预测:对支持和反对正确预测的属性进行排序

varunm1varunm1 主持人,职位:1207年独角兽
2019年4月编辑 知识库
你好,

大多数特征选择技术将为我们提供支持预测目标标签的最佳预测器。这些主要依赖于预测器和输出标签(类)之间的相关性。

这个过程的一个限制是属性从一个模型到另一个模型的变化的重要性。这主要取决于其他属性存在时属性强度的变化,也取决于模型统计背景。

我们如何知道这些变量中哪一个在预测特定算法的正确标签方面表现更好呢?
在RapidMiner中,有一个“解释预测”操作符,它提供统计和可视化观察,以帮助理解每个属性在预测中的作用。该操作符使用局部相关值指定每个属性(Predictor)角色,以预测与数据中单个样本相关的特定值。这个角色可以支持预测,也可以与预测相矛盾。这些都是漂亮的视觉与不同的颜色变化的红色和绿色。红色表示与预测相矛盾的属性,绿色表示支持预测的属性。

如何知道哪些属性支持和反对正确的预测,反之亦然?
如前所述,你在可视化中看到的颜色代码属于正确和不正确的预测。如果您有兴趣找到支持和反对正确预测的属性,该怎么办?这就是我写这篇文章的动机。在预测建模中,只有少数模型可以提供变量的全局重要性。在复杂算法的情况下,很难找到具有全局意义的属性。但是,在“解释预测”操作符的帮助下,我们可以为支持和反对预测的预测生成排名。我将在下面的流程示例中解释这一点。

下面附上的流程文件是基于IRIS数据集的。我们在这里看到的问题是基于四个属性(a1到a4)对不同的花进行分类。我尝试用自动模型来寻找属性的重要性。自动模型提供了基于以下四个因素的重要属性(https://docs.www.turtlecreekpls.com/8.1/studio/auto-model/).现在,我首先观察了汽车模型中属性的重要性,发现a2是最好的预测器,正如你可以在下面的图中看到的那样,它用绿色表示。其他三个属性用黄色表示,这意味着它们对模型预测的影响中等。为了测试这一点,我运行了包含和删除这三个属性的模型(5次交叉验证)。



有趣的是,与没有这四种属性相比,有这四种属性的模型表现得非常好。kappa值从0.3增加到0.9。因此,这意味着对于这个数据集,我们最好包括所有四个属性。现在,下一个任务是试图了解哪些属性在预测正确标签方面表现良好。为此,我们使用解释预测操作符以及一些常规操作符来对性能进行排名(提供这种排名方法)。


我比较了四种分类模型(决策树、兰登森林、梯度增强树和神经网络)的性能,并确定了每个模型中属性对正确预测的重要性。从下图中,可以观察到每个属性的重要性随着算法的不同而变化。正值表示支持属性,负值表示与正确预测相关的矛盾属性。这些属性是根据它们的重要性排序的。


现在,为了观察只有支持属性的影响,我删除了上面确定的与正确预测相矛盾的属性,并再次运行模型。从结果中,我观察到决策树和梯度提升了树的性能。随机森林性能无明显差异,但神经网络性能下降。在机器学习中,我们尝试不同的疯狂的事情,因为没有既定的规则来获得更好的预测。

非常感谢您的评论和反馈。

谢谢
问候,
Varun
https://www.varunmandalapu.com/

是安全的。遵循预防措施,保持社交距离

BalazsBarany sgenzer AndyJ Andy2 jacobcybulski

评论

  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区管理员、rmresearch研究员、成员、大学教授职位:1751年RM创始人
    嘿,Varun,
    谢谢你的讨论和想法。我想就你提到的几个方面提出几点看法。
    现在,我首先观察了汽车模型中属性的重要性,发现a2是最好的预测器,正如你可以在下面的图中看到的那样,它用绿色表示。其他三个属性用黄色表示,这意味着它们对模型预测的影响中等。
    这实际上不是这些颜色的意思。我已经粘贴了帮助部分的颜色下面作为一个扰流。

    彩色状态气泡为数据列提供了质量指示器。

    • 红色:红色气泡表示质量较差的列,在大多数情况下应该将其从数据集中删除。红色表示以下问题之一:
      • 这一列中超过70%的值是失踪,
      • 这个专栏实际上是一个ID(几乎)与数据集中的行一样多的不同值同时看起来像一个文本列(见下文),
      • 该列实际上是常数,所有值的90%以上是相同的(稳定的),或
      • 该列与要预测的标签(如果存在标签)的相关性低于0.0001%或高于95%。
    • 黄色:黄色气泡表示该列的行为类似于ID,但看起来也像文本,或者与目标列的相关性非常低或非常高。只有当任务是“预测”时,这些基于相关性的黄色气泡才会出现。
      • ID,看起来像文本:该列具有较高的id性,将被标记为红色,但同时具有超过85%的文本性。
      • 低的相关性:相关性小于0.01%表明这一列不太可能有助于预测。虽然保留这样的列没有问题,但是删除它可能会加快模型构建的速度。
      • 高度的相关性:超过40%的相关性可能是你在预测时没有的信息的指标。在这种情况下,您应该删除这一列。然而,有时预测问题很简单,当包含列时,您将得到一个更好的模型。只有你能决定。
    所以绿色可以意味着它是最重要的,它仅仅意味着使用这个特性进行建模是安全的。另一方面,黄色应该检查。在这种情况下,不是因为低相关性,而是因为相关性。

    一个更好的信息来查看标签上的特征/模型的可能重要性是相关列。如果您根据这一列进行排序,您将看到关于重要性(与标签的相关性)的顺序是a3, a4, a1, a2。所以事实上a2 -虽然不需要额外检查就可以安全地用于建模-实际上也可能是最不重要的特征。

    有趣的是,与没有这四种属性相比,有这四种属性的模型表现得非常好。kappa值从0.3增加到0.9。
    我建议根据上面的信息重新进行分析。所以a3和a4是最重要的,而不是a2。

    我比较了四种分类模型(决策树、兰登森林、梯度增强树和神经网络)的性能,并确定了每个模型中属性对正确预测的重要性。
    实际上,我正在考虑创建一个新的操作符来计算基于解释预测输出的特征重要性。我还不确定只关注正确的预测是否真的是个好主意。我可以看到一个论点,包括硬币的两面,诚实,正确和错误的。原因是特征值对模型很重要,与预测是否正确无关。这不是我们要的吗?

    只有2c,
    Ingo
    varunm1 aileenzhou
  • varunm1varunm1 主持人,职位:1207年独角兽
    谢谢,@IngoRM请发表意见。在我看来,仅仅根据正确的预测进行分析是不合适的,因为我们需要把被分为正确和不正确的预测的总数。我看到了一些趋势,正确预测的高度支持属性也是错误预测的支持属性。如果一个算法的性能很低(错误预测的数量更多),那么支持正确预测和不正确预测的属性弊大于利。

    如果对此有任何误解,请纠正我。
    问候,
    Varun
    https://www.varunmandalapu.com/

    是安全的。遵循预防措施,保持社交距离

    sgenzer jacobcybulski
  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区管理员、rmresearch研究员、成员、大学教授职位:1751年RM创始人
    我想我们在这一点上是一致的。我只是因为你提到才提起的
    ...并确定每个模型中属性的重要性正确的预测。
    所以我认为这是一个快速讨论的好机会:)

    varunm1 sgenzer aileenzhou
  • varunm1varunm1 主持人,职位:1207年独角兽
    谢谢,我知道了。我很期待你在解释预测的基础上对新的特征选择算子的想法,实际上,这是我发布这篇文章的主要原因。微笑:
    问候,
    Varun
    https://www.varunmandalapu.com/

    是安全的。遵循预防措施,保持社交距离

    sgenzer
  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区管理员、rmresearch研究员、成员、大学教授职位:1751年RM创始人
    Yip,这个帖子和最近的另一个帖子真的让我想到,这可能会导致一个基于局部解释/重要性的模型不确定但依赖于模型的全局特征重要性加权。敬请期待……
    varunm1 sgenzer Pavithra_Rao Andy2
  • aileenzhouaileenzhou 成员职位:12因素二世
    @IngoRM一个新的计算特征重要性的算子将是一个很好的想法。但我认为在最新版本9.7中不会出现这种情况。还是我不知怎么错过了?
    我喜欢RM,因为它很容易让初学者进入大数据分析的世界,他们实际上可以使用RM进行一些复杂的项目。然而,有时由于缺少一些常用的函数而限制了它的使用。我想说功能的重要性就是其中之一。
  • varunm1varunm1 主持人,职位:1207年独角兽
    @aileenzhou

    你在找什么样的特征重要性算法?


    问候,
    Varun
    https://www.varunmandalapu.com/

    是安全的。遵循预防措施,保持社交距离

  • aileenzhouaileenzhou 成员职位:12因素二世
    @varunm1我使用的算法叫做“基于信息融合的敏感性分析(IFSA)”。
  • jacobcybulskijacobcybulski 委员,大学教授职位:391独角兽
    作为一个想法,我认为不应该调查哪些属性支持或反对特定结果的生成,而是这些属性如何导致正确或不正确的结果的生成。这可以帮助确定特定模型如何未能正确分类某些示例。作为一个简单的练习,我已经将标签-预测对转换为正确/不正确的预测,作为生成树模型的新标签,这(在我的情况下,在交叉验证树模型后)产生了以下模型:
    虽然这种方法在理论上是无效的,但它可能有助于确定为什么会做出错误的决定。
    aileenzhou
  • jacobcybulskijacobcybulski 委员,大学教授职位:391独角兽
    2020年7月编辑
    第二次尝试是使用关联分析,同样是探索思想,而不是纯粹的理论。这个想法是:我们能否将不同的预测值范围与正确或不正确的分类联系起来。
    我认为我们需要看的不是“整体”属性,而是它们值的范围!
    这类似于我们在聚类分析中经常看到的情况。我将做离散属性和生成的分类正确性之间的关联分析。由于分类器是95%正确的,我们没有问题生成关联规则与正确的预测,例如,这里是可视化的“正确”规则属性分成3类。
    然而,这些并不是很有趣,因为它们不能帮助我们识别与错误预测相关的规则。不幸的是,很少有关联规则对失败敏感的情况。然而,上采样失败在这方面是有用的。我推荐一种可以训练上采样方法的方法,例如使用GAN,但是作为一种快速而肮脏的方法,我使用了SMOTE,它增加了对分类为5个类的属性的敏感性,并得到以下结果。
    注意,关联规则的可视化有点模糊,但如果需要,对关联表的详细分析可以进一步揭示规则的细节,包括:
    • 使用各种标准(如支持度、置信度、确信度、提升度等)支持或反对正确和不正确预测的属性值范围组合的排名。
    aileenzhou
  • jacobcybulskijacobcybulski 委员,大学教授职位:391独角兽
    2020年7月编辑
    请注意,上面的“置信度”用于衡量关联规则以确定属性值的接近性。然而,我们可能喜欢使用规则“重要性”的其他统计度量,例如升力。我们可以尝试不同的布局算法,例如Fruchterman和Reingold的。
    aileenzhou
  • jacobcybulskijacobcybulski 委员,大学教授职位:391独角兽
    2020年7月编辑
    关于为什么很难解释属性对分类结果的影响的另一个评论,这也将表明,SMOTE上采样并没有扰乱分类结果类内属性的分布特性。
    下图显示了单个属性值是否(以及如何)对分类结果产生影响。
    可以看到,结果类中的属性值(成功-蓝色,失败-红色)对于属性a2, a3和a4有很好的区分(我们倾向于在聚类分析中这样做)。然而,成功案例的方差是巨大的(由于95%的数据属于这类数据),这确实使我们的解释无效。这可以从两个“最佳”分离属性的密度分布(在平均值上)中清楚地看到。
    我们可以看到,在密度分布中几乎不可能将失败与成功分开。然而,让我们看看SMOTE之后发生了什么。
    所有属性相对于它们的性能类的分布完全相同。然而,两个性能类的分离要好得多(RM以相反的顺序分配类颜色)。
    因此,也许我们可以尝试基于类均值来解释“简单”分布图。
    这也解释了我们能够为分类器的失败构建关联规则,并且我们可以信任它们——只要我们信任添加到混合中的合成示例。

    aileenzhou sara20
  • MartinLiebigMartinLiebig 管理员,主持人,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3287年RM数据科学家
    嘿,
    第二次尝试是使用关联分析,同样是探索思想,而不是纯粹的理论。这个想法是:我们能否将不同的预测值范围与正确或不正确的分类联系起来。


    这是人们用来产生一个学习者的思想,它预测了另一个学习者的不确定性,不是吗?


    - RapidMin乐鱼平台进入er数据科学服务主管-
    德国多特蒙德
    jacobcybulski
登录注册置评。