相关文章推荐
慷慨的鼠标垫  ·  Real-time streaming ...·  1 年前    · 
虚心的炒面  ·  适用于 iOS 的 App Center ...·  2 年前    · 
重感情的桔子  ·  wpf LiveCharts详解 - 知乎·  3 年前    · 
道上混的西红柿  ·  c#生成pdf文件-掘金·  3 年前    · 

Chapter 1:the introduction of Causal Reasoning

Introduction

机器学习算法越来越多的被应用到生活的方方面面,其中很大一部分学者尝试应用在医疗、教育、管理、金融和农业等社会关键领域。然而在这些领域基于机器学习而做出的判断或者决策会产生广泛的影响。这意味着,如果想要真正的理解(机器学习)系统所做出的判断或者决策,必须要抓住其本质。对所做出的决策还需要了解到决策的副作用和直接影响。与传统的机器学习模型不同的是,因果推断可以解决我们对因果关系以及 之间 的耦合问题。以及我们如何从一个因果关系的角度来解释纯粹的 预测问题 ,这足以让我们从因果推论中使我们的机器学习模型获益。

那么,在这里举几个非常经典的例子来非正式的介绍因果推理的研究内容。such as:(1)事件A 是事件B发生的原因么?(2)向用户推荐产品是否会让他们更愿意购买?if so,what the probability could be?(3)什么样的原因会驱使一个人去偿还贷款或者他会做一个好雇员或者好老板?(4)如果天气变热,庄稼会枯萎么?and what we talked above is just the Causal Reasoning did.

What is Causal Reasoning?

因果推理是科学探究的一个组成部分,从古希腊哲学开始就有着悠久的历史。从生物医学到社会科学等领域都依赖因果推理来评估理论,并回答关于我们居住的物理和社会世界的实质性问题。And here we quote Gary King’s words

“More has been learned about causal inference in the last few decades than the sum total of everything that had been learned about it in all prior recorded history”.
“在过去的几十年里,人们对因果推理的了解超过了以往所有有记录的历史中关于因果推理的所有知识的总和”。

紧接着有人可能会疑惑为什么因果推理是如此的 crucial ,为什么他没有成为类似概率论或者贝叶斯理论一样的常见的数学表达形式。这就让人们想起来了那句话 百因必有果,你的报应就是我 ,事实上这些因果论的论调总是模糊的,许多哲学家至今也未达成共识。(至于为什么你可以类比想想自己小时候为什么没考好,然后总是有各种各样的理由搪塞)

面对你为什么小时候没考好这种难度极大的哲学问题,现代因果推理的进步不是通过直接回答这些问题,而是通过创造灵活的方法来推理因果之间的关系,而不考虑人们选择的抽象概念。本文中的 Causal Reasoning 避开哲学上的模糊,采用一种更简单实用的方法进行因果推理,即所谓的 干涉主义 来定义因果关系。

Defining Causation

definition

在干涉主义者的因果论定义中,在 保持其他一切不变的情况下 ,如果我们在 改变A 之后观察到B的值有所不同,那么一个事件A引起了另一个事件B。

由于因果推理早期在医学上的应用(我们将在第三章讨论),习惯上称A为“治疗”或简称为原因。b被称为“结果”。熟悉强化学习的读者可能会把A比作“动作”,把B比作“奖励”。一般来说,这些事件与定量描述它们的测量变量相关联,例如,治疗药物的剂量及其在血压方面的结果,我们分别将其称为治疗变量和结果变量。为了方便起见,我们可以互换使用事件及其测量变量,但重要的是要记住,因果关系是根据事件定义的,相同的事件在不同的测量中可以对应不同的变量。

Interventions and Counterfactuals

在这里需要进一步解释的词语是 改变A 保持其他一切不变的情况下 。这些分别对应于因果推理中的两个关键概念:干预和反事实推理。干预指的是主动改变治疗变量的任何动作,例如给病人吃药,改变用户网站界面、给某人贷款等等。

