- 博客(82)
- 收藏
- 关注
原创 人工智能的未来———因果推理what if 第11章(统计模型) 文章解读
本书第二部分会围绕以下因果性问题展开:戒烟对体重增加的因果效应均值是多少?在本章,我们会讲述如何使用逆概率加权从观察性数据中估计这一效应。虽然在第二章我们就介绍了逆概率加权,但我们仅仅讨论了它的非参数形式。现在我们会讲述如何在模型中使用逆概率加权。在一定假设下,这一方法能解决高维数据带来的种种问题,并且适用于非二分的治疗变量。我们将用现实世界中 NHEFS 的数据来估计戒烟对体重增加的效应。NHEFS 表示“美国国家健康与营养调查数据 1 期:流行病学跟踪研究”。NHEFS 是由美国国家健康数据中
2023-02-10 18:13:25 849
原创 Causality matters in medical imaging 文献解读
由于典型的语义分割任务是因果关系的,如我们的前列腺癌示例所示,语义分割能够从根本上从未标记数据中受益的希望可能很小。在传统因果框架中,给定X和Y为带标签的数据,X为输入图像数据,Y为目标预测数据,Z为疾病的特征。临床团队能够证明使用人类对磁共振成像( MRI )的解释来诊断前列腺癌的有效性,与传统的诊断测试相比,具有更高的灵敏度和特异性,并通过组织病理学的真相标签得到证实。由于数据特征的差异,训练好的模型在开发测试集上的性能代表在不同环境中部署后的新临床数据上的性能,这一假设经常被违背。
2022-12-12 14:48:40 917 1
原创 因果推断三种分析框架
因果推断所涉及的三种分析框架:反事实框架CF、潜在结果模型POF和结构因果模型SCM潜在结果模型POF使用数学和可计算的语言对因果理论进行阐述,是一种将假设、命题和结论清晰化表达的计算模型,其在原因和结果变量已知的前提下定量分析原因变量对结果变量的因果效应,并对缺失的潜在结果进行补齐,使观察性研究的效果接近试验性研究. 结构因果模型SCM则是一种基于图论的因果推断方法,它将事件分 为观察、干预和反事实三个层级,并通过 do 运算将干预和反事实层级的因果关系都降维成可以通过统计学手段解决的问题.目前因果推断的
2022-12-05 15:55:45 1247
原创 Causal Inference History, Perspectives, Adventures, and Unification 贝叶斯之父Pearl访谈解读
我们需要的不止于此。但是,尽管他没有表达农民想要什么的符号,费舍尔仍然说服了整个统计界,如果你随机化,你会(平均)得到农民想要的(即平均处理效果 (ATE)) .他的论点非常有说服力,以至于统计学家在没有数学证明的情况下接受了它。它确定了时变处理的影响 [Pearl 和 Robins,1995],并揭开了 Robins 的 G 公式有效的条件的神秘面纱。鲁宾的框架,被称为“潜在结果”,不同于用特定语言描述问题的结构性解释,因此,在清晰地阐明我们所知道的以及可用于推导我们希望知道的东西的数学工具方面。
2022-11-30 14:45:37 349
原创 The Seven Tools of Causal Inference with Reflections on Machine Learning 文章解读
这打开了推断的可能性,在温和的假设,与数据兼容的模型的集合,并紧凑地表示这个集合已经开发的系统搜索,在某些情况下,可以修剪兼容模型的集合显著到点,其中因果查询可以直接从该集合估计。对于那些"后门"准则不成立的模型,一个符号引擎是可用的,称为do-calculus,它在可行的情况下预测政策干预的效果,而当预测无法通过指定的假设确定时,就会失败【Introduction to Judea Pearl’s Do-Calculus这篇论文的主要描述了Do-calculus规则。的进步可以使编码变得紧凑。
2022-11-25 15:46:15 715
原创 人工智能的未来———因果推理:Causal Inference: What If Chapter3 OBSERVATIONAL STUDIES 文章解读
一个可能的世界是事物可能的样子。尽管可交换性条件可以被其他无法验证的条件所取代,如果愿意通过建模进行不可测试的外推,则可以放弃正则性条件,但对足够明确的治疗的要求是如此,以至于如果不同时否定描述正在估计的因果效应的可能性,就不能放弃它。反事实的可能世界表述,用描述与现实世界最小差异的最接近的可能世界的同样困难的问题代替了有时困难的指定干预的问题。一致性意味着每个接受治疗的个体的观察结果等 于她接受治疗的结果,并且每个未治疗个体的观 察结果等于她保持未治疗的结果,也就是说,对 于每个接受治疗的个体。
2022-11-14 11:25:30 1822 17
原创 人工智能的未来———因果推理:Causal Inference: What If chapter2 A Randomized experiments 文章解读
由于关联是每个子集中的因果关系,因此处于危急状态的人群中特定阶层的因果风险比 Pr[Y a=1 =1|L = 1]/ Pr[Y a=0 =1|L = 1] 等于处于危急状态的人群中特定阶层的关联风险比 Pr[Y =1|L =1,A = 1]/ Pr[Y =1|L =1,A = 0]。随机实验,像任何其他现实世界的研究一样,生成反事实结果缺失值的数据。因果风险比的分子是以人群为标准的治疗中的标准化风险,在有条件的可交换性下,这种标准化风险可以解释为如果人群中的所有个体都得到治疗,就会观察到的(反事实)风险。
2022-11-03 17:20:03 1859 19
原创 人工智能的未来———因果推理:Causal Inference: What If chapter1 A DEFINITION OF CAUSAL EFFECT 文章解读
因果关系关注的问题:关于因果关系的推论关注的是反事实世界中的问题,例如“如果每个人都得到治疗,会有什么风险?因果和关联的区别:关联是由个体的实际治疗值(A = 1 或 A = 0)确定的两个不相交的人群子集中的不同风险定义的,而因果关系是由同一人群中的不同风险定义的在两个不同的处理值(a = 1 或 a = 0)下。当在处理的 Pr[Y =1|A = 1] 中产生结果的个体比例等于在未处理的 Pr[Y =1|A = 0] 中产生结果的个体比例,我们说治疗 A和结果 Y 是独立的,即 A 与 Y 无关。
2022-10-29 17:46:52 1937 27
原创 面向对象编程技术从0总结——“让你对基础技术有一个新的认识”(国庆五万字总结)
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。 Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。
2022-10-06 20:38:32 2063 51
原创 强大的数据分析工具——Pandas操作、易错点、知识点三万字详解
pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
2022-09-19 14:11:05 6319 67
原创 基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】
基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】---来自一位即将入学的准研一,也希望这篇文章能够激励自己不断走下去!!
2022-09-03 12:23:10 3261 103
原创 贝叶斯网络
交叉因果推断:如上述图中的例子,对于P(i | g | d)等于说是中D到I 这条路径中,做半边的路径是顺着箭头走的,右半边箭头是逆着箭头走的——故叫做交叉因果推断(双向箭头推断)
2022-11-23 16:01:15 509
原创 概率论与图论基础
边缘概率是指求某个变量的概率值。上述表中指的是求 变量 I 的边缘概率,当I取定值的时候,D和G分别取不同值的时候的概率。联合概率分布:例如上表中存在三个变量,当每个变量分别取不同值的时候所对应的概率是多少?——一般采用上表中的这种枚举法!可列可加性公理:所有事件并运算的概率等于每个事件概率的和。最大后验概率是指:当I、D、G分别取什么值的时候概率值最大。随机变量是指将随机现象的一个结果,用一个变量来进行表示!概率的正则性公理是指:整个样本空间的概率为1。
2022-11-23 14:41:19 1003
原创 面向对象综述(Java篇):封装、继承、重载、重写、抽象、接口
封装的目的是为了保证变量的安全性,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员,如果不进行封装,类中的实例变量可以直接查看和修改,可能给整个代码带来不好的影响,因此在。java当中封装主要靠访问控制权限来进行实现的!
2022-10-24 19:14:09 1337
原创 关于访问权限控制问题
但是注意,我们创建的普通类不能是protected或是private权限,因为我们目前所使用的普通类要么就是只给当前的包内使用,要么就是给外面都用,如果是 private谁都不能用,那这个类定义出来干嘛呢?实际上Java中是有访问权限控制的,就是我们个人的隐私的一样,我不允许别人随便来查看我们的隐私,只有我们自己同意的情况下,才能告诉别人我们的名字、年龄等隐私信息。(子类我们会在下一章介绍),标记为私有的内容无法被。,标记为受保护的内容可以。,默认情况下,只能被。,标记为公共的内容,
2022-10-20 17:58:12 950 1
原创 Django后端开发:MVC 和 MTV以及动态路由、静态路由、自定义converters
MVC控制器Contorller部分,由Django框架的urlconf来实现意思就是在Django框架当中,我们可以忽略对Controller的代码书写MVC: VIEWS负责业务逻辑处理+数据展示MTV: Views ——业务逻辑处理 Templates—— 数据展示Django 的路由本质上是通过正则表达式来对用户请求的Url 进行匹配 ①代表必须寻找以$字符是指以2003结尾 ^arti
2022-10-18 19:15:43 1095 17
原创 如何用Socket和Wsgiref实现一个Web服务器
首先大概讲述一下,Socket创建服务器端和客户端的一个大致流程:客户端调用 socket() 函数创建套接字后,因为没有建立连接,所以套接字处于CLOSED状态;服务器端调用 listen() 函数后,套接字进入LISTEN状态,开始监听客户端请求这时客户端发起请求:1) 当客户端调用 connect() 函数后,TCP协议会组建一个数据包,并设置 SYN 标志位,表示该数据包是用来建立同步连接的。同时生成一个随机数字 1000,填充“序号(Seq)”字段,表示该数据包的序号。
2022-10-13 11:33:00 2694 21
原创 Socket网络编程和工作流程
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口
2022-10-08 21:54:36 3372
原创 面向对象编程之断言assert
如果Expression1为假,则抛出一个 AssertionError,这是一个错误,而不是一个异常,也就是说是一个不可控制异常(unchecked Exception),AssertionError由于是错误,所以可以不捕获,但不推荐这样做,因为那样会使你的系统进入不稳定状态。是一种在程序中的一阶逻辑(如:一个结果为真或假的逻辑判断式),目的为了表示与验证软件开发者预期的结果——当程序执行到断言的位置时,对应的断言应该为真。但是同时我们可以根据以上的副作用得到一个有用的特性,根据它来测试断言是否打开。
2022-09-29 20:21:39 1400 6
原创 面向对象编程之自定义异常处理
八股文:实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。在编码规范上,一般将自定义异常类的类名命名为 XXXException,其中 XXX 用来代表该异常的作用。自定义异常类一般包含两个构造方法:一个是无参的默认构造方法,另一个构造方法以字符串的形式接收一个定制的异常消息,并将该消息传递给超类的构造方法。问题1:当写程序的过程中没有预料到异常,但是在交付给用户的过程中发生异常了怎么办?
2022-09-29 18:29:03 878 1
原创 面向对象编程之动态创建一个类
八股文如下:type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。以下是 type() 方法的语法:type(object)type(name, bases, dict)参数 name -- 类的名称。 bases -- 基类的元组。 dict -- 字典,类内定义的命名空间变量。返回值一个参数返回对象类型, 三个参数,返回新的类型对象。直接上代码吧!!首先简单的进行以下总结!!①类是由type产生的,type是所有类的祖师爷!!②type方法可以动
2022-09-29 16:37:22 604
原创 RuntimeError: super(): __class__ cell not found 报错根本阐述
在这里我动态的创建了一个类,在类的继承时继承父类属性的时候,不停的报错!自定义函数,用最基本的方法进行super进行继承时,是不能够完全进行继承的!用简单的super().__init__(name,age)进行继承,因为是动态创建一个类,简单super方法根本无法找到父类和子类!光记一个简单的super调用方法!如果你想要得到质的升华!用该方法,进行调用时,就会完全消除错误,因为你手动的进行子类和父类的寻找就会完全的排除这种错误!所以我们不能只记住一个简单的super方法调用!错误就会完全的消除!
2022-09-29 16:31:03 1614
原创 面向对象编程:new方法实现单例模式
什么是设计模式?一共有23种设计模式!设计模式是针对软件开发中经常遇到的一些设计问题,根据基本的设计原则,总结出来的一套实用的解决方案或者设计思路。可以看到,设计模式是非常偏实际应用的,相比设计原则更加具体、可执行。因此,在了解设计模式之前,就需要了解一些基本的设计原则。这些原则才是指导我们写出好代码的关键。
2022-09-28 17:46:39 1173 3
原创 str 、repr 、del 面向对象编程之类的重点双下线方法
析构方法,当对象在内存中被是方法时,自动触发执行注:此方法一般无须定义,因为python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给python解释器来执行所以,
2022-09-28 16:15:08 153
原创 面向对象编程之类的简单双下划线方法
Foo(dic)实例化一个对象, dic.k1触发__getattr__()方法, val={'k2': 'v2'},当val值为一个字典对象时,if条件成立, 返回一个以val字典为参数的对象,就是说: dic.k1 == Foo({'k2': 'v2'}),这个对象可以继续通过点(.)调用对象的属性,如果有多层嵌套,一直循环下去。设置对象属性和删除对象属性会触发__setattr__ 和 __delattr__ 方法,但要注意的是,在调用这两个方法时,方法内部必须操作类的属性字典,否则会造成无限递归。
2022-09-27 19:05:25 747 39
原创 关于在相同或者不同python文件夹下利用反射
对 if 语句,该语句只会在该模块作为一个导入模块的时候发挥作用,就是说当别的python文件用import进行导入时,该If语句不会被执行,就可以发现该模块不是其本身模块,而是调用过来的模块!直接对__name__进行打印,我们看到的是代表模块本身__main__答:就是说该python文件就是模块本身。
2022-09-27 16:39:45 416 1
原创 面向对象编程之属性方法property
1、把一个方法变成一个静态的属性(变量)2、能够正常的访问类中的所有东西----例:类变量,实例变量等。
2022-09-26 19:03:15 2625 2
原创 面向对象核心编程之反射现象1
1.反射定义:反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动!
2022-09-26 18:57:35 280
原创 面向对象编程之静态方法
静态方法主要是用来存放逻辑性的代码,逻辑上属于类,但是和类本身没有关系,也就是说在静态方法中,不会涉及到类中的属性和方法的操作。可以理解为,静态方法是个独立的、单纯的函数,它仅仅托管于某个类的名称空间中,便于使用和维护。类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。调用一个被定义为static的方法,可以通过在它前面加上这个类的名称,也可以像调用非静态方法一样通过类对象调用。非静态方法可以访问类的静态成员,也可以访问类的非静态成员;
2022-09-26 11:49:40 475
原创 面向对象编程之类方法@classmethod
但是这个代码有个bug!当你不创建对象,直接对在外部调用num时也可以使数量+1。答:因为这里对num+1是针对的每个新创建的实例对象,而不是针对于整个大类而言。最终的代码如下:有小伙伴们找到bug可以和我交流一下!你会发现类方法中的self指向的是类本身,而不是实例对象。类方法只能访问类变量,不能访问实例变量。通过@classmethod装饰器实现。为什么类方法中不能够访问实例变量?答:将Self换成类本身即可!答:可以使用类方法避免这个问题!
2022-09-25 19:04:50 949 2
原创 关于python中有关一个子类继承多个父类的实例属性绑定问题
当子类继承于多个父类时,super() 函数只可用于调用第一个父类的构造函数,其余父类的构造函数只能使用未绑定的方式调用。
2022-09-25 17:11:09 1734
原创 三大特性之类的多态2(抽象类如何进行和实现多态)
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类是一种特殊的类,它只能有抽象方法,不能被实例化,在子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且实现子类必须继承并实现抽象类的方法。继承了抽象类,就必须重写抽象类中的抽象方法,否则无法实例化对象,并抛异常。
2022-09-24 18:31:58 637 2
原创 三大特性之类的多态1(普通函数如何进行多态)
变量多态是指:基类型的变量(对于C++是引用或指针)可以被赋值基类型对象,也可以被赋值派生类型的对象。函数多态是指,相同的函数调用界面(函数名与实参表),传送给一个对象变量,可以有不同的行为,这视该对象变量所指向的对象类型而定。因此,变量多态是函数多态的基础。然而,习惯上并不将这种函数多态(function polymorphism)、宏多态(macro polymorphism)展现出来的行为称为多态(或静态多态),否则就连。谈及多态时,默认就是指动态多态,而静态多态则是指基于模板的多态。
2022-09-24 18:25:50 417 1
原创 面向对象的三大特性之类的封装
封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果不想被外界方法,我们大可不必提供方法给外界访问。对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。修改值干嘛的,都是要通过内部的方法去操作。
2022-09-24 16:25:09 125
原创 面向对象编程:类的多继承(单纯多继承和多重多继承)
【Python3唯一支持的算法,左图中MRO是MyClass→D→B→C→A→object】C3过于复杂,没必要去记,我们只要记住【object.mro(),显示继承的方法,从左到右依次查找】---当子类继承两个父类,同时两个父类有相同的方法时,不做任何修饰的情况下,子类调用方法时通常执行,先继承的父类。多继承可能会带来二义性,例如,猫和狗都继承自动物类,现在一个类多继承了猫和狗类,猫和狗都有了shout方法,子类究竟继承谁的shout尼?puthon3 中,无论是经典类,还是新式类,都是按广度优先查找。
2022-09-23 17:42:13 1452 1
原创 有关类继承中的各种易错点,和重写方法和属性的关键点
答:同样的在子类构造方法上面调用父类构造方法即可,Animal.__init__(self,name,age,sex)这里的self的传递流程是,键盘输入到子类当中 子类在传入子类的构造方法,在传入父类当中进行绑定!可以看到,子类对父类的eat方法进行重写时,调用了父类中的eat方法并将子类的self传进父类的eat方法当中,完成了绑定!注:无论子类怎么对父类的构造方法进行补充:都是先执行父类的构造方法之后,才能够执行子类的构造方法!答:执行完父类中的方法,在继续执行子类中的方法!我将主要代码挑出来!
2022-09-22 21:01:32 215
空空如也
寻找casual inference :what if 全文译文
2022-11-08
研一如何入手因果关系推理这个方向研究?(人工智能和数据挖掘背景下)推荐一些中文综述
2022-09-24
如何入手因果推理这个方向的研究?(语言-python)
2022-09-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人