0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全球首款一站式处理因果学习完整流程的开源算法工具包

智能感知与物联网技术研究所 来源:智能感知与物联网技术研 作者:智能感知与物联网 2022-07-26 16:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

图灵奖得主 Judea Pearl 曾表示,现有的机器学习模型不过是对数据的精确曲线拟合,只是在上⼀代的基础上提升了性能,在基本的思想方面没有任何进步。

根据福布斯的统计数据,全球范围只有 13% 左右的机器学习项目能够真正上线运行,项目失败的一个重要原因是模型的泛化能力不足,在真实数据上的表现和完全达不到训练数据上的效果。 随着机器学习建模越来越多的应用,企业对人工智能的要求也在进一步提高。近几年提及的「数智化」核心是智能决策,以数据驱动的方式实现自动化决策来提高整体运营效率。用户的需求的重心从预测性分析向指导性分析升级转移,预测性分析是告诉企业未来可能会发生什么,指导性分析也叫处方性分析,是告诉企业我们如果想要实现一个目标需要如何做,这是典型的智能决策问题。 机器学习主要用在预测性分析上,基本上没有能力解决指导性分析这样的决策问题,因此,因果学习正被学界和业界逐渐重视起来,其可以补充机器学习的一些短板,也满足了智能决策这类问题的需求。因果推断的重要性逐渐显示,被认为是人工智能领域的一次范式革命。 7 月 12 日,九章云极 DataCanvas 发布了 YLearn 因果学习开源项目,是全球首款一站式处理因果学习完整流程的开源算法工具包。 一个典型的完整因果推断流程主要由三个部分组成。
  • 第一,数据中的因果结构应当首先被学习和发现,用作这一任务的手段通常被称为因果发现(causal discovery)。这些被发现的因果关系会被表示为因果结构公式(structural causal models, SCM)或因果图(一种有向无环图,directed acyclic graphs, DAG)。

  • 第二,我们需要将我们感兴趣的因果问题中的量用因果变量(causal estimand)表示,其中一个例子是平均治疗效应(average treatment effect, ATE)。这些因果变量接下来会通过因果效应识别转化为统计变量(statistical estimand),这是因为因果变量无法从数据中直接估计,只有识别后的因果变量才可以从数据中被估计出来。

  • 最后,我们需要选择合适的因果估计模型从数据中去学些这些被识别后的因果变量。完成这些事情之后,诸如策略估计问题和反事实问题等因果问题也可以被解决了。

YLearn 因果学习开源项目实现了最近文献中多个因果推断相关算法,并且致力于在机器学习的帮助下支持因果推断流程中从因果发现到因果效应估计等各方各面的相关内容,尤其是当有很多观测得到的数据时,这一目的会更有前景。 YLearn 因果学习开源项目(以下简称 YLearn),是业界首款一站式处理因果学习完整流程的开源算法工具包,率先同时解决了因果学习中「因果发现、因果量识别、因果效应估计、反事实推断和策略学习」五大关键问题,具有一站式、新而全、用途广等特点,将「决策者」使用门槛降到最低,助力政府和企业自动化「决策」能力的有效提升。

GitHub 开源地址:https://github.com/DataCanvasIO/YLearn YLearn 的应用目前主要集中在两个方向: 用于弥补机器学习理论上的缺陷。在机器学习模型中加入因果机制,利用因果关系的稳定性和可解释性,优化模型、提升效率; 帮助实现用户需求从预测到决策的迁移,例如使用基于因果推断的推荐算法帮助企业进行客户增长和智能营销等。 它具有一站式、新而全、用途广等特点:
  • 一站式:通常的因果学习流程包括从数据中发现因果结构,对因果结构建立因果模型,使用因果模型进行因果效应识别和对从数据中对因果效应进行估计。YLearn 一站式地支持这些功能,使用户以最低的学习成本使用与部署因果学习。

  • 新而全:YLearn 实现了多个近年来在因果学习领域中发展出的各类算法,例如 Meta-Learner、Double Machine Learning 等。也将一直致力于紧跟前沿进展,保持因果识别与估计模型的先进和全面。

  • 用途广:YLearn 支持对估计得到的因果效应进行解释、根据因果效应在各种方案中选取收益最大的方案并可视化决策过程等功能。除此之外,YLearn 也支持将因果结构中识别出的因果效应的概率分布表达式以 LaTex 的形式输出等小功能,帮助用户将因果学习与其他方向交叉。

