黑匣子

选择可解释性高的机器学习模型,而不是决策风险高的黑匣子模型

三世轮回 提交于 2020-01-18 23:43:25
作者 | Adrian Colyer, Venture Partner, Accel 编译 | CDA数据分析师 本文是技术和哲学论点的混合,本文的两个主要结论:第一,我对可解释性高的机器学习模型和决策风险高的黑匣子模型之间区别的理解,以及为什么前者可能有问题;其次,它是创建真实可解释模型的技术的重要参考。 在医疗和刑事司法领域,越来越多的趋势将机器学习(ML)运用于对人类生活产生深远影响的高风险预测应用程序中……缺乏缺乏透明性和可预测性的预测模型可能会(已经造成)严重后果…… 1、定义术语 一个模型可能是一个黑匣子,其原因有两个:(a)该模型计算的功能过于复杂,以至于任何人都无法理解,或者(b)该模型实际上可能很简单,但是其细节是专有的不可检验。 在可解释的机器学习中,我们使用复杂的黑匣子模型(例如DNN)进行预测,并使用创建的第二个(事后)模型来解释第一个模型的工作。这里的一个经典示例是 LIME ,它探索复杂模型的局部区域用以发现决策边界。 一个可解释模型是用于预测的模型,可以自己直接检验和人类专家解释。 可解释性是特定于域的概念,因此不能有通用的定义。但是,通常可解释的机器学习模型 以模型形式受限,因此它对某人有用,或者服从领域的结构知识,例如单调性或来自领域知识的物理约束。 尽管缺乏很明确的定义,但是越来越多的文献提出了可能是可解释的算法。 似乎我们可以得出以下结论

函数

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 01:44:06
函数 函数是执行特定任务的一段代码,程序通过将 段代码定义成函数,并为该函数指定 个函数 名,这样即可在需要的时候多次调用这段代码。因此,函数是代码复用的重要手段 学习函数需要 重点掌握定义函数、调用函数的方法 。 函数就是 Python 程序的重要组成单位,一个 Pyt on 程序可以由很多个函数组成 理解函数 比如在程序中定义了 段代码,这段代码用于实现 个特定的功能 问题来了,如果下次需要实现同样的功能,难道要把前面定义的代码复制一次?如果这样做实在太傻了,这意味着 每次当 程序需要实现该功能时,都要将前面定义的代码复制一次。 正确的做法是 将实现特定功能的代码定义成 个函数,每次当程序需要实现该功能时,只要执行(调用〉该函数即可 通俗来讲,所谓函数,就是指为 段实现特定功能的代码“取” 个名字,以后即可通过该名字来执行(调用)该函数 通常,函数可以接收 个或多个参数,也可以返回 个或多个值。从函数使用者的角度来看, 函数就像一个 黑匣子 ”, 程序将零个或多 参数传入这个 黑匣子”,该“黑匣子”经过一番计算即可返回零个或多个值。 对于“黑匣子”的内部细节(就是函数的内部实现细节〉,函数的使用者并不需要关心 就像前面在调用len ()、m ax()、 min() 函数时 我们只负责传入参数、接收返回值,至于函数内部的实现细节,我们并不关心 从函数定义者(实现函数的人

Python函数(函数定义、函数调用)用法详解

被刻印的时光 ゝ 提交于 2019-11-27 22:05:37
Python 中,函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如 input() 、print()、range()、len() 函数等等,这些都是 Python 的内置函数,可以直接使用。 除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写、多次调用的目的。 比如,在程序中定义了一段代码,这段代码用于实现一个特定的功能。问题来了,如果下次需要实现同样的功能,难道要把前面定义的代码复制一次?如果这样做实在太傻了,这意味着每次当程序需要实现该功能时,都要将前面定义的代码复制一次。正确的做法是,将实现特定功能的代码定义成一个函数,每次当程序需要实现该功能时,只要执行(调用)该函数即可。 通俗来讲,所谓函数,就是指为一段实现特定功能的代码“取”一个名字,以后即可通过该名字来执行(调用)该函数。使用函数,可以大大提高代码的重复利用率。 通常,函数可以接收零个或多个参数,也可以返回零个或多个值。从函数使用者的角度来看,函数就像一个“黑匣子”,程序将零个或多个参数传入这个“黑匣子”,该“黑匣子”经过一番计算即可返回零个或多个值。 对于“黑匣子”的内部细节(就是函数的内部实现细节),函数的使用者并不需要关心。就像前面在调用 len()、max()、min() 等函数时,我们只负责传入参数、接收返回值