intervention : 改变治疗变量T的主动行为。
然而,为了获得对其效果的有效解释,必须在“保持其他一切不变”的情况下进行干预。也就是说,仅仅采取行动是不够的,还要确保其他相关因素都没有改变,这样我们才能隔离干预的影响。继续我们的例子,评估一个新特性的效果,仅仅指派人去尝试它是不够的,还要确保没有其他系统组件同时改变。从自然科学的早期实验来看,这种干预被称为“受控”实验,我们限制某些变量的值,以隔离干预的影响。
虽然“控制”或保持其他变量不变是直观的,但不清楚包括哪些变量。利用因果推理的第二个关键概念,反事实,我们可以得到一个更精确的定义。这个想法是比较干预后发生的事情和没有干预会发生的事情。也就是说,对于任何干预,我们可以想象两个世界,在任何方面都是相同的,直到某个“治疗”发生在一个世界而没有发生在另一个世界。这两个世界的任何随后的差异都是这种处理的逻辑结果。第一个是观察到的事实世界,而第二个是未观察到的反事实世界( conunterfactuals 反事实这个词的意思是“与事实相反”)。
Counterfactual Value :在没有发生的事件下变量的(假设)值。
将反事实和干预(治疗变量)放在一起,干预的因果效应定义为干预后观察到的结果和没有干预时的反事实结果之间的差异。

事实世界下的结果表达为 C a u s a l E f f e c t : = Y W o r l d 1 ( T = 1 ) Y W o r l d 2 ( T = 0 )

The Gold Standard: Randomized Experiment