设计思路

35415728-05e3-11ed-ba43-dac502259ad0.jpg

YLearn 因果学习开源项目组成 YLearn 有 5 个主要的因果推断相关概念,包括:
  1. CausalDiscovery. 发现数据集中线性和非线性的因果关系并用因果图表示。
  2. CausalModel. 确定感兴趣的因果量之后,识别因果图中的工具变量,操作因果图,识别因果效应(Causal Effect)的估计表达式,也可判断给定集合是否可以作为后门调整集合,前门调整集合等。
  3. EstimatorModel. 给定因过量的估计表达式与训练数据集,从训练数据集中训练多种估计模型,使用训练好的估计模型在新的测试数据集上估计因果效应。
  4. Policy. 给定感兴趣的因果效应和数据集,寻找一种最佳方案以提升因果效应,获取理想收益。
  5. Interpreter. 解释估计模型(EstimatorModel)所预测的因果效应,解释策略模型(Policy)所给出的最佳方案。
这些不同的部分通过组合,可以完成一个完整的因果学习相关流程,为了方便使用,YLearn 也将它们一起封装在 Why 这个统一的 API 接口中。

35499d7a-05e3-11ed-ba43-dac502259ad0.jpg

YLearn 中的因果推断流程 从用户给定的训练数据开始:
  1. 使用 CausalDiscovery 去发现数据中的因果关系和因果结构,它们会以 CausalGraph 的形式表示和存在。
  2. 这些因果图接下来会被输入进 CausalModel, 在这里用户感兴趣的因果变量会通过因果效应识别转化为相应的可被估计的统计变量(也叫识别后的因果变量)。
  3. 一个特定的 EstimatorModel 此时会在训练集中训练,得到训练好的估计模型,用来从数据中估计识别后的因果变量。
  4. 这个(些)训练好的 EstimatorModel 就可以被用来在测试数据集上估计各类不同的因果效应,同时也可以被用来作因果效应解释或策略方案的制定。
使用示例 1. 表示因果图 在 YLearn 中,给定一个变量集合,与之相关的因果关系需要一个 python dict 去表示变量中的因果关系,在这个 dict 中,每一个 key 都是它相应 value (通常是一个 list)中的每一个元素的 children。我们举一个最简单的例子,给定因果结构 X <- W -> Y ,我们首先定一个一个 python dict 表示相关因果结构,这个 dict 会被当作参数传入 CausalGraph 中:

causation={'X':['W'],'W':[],'Y':['W']}
cg=CausalGraph(causation=causation)

cg 就是我们的表示了因果关系 X <- W -> Y 的因果图。同时需要注意的是,如果存在 不可观测的混淆因子(unobserved confounder),那么除了前述的 dict 外,我们需要一个额外的 python list 去记录这些不可观测的因果结构,比如下面的因果图存在不可观测的混淆因子(绿色节点):

3556330a-05e3-11ed-ba43-dac502259ad0.jpg

它会首先被转化为一个有潜在混淆曲线(latent confounding arcs,下图中有两个箭头的黑色曲线)的因果图:

3566cd32-05e3-11ed-ba43-dac502259ad0.jpg

接着为了表示这张图,我们需要 (1) 定义一个 python dict 表示图中可观测的部分。 (2) 定义一个 list 记录不可观测的潜在混淆曲线,其中 list 中的每一个元素包括一条不可观测潜在混淆曲线的两个端点:

fromylearn.causal_model.graphimportCausalGraph
causation_unob={
'X':['Z2'],
'Z1':['X','Z2'],
'Y':['Z1','Z3'],
'Z3':['Z2'],
'Z2':[],
}
arcs=[('X','Z2'),('X','Z3'),('X','Y'),('Z2','Y')]

cg_unob=CausalGraph(causation=causation_unob,latent_confounding_arcs=arcs)

2. 因果效应识别 因果效应识别对于因果效应(包括因果变量)估计是至关重要的,这一过程可以通过 YLearn 很轻松地实现。例如,假设我们希望识别上面的因果图 cg 中的因果变量 P(Y|do(X=x)),那么我们只需要定义一个 CausalModel 然后调用它的 identify() 方法即可:

cm=CausalModel(causal_graph=cg)
cm.identify(treatment={'X'},outcome={'Y'},identify_method=('backdoor','simple'))

在上面的例子中我们使用了 后门调整,YLearn 也支持包括前门调整,工具变量识别,一般因果效应识别[1](如果任意因果量可以被识别,返回识别后的结果,如果不可识别,则返回不可识别)等各类识别算法。 3. 工具变量 工具变量是一种因果推断中很重要的手段,利用 YLearn 去寻找工具变量十分方便直接,例如,我们有如下的因果图:

357b55f4-05e3-11ed-ba43-dac502259ad0.jpg

那么我们可以按使用 CausalModel 的常用步骤来识别工具变脸:(1)定义 dict 和 list 去表示因果关系;(2)定义 CausalGraph 的 instance 建立 YLearn 中的因果图;(3)以上一步定义的 CausalGraph 作为参数,定义 CausalModel 的 instance;(4)调用 CausalModel 的 get_iv() 寻找工具变量:

causation={
'p':[],
't':['p','l'],
'l':[],
'g':['t','l']
}
arc=[('t','g')]
cg=CausalGraph(causation=causation,latent_confounding_arcs=arc)
cm=CausalModel(causal_graph=cg)
cm.get_iv('t','g')

4. 因果效应估计 使用 YLearn 进行因果效应估计十分方便直接(与通常的机器学习模型使用方式十分类似,因为 YLearn 主要着眼于机器学习与因果推断的交叉),它是一个包括 3 个步骤的流程:
  • 给定 pandas.DataFrame 形式的数据,确定 treatment, outcome, adjustment, covariate 的变量名。
  • 调用 EstimatorModel 的 fit() 方法训练模型。
  • 调用 EstimatorModel 的 estimate() 方法得到估计好的因果效应。
用户可以查看文档中的相关页面查阅各类估计模型的细节。 5. 使用统一接口 API: Why 为了能以一种统一且方便的方式使用 YLearn,YLearn 提供了一个接口 Why,它几乎封装了 YLearn 中的所有内容,包括因果效应识别和评估训练得到的估计模型等。在使用 Why 的过程中,用户可以先创建一个 Why 的实例,然后调用 Why 的 fit() 方法训练这个实例,之后其他的各类方法(如 causal_effect(), score(), whatif())就可以使用了。下面的代码是一个简单的使用样例:

fromsklearn.datasetsimportfetch_california_housing

fromylearnimportWhy

housing=fetch_california_housing(as_frame=True)
data=housing.frame
outcome=housing.target_names[0]
data[outcome]=housing.target

why=Why()
why.fit(data,outcome,treatment=['AveBedrms','AveRooms'])

print(why.causal_effect())

应用场景 从普遍意义上讲,只要是需要决策支持的这类任务都可以使用 YLearn 来完成,弹性定价、客户挽留、产品推荐、广告等等,前提条件和机器学习一样就是要准备好符合要求的数据就可以。 因果学习其中有一个重要的应用就是 Uplift 建模,直接字面理解就是提升建模,提升的是什么可以认为提升 ROI(投入产出比),非常适合用在精准营销上面。提升建模的核心是把目标用户分到 4 个象限里。 举例 在向一些用户推荐去购买一个产品,比如说一个理财或者是线上的订阅服务,那么现实中用户会有 4 类:
  1. 确定会购买的用户,不管我是否推荐这类用户都会购买(铁粉)
  2. 不管我是否推荐他都不会购买(黑粉),
  3. 我的推荐会提高用户购买转化的,如果不推荐他不会购买(路转粉)
  4. 是一些静默用户本来已经订阅了我们的服务,一旦收到我们的推荐提醒反而取消了订阅(粉转黑)。