在这部分作者将随机实验来揭秘因果推断(或者说解释),该例子为是否为一个病人Alice推荐药物治疗,是否推荐可通过考虑药物治疗对Alice的影响结果来决定。在该事件中,药物表示治疗变量,病人Alice的健康表示结果变量。那么药物治疗对Alice的健康影响表示就是:
C a u s a l E f f e c t = E [ Y W o r l d ( T A l i c e = 1 ] E [ Y W o r l d ( T A l i c e = 1 ) ]
问题的关键在于实验不可能给我们两次机会或者两个同质的实验对象让我们即做治疗又不做治疗!而且,反事实的情况基本上都不会被观察到,这就导致了因果推断中的 数据缺失 问题。(怎么解决这个问题?假设Alice有个同卵双胞胎,身体各项状况指标都相同。)但是不是每个人都有个同卵的双胞胎兄弟姐妹的,所以就会导致人们总会问一个问题,疗效是否取决于用药还是每个人的身体状况差异。每个人的各项指标以及自身差异会使得我们混淆治疗结果的归因(听上去很复杂,其实就是找出来到底是为啥)。

另一种方法是对干预变量做出假设,例如假设这里有一组数据集是关于病人的身体健康的数据集,这里的数据集中的治疗变量被认为和病人本身的实际结果变量(病人身体健康)无关,也就是说任何人的结果变量(健康)还是取决于他们本身的身体条件,只是唯一的不同是是否用药。因此,如果我们比较两个人是否服药,他们之间就没有系统性的差异。在足够多的样本的情况下, 接受治疗的群体 的平均结果就可以无限逼近 无接受治疗群体 的反事实结果。现在想明白了作者为什么介绍 随机实验 他的目的就是在于消除个体之间的差异影响,核心思想就是,找到两个本质上彼此相同的群体。Now we could rewrite the formula as follow:
C a u s a l E f f e c t = r Y W o r l d ( T = r ) ( 1 r ) Y W o r l d ( T = r )

随机试验说明了第一组实验群体可作为第二组实验群体的反事实推理,回到个体案例上去是否给Alice药物治疗取决于,药物疗效对群体的影响是积极的还是消极的。(也就是说群体平均效果决定了是否做出药物治疗)。

Why causal reasoning?The gap between prediction and decision-making

随着越来越多可部署的传感器,计算机计算能力的发展,数据量的激增。人们希望机器学习参与到决策层面,甚至寄希望于机器学习能够取得不小的成功。因果推断必将不可或缺。虽然越来越多的数据和机器学习算法有助于做出高度准确的预测,但是 会出错 。这是因为从预测到决策并不简单,基于纯粹的数据预测模型的决策的因果效应可能是非常糟糕的。

for example :机器学习可以应用于农场的数据来做出灌溉决策。特别是,让我们假设知道灌溉的效果是什么。在预测模型我们根据手机过去关于土壤湿度和其他变量的数据,然后根据过去的数据预测未来的土壤湿度水平。将预测转化为决策就是:土壤湿度低,灌溉!土壤湿度高,不灌溉!假设我们拥有过去的土壤湿度数据和历史天气数据,并据此训练出一个机器学习模型,这个模型可以指导我们在农场的灌溉决策么?

答案是否定的,我们不能根据我们所学的土壤湿度模型来做出灌溉决策。想象一下,有一天天气预报说会很热。我们的土壤湿度模型很可能预测土壤会非常潮湿,基于这种预测,我们很可能决定不灌溉。但是为什么我们的土壤湿度模型预测在非常热的日子里不需要灌溉呢?我们的模型是根据过去的土壤湿度数据训练的,但在过去,土壤是在一些预定的政策下灌溉的(例如,基于规则的决策还是农民的直觉)。如果这个政策总是在非常热的日子灌溉田地,那么我们的预测模型将了解到在非常热的日子里,土壤湿度很高。预测模型将非常准确,因为在过去这种相关性总是成立的。然而,如果我们根据我们的模型预测决定在非常热的日子里不给田地浇水,我们将会做出完全错误的决定!

因为模型只是捕捉到了炎热天气和农民过去灌溉决策之间的相关性。预测模型不关心底层机制,它只是认识到热天气意味着土壤潮湿的模式。但是一旦我们开始使用这种预测模型来驱使我们的灌溉决策,我们就打破了模型已经学会的模式。

Applications of Causal Reasoning

Making better decisions
Building robust machine learning models

Four steps of Causal Reasoning

Model and assumptions 因果推理的第一个重要步骤是建立一个清晰的因果假设模型。这包括写下已知的数据生成过程和机制。总的来说,有许多机制可以潜在地解释一组数据,这些自洽的机制中的每一个都会给我们提供我们所关心的因果效应的不同解决方案。所以,如果我们想得到因果问题的正确答案,我们必须清楚我们已经知道的东西…给定这个模型,我们将能够正式地指定效果A→→A;B我们要计算的。

Identify 使用模型来决定是否可以回答因果问题,并提供计算所需要的表达式。

Estimate 一旦我们有了识别因果效应的一般策略,我们就可以从几种不同的统计估计方法中选择来回答我们的因果问题。评估是一个分析数据的过程。

Refute 一旦我们有了答案,我们想尽一切可能来测试我们的潜在假设。我们的模型与数据一致吗?对所做假设的回答有多敏感?如果模型有一点错误,那会改变我们的答案一点还是很多?

Modeling and assumptions
为了估计因果效应,需要一种准确的表达形式来表达我们对治疗变量也好干预变量也好喝反事实推理。可以用图表或函数方程的形式来表示。至关重要的是,这个模型没有规定连接变量的确切函数形式,而是传达了因果关系的结构——谁影响谁。这种结构模型体现了我们对世界做出的所有领域知识或因果假设,因此也被称为结构因果模型——结构图因果模型(structural causal model)。考虑一个简单的例子,冰激凌销量的增加是否会导致游泳人数增加。图1显示了游泳人数和冰激凌销量的相关性。
图1.

结构因果图模型的力量来自于能够精确定义干预和反事实。然而,很难用传统的概率来表达这些概念。正如我们在上面看到的,区分干预和观察是很重要的,但不幸的是,概率演算缺乏一种语言来区分观察人们使用某个功能和将他们分配给该功能(两者都表示为 C a u s a l E f f e c t = E ( Y d o ( T = 1 ) ) E ( Y d o ( T = 0 ) )
图2

Identification
这一步骤表示模型是否可以从数据中估计因果效应,需要确定因果效应等式是否可以写成仅与观测数据相关的函数。正如我们将看到的,给定因果结构图,可以检查因果效应是否可以从数据中估计,如果可以,则提供估计公式。例如,回到我们的冰淇淋图表,因果关系是通过调节温度来确定的,然后分别估计每个温度范围内冰淇淋和游泳之间的关联。当我们这样做时,我们看到治疗和结果不再相关,因此表明观察到的相关性是由于温度,而不是由于吃冰淇淋的任何因果关系。温度变量被称为混杂因素,即使没有因果关系,也会导致治疗和结果之间的相关性。

Estimation
一旦确定了因果关系,我们就可以用统计方法来估计它。

Refute
以上三个步骤将给出我们因果问题的答案,但是我们应该在多大程度上相信这个估计呢?如上所述,因果解释来自识别,而识别又从建模假设中获得其有效性。因此,最后也可能是最重要的是检查导致认同的假设。此外,估计步骤还对数据的统计特性进行假设,以得出估计值,这也需要验证。虽然结构模型无法通过数据进行验证,但我们将讨论在某些情况下,观察到的数据如何帮助我们消除与数据不一致的因果模型,并检查我们的估计对因果假设的稳健性。

【干货书】《 因果 推理导论- 机器学习 角度》,132页pdf 有几个主要的主题贯穿全书。这些主题主要是对两个不同类别的比较。当你阅读的时候,很重要的一点是你要明白书的不同部分适合什么类别,不适合什么类别。 统计与 因果 。即使有无限多的数据,我们有时也无法计算一些 因果 量。相比之下,很多统计是关于在有限样本中解决不确定性的。当给定无限数据时,没有不确定性。然而,关联,一个统计概念,不是 因果 关系。在 因果 推理方面还有更多的工作要做,即使在开始使用无限数据之后也是如此。这是激发 因果 推理的主要区别。我们在这一章已经做了这样的区分,并将在整本书中继续做这样的区分。 识别与评估。 因果 效应的识别是 因果 推论所独有的。这是一个有待解决的问题,即使我们有无限的数据。然而, 因果 推理也与传统统计和 机器学习 共享估计。我们将主要从识别 因果 效应(在第2章中,4和6)之前估计 因果 效应(第7章)。例外是2.5节和节4.6.2,我们进行完整的例子估计给你的整个过程是什么样子。 介入与观察。如果我们能进行干预/实验, 因果 效应的识别就相对容易了。这很简单,因为我们可以采取我们想要衡量 因果 效应的行动,并简单地衡量我们采取行动后的效果。观测数据变得更加复杂,因为数据中几乎总是引入混杂。 假设。将会有一个很大的焦点是我们用什么假设来得到我们得到的结果。每个假设都有自己的框来帮助人们注意到它。清晰的假设应该使我们很容易看到对给定的 因果 分析或 因果 模型的批评。他们希望,清晰地提出假设将导致对 因果 关系的更清晰的讨论。
2. 为什么研究 因果 关系 参考: 因果 关系的必要性 机器学习 基本上可以算是统计 机器学习 问题,也就是通过大量的数据学习到一些隐藏的patt er ns,从而得到数据与数据之前的相关关系,进而进行目标检测、追踪、知识问答等处理。很自然的一个问题就是,既然 机器学习 当前主流是以统计规律得到的相关关系为主,那么我们为什么要研究 因果 关系呢? Yule-Simpson’s Paradox (辛普森悖论): 变量X和Y在边缘上存在正相关,但是给定另
Python中基于 机器学习 因果 推理/提升 内容: ••• ca use infe r是一个Python软件包,用于使用 机器学习 来估计平均和条件平均处理效果。 它的目标是编译标准和高级的 因果 推理模型,并展示其用法和功效-所有这些都具有帮助人们在商业,医学和社会经济领域学习CI技术的总体雄心。 请参阅以获取该软件包的完整概述,包括模型和数据集。 ca use infe r可以通过pip从PyPI下载或直接从此存储库中获取: pip install ca use infe r git clone https://github.com/andrewtavis/ ca use infe r.git cd ca use infe r python setup.py install import ca use infe r 因果 推理算法 两种模型方法 对治疗和对照组的单独模型进行了训练和组合,以得出平均治疗效果(Hanso
DoWhy | An end-to-end library for ca usal infe re nce Getting started with DoWhy: A simple example 使用 因果 推理的四个步骤来动手估计 因果 效应:建模model、识别identify、估计 estimate 和反驳 refute。 因果 关系定义 假设我们想要找到采取行动A对结果y的 因果 影响,要定义 因果 影响,考虑两个世界: 世界1(真实世界): 行动A被采取,观察到Y 世界2(反事实世界): 没有采取行动A,但其他一
目录引言稳定性可解释性公平性虚假相关性是风险的关键来源预测建模中 因果 关系的挑战和机遇稳定学习的定位与发展从 因果 关系的角度进行稳定学习 文章 “Stable learning establishes some common ground between ca usal infe re nce and ma ch ine learning” 深入探讨和总结了 因果 推理在 机器学习 取得的关注,并对 “稳定学习” 提出了系统性分析和展望。文章认为, 机器学习 因果 推理之间应该形成共识,而稳定学习正在向实现这一目标的方向迈进。
使用Python和 ca usal ml中的 因果 森林模型来处理性别群体间的异质性,可以这样写代码:# 从 ca usal ml库中导入 因果 森林模型 from ca usal ml. infe re nce .meta import Ca usal Forest# 读取数据 data = pd.read_csv('data.csv')# 将性别转换为数值 data['gend er '] = data['gend er '].map({'male': 0, 'female': 1})# 将数据集拆分为特征和标签 X = data.drop('label', axis=1) y = data['label']# 创建 因果 森林模型 cf = Ca usal Forest(n_estimators=100, random_state=1)# 训练模型 cf.fit(X, y)# 计算性别群体间的异质性 het er ogeneity = cf.estimate_het er ogeneity(X, 'gend er ')# 输出异质性结果 print(het er ogeneity)
可以使用Python和 ca usal ml的 因果 森林模型来处理性别群体间的异质性,代码如下:from ca usal ml. infe re nce .meta import Ca usal Forest from sklearn.model_selection import train_test_split # 将数据集分为训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # 实例化模型并训练cf = Ca usal Forest() cf.fit(X_train, y_train) # 在测试集上进行预测y_pred = cf.predict(X_test)