对 1、2 类用户,铁粉、黑粉我们都不需要干预他,因为这个投入成本的收益几乎是 0,可以节省营销成本,第 4 类用户更是坚决不要去触达他,避免产生副作用。我们重点需要触达的就是第 3 类用户,促进购买行为。那么机器学习模型是没办法完成这个任务,我们需要通过因果学习里面的异质化因果效应评估也就是 CATE 来完成,而且还可以更进一步,路转粉的用户用哪种手段收益更高,优惠卷、打折、还是什么都不用给打个电话就可以了,这个也是可以学习出来,不同的用户可以有不同的策略,最后我们可以综合性的提高总体投入产出比了。这是一个很典型的 YLearn 的应用场景。

358b0d00-05e3-11ed-ba43-dac502259ad0.jpg

未来发展 下一步的计划主要是对 YLearn 进行不断迭代,从工具的成熟度、算法效率、以及最新算法的支持上不断完善。其将在这三个方向展开: 1、Causal Machine Learning:通过因果学习的能力改善机器学习,解决机器学习遇到的一些问题,比如更高效的特征发现、特征工程。还有希望通过因果关系能够提高机器学习的鲁棒性、泛化能力和解释性。 2、Automated Causal Learning:自动化的因果学习工具包,更 high-level 的 API 接口,解决自动化调参和优化的问题。让因果学习更简单高效。 3、Decision Graph:决策图谱,能够把一个系统内的关键运营指标和可干预变量构建出一个基于因果关系的图谱,通过可视化的交互式的方式来推演各种决策动作对运营指标带来的影响。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4817

    浏览量

    98941
  • 人工智能
    +关注

    关注

    1821

    文章

    50594

    浏览量

    268153
  • 机器学习
    +关注

    关注

    67

    文章

    8572

    浏览量

    137513

原文标题:九章云极DataCanvas YLearn因果学习开源项目:从预测到决策

文章出处:【微信号:tyutcsplab,微信公众号:智能感知与物联网技术研究所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    上海海思创新一站式集成开发环境HiSpark Studio开源

    近日,上海海思创新一站式集成开发环境HiSpark Studio 正式在 GitCode平台开源
    的头像 发表于 06-04 11:43 324次阅读
    上海海思创新<b class='flag-5'>一站式</b>集成开发环境HiSpark Studio<b class='flag-5'>开源</b>

    一款工具管理更自由的RFID智能工具包

    CK-B1A是一款采用RFID技术的双肩工具背包,在设计上没有改变传统工具包的使用方式,但在内部增加了识别能力。在人员准备离开现场时,通过键锁定,
    的头像 发表于 05-21 16:15 621次阅读
    <b class='flag-5'>一款</b>让<b class='flag-5'>工具</b>管理更自由的RFID智能<b class='flag-5'>工具包</b>

    四维图新一站式全球导航及生态应用解决方案亮相2026北京车展

    近日,在2026北京国际汽车展览会上,四维图新正式展出面向全球市场的一站式全球导航及生态应用解决方案。该方案以"全链路贯通+生态深度融合"为核心优势,整合覆盖音乐、电台、视频
    的头像 发表于 05-09 17:34 1444次阅读

    AIOsense低成本一站式传感器开源项目介绍

    今天给物联网、智能家居爱好者分享一款实用开源方案:一站式传感器。它主打低成本、易上手、可升级的模块化设计,无需复杂贴片焊接,新手也能轻松组装,完美适配 Home Assistant、ESPHome 生态,可直接替代市售成品传感器
    的头像 发表于 04-22 13:50 310次阅读
    AIOsense低成本<b class='flag-5'>一站式</b>传感器<b class='flag-5'>开源</b>项目介绍

    一站式传感器解决方案提供商推荐

    、方案设计、样品调试、软件开发、系统集成及批量交付的一站式服务。具备完整解决方案能力的源头厂商,正成为行业主流选择。本文梳理国内十大代表性传感器企业,为选型与合作提供参考。 、什么是传感器
    的头像 发表于 04-16 16:36 442次阅读

    e络盟推出DevKit HQ 一站式平台,助力工程师快速查找嵌入评估板、套件和工具

    安富利旗下全球电子元器件产品与解决方案分销商e络盟正式推出DevKit HQ平台,这是种新的在线资源,一站式整合了评估板、开发套件、单板计算机 (SBC)、工具和技术文档。
    的头像 发表于 12-17 16:05 615次阅读
    e络盟推出DevKit HQ <b class='flag-5'>一站式</b>平台,助力工程师快速查找嵌入<b class='flag-5'>式</b>评估板、套件和<b class='flag-5'>工具</b>

    迅为3568开发板从零学习Linux驱动开发:迅为一站式资料如何让我效率翻倍

    迅为3568开发板从零学习Linux驱动开发:迅为一站式资料如何让我效率翻倍
    的头像 发表于 11-05 11:16 667次阅读
    迅为3568开发板从零<b class='flag-5'>学习</b>Linux驱动开发:迅为<b class='flag-5'>一站式</b>资料<b class='flag-5'>包</b>如何让我效率翻倍

    电池气密性检测希立仪器一站式解决方案

    其长期安全、稳定运行的生命线。希立仪器RC01新能源多功能气密性检测仪,专为动力电池气密性检测打造的一站式解决方案。电池气密性检测难点:传统方法的局限与新型挑
    的头像 发表于 10-21 11:56 915次阅读
    电池<b class='flag-5'>包</b>气密性检测希立仪器<b class='flag-5'>一站式</b>解决方案

    芯圣电子重磅推出一站式HC AI玩具盒子服务方案

    核心优势直击痛点提供一站式PCBA&云端服务:提供完整PCBA方案和云端服务,原厂芯片配合专业设计;支持各大主流⼤模型平台:无缝接入OpenAI、⾖、DeepSeek等;提供定制化模型微调:提供免费的
    的头像 发表于 08-15 14:28 1590次阅读
    芯圣电子重磅推出<b class='flag-5'>一站式</b>HC AI玩具盒子服务方案

    芯圣电子重磅推出一站式HC AI玩具盒子服务方案

    核心优势直击痛点提供一站式PCBA&云端服务:提供完整PCBA方案和云端服务,原厂芯片配合专业设计;支持各大主流⼤模型平台:无缝接入OpenAI、⾖、DeepS
    的头像 发表于 08-15 14:26 1780次阅读
    芯圣电子重磅推出<b class='flag-5'>一站式</b>HC AI玩具盒子服务方案

    一站式PCBA加工全流程大揭秘!从设计到交付一站式搞定

    一站式PCBA加工厂家今天为大家讲讲一站式PCBA加工流程有哪些?一站式PCBA加工流程全解析及优势。在现代电子制造领域,PCBA加工已成为
    的头像 发表于 06-11 09:18 1574次阅读

    文解析一站式代工代料服务

    、原材料采购、生产制造到成品交付的全流程服务。该模式旨在帮助客户简化供应链管理、降低运营成本、缩短产品上市周期,同时确保产品质量和生产效率。以下是对一站式代工代料服务的详细解析: 一站式代工代料服务详解
    的头像 发表于 06-10 09:18 1285次阅读

    行芯科技提供Signoff工具一站式解决方案

    近日,EDA 三巨头集体断供,中国半导体产业面临更加严峻的挑战。行芯科技作为EDA行业排头兵,凭借七年时间完全自主研发的Signoff 一站式解决方案,“与中国芯,路同行”。
    的头像 发表于 06-09 13:39 1530次阅读

    高速风机EMC整改:从测试到合规的一站式解决方案

    深圳南柯电子|高速风机EMC整改:从测试到合规的一站式解决方案
    的头像 发表于 06-09 11:20 1338次阅读
    高速风机EMC整改:从测试到合规的<b class='flag-5'>一站式</b>解决方案

    是德科技一站式支持门户网站的核心功能

    前沿测试×智能管家×现场互动,一站式体验支持门户网站!6月26日上海嘉里酒店,我们不见不散!
    的头像 发表于 06-06 14:32 1714次阅读