【可解释性机器学习】interpretable machine learning——Functional Decomposition

2023-11-07

Functional Decomposition

机器学习中的监督学习模型可被视为一个函数,该函数将高维特征向量作为输入,然后产生预测或分类概率作为输出。函数分解(functional decomposition)分解高维函数并将其表达为可以可视化的个体特征效应和交互效应总和,而且函数分解是许多可解释方法的潜在基本原则之一。它会帮助你更好地理解可解释方法。
让我们直入主题并且看一个特定的函数,该函数采用二维向量作为输入,产生一维输出:
y = f ^ ( x 1 , x 2 ) = 2 + e x 1 − x 2 + x 1 ⋅ x 2 y=\hat{f}(x_1,x_2)=2+e^{x_1}-x_2+x_1\cdot x_2 y=f^(x1,x2)=2+ex1x2+x1x2
将函数视为一个机器学习模型,用一个带有等高线的二维图像来直观显示该函数:


图1

该函数是在自变量 X 1 X_1 X1取一个很大的值和 X 2 X_2 X2取一个很小的值的时候函数值较大; X 1 X_1 X1取值较小, X 2 X_2 X2取值较大的时候函数值取值较小。预测函数不是简单的两个特征之间的相加效果,而是两者之间的相互作用。在图1中展现了特征交互的作用,效应值的变化在更改了 X 1 X_1 X1之后还要看特征值 X 2 X_2 X2的大小。

我们现在主要的任务就是将该函数分解为变量 X 1 X_1 X1和变量 X 2 X_2 X2的主要效应函数,以及两个自变量的交互影响项。对于一个输入特征为两维的二维输入函数 f ^ \hat{f} f^也可以写成 f ^ ( x 1 , x 2 ) \hat f(x_1,x_2) f^(x1,x2)的形式,我们希望每一项都能代表关于一个自变量效应函数的形式( f ^ 1 和 f ^ 2 \hat f_1和 \hat f_2 f^1f^2),两个变量的交互项( f ^ 1 , 2 \hat f_{1,2} f^1,2)和一个截距项( f ^ 0 \hat f_0 f^0):
f ^ ( x 1 , x 2 ) = f ^ 0 + f ^ 1 ( x 1 ) + f ^ 2 ( x 2 ) + f ^ 1 , 2 ( x 1 , x 2 ) \hat f(x_1,x_2) = \hat f_0 + \hat f_1(x_1) + \hat f_2(x_2) +\hat f_{1,2}(x_1,x_2) f^(x1,x2)=f^0+f^1(x1)+f^2(x2)+f^1,2(x1,x2)
主效应表示每个特征如何影响预测,与其他特征的值无关。交互效应表示特征的联合效应。截距只是告诉我们,当所有特征效应都被设置为零时,预测是什么。请注意,组件本身是具有不同输入维度的函数(截距除外)。

现在给你函数的每一项,截距项 f ^ 0 ∽ 3.18 \hat f_0\backsim3.18 f^03.18,将其他项的分函数分别可视化之后得到图2所示:


图2

图2显示了 X 1 X_1 X1是指数类型的响应, X 2 X_2 X2是显示出了负效应, x 1 ⋅ x 2 x_1\cdot x_2 x1x2交互项是一个双曲抛物面。

How not to compute the components I

上述部分看一眼公式就能得到函数分解的相应答案,并不需要什么花哨的方法。对于特征 x 1 x_1 x1,我们可以得到只包含 x 1 x_1 x1的项 f ^ 1 ( x 1 ) = e x 1 \hat f_1(x_1)=e^{x_1} f^1(x1)=ex1;对于 x 2 x_2 x2来说是 f ^ 2 ( x 2 ) = − x 2 \hat f_2(x_2)=-x_2 f^2(x2)=x2,交互项是 f ^ 12 ( x 1 , x 2 ) = x 1 ⋅ x 2 \hat f_{12}(x_1,x_2)=x_1\cdot x_2 f^12(x1,x2)=x1x2。这个例子的函数分解的答案显而易见是正确的,但是以这种方式进行函数分解存在两个问题:问题(1)虽然这个例子是从公式开始的,但现实是几乎没有机器学习模型可以用这样简洁的公式来描述。问题2)要复杂得多,涉及到什么是相互作用。假设我们两个特征 x 1 x_1 x1 x 2 x_2 x2的交互项的函数式是 f ^ 12 ( x 1 , x 2 ) = x 1 ⋅ x 2 \hat f_{12}(x_1,x_2)=x_1\cdot x_2 f^12(x1,x2)=x1x2,其中两个特征都取大于零的值并且彼此独立。通过我们对公式策略的研究,我们可以得出结论,特征 x 1 x_1 x1 x 2 x_2 x2之间存在相互作用,但不存在个体特征效应。但是,我们真的可以说特征 x 1 x_1 x1对预测函数没有单独的影响吗?不管 x 2 x_2 x2取什么值,函数值会升高随着我们增加 x 1 x_1 x1的值。例如,让 x 2 = 1 x_2=1 x2=1那么函数对于特征 x 1 x_1 x1来说就是 f ^ ( x 1 , 1 ) = x 1 \hat f(x_1,1)=x_1 f^(x1,1)=x1,当 x 2 = 10 x_2=10 x2=10交互项就变成了 f ^ ( x 1 , 10 ) = 10 ⋅ x 1 \hat f(x_1,10)=10\cdot x_1 f^(x1,10)=10x1。因此很明显特征 x 1 x_1 x1对预测有正面影响,独立于 x 2 x_2 x2且不为零。
为了解决问题1)缺少对简洁公式的获取,我们需要一种仅使用预测函数或分类分数的方法。为了解决缺乏定义的问题,我们需要一些公理来告诉我们各函数项应该是什么样子,以及它们之间的关系。但是首先,我们应该更精确地定义什么是函数分解。

Functional Decomposition

假设有一个函数 f ^ : R p → R \hat f :\mathbb{R}^p\rightarrow \mathbb{R} f^:RpR,输入是 p p p维特征向量并产生一维输出。这可以是回归函数,但也可以是给定类别的分类概率或给定聚类的分数(无监督机器学习)。完全分解后,我们可以将预测函数表示为函数分量的总和:
f ^ ( x ) = f ^ 0 + f ^ 1 ( x 1 ) + ⋯ + f ^ p ( x p ) + f ^ 1 , 2 ( x 1 , x 2 ) + ⋯ + f ^ 1 , p ( x 1 , x p ) + ⋯ + f ^ p − 1 , p ( x p − 1 , x p ) + … + f ^ 1 , … , p ( x 1 , … , x p ) \begin{aligned} \hat f(x)=&\hat f_0+\hat f_1(x_1)+\dots+\hat f_p(x_p)\\ &+\hat f_{1,2}(x_1,x_2)+\dots+\hat f_{1,p}(x_1,x_p)+\dots+\hat f_{p-1,p}(x_{p-1,x_p})\\ &+\dots\\ &+\hat f_{1,\dots ,p}(x_1,\dots ,x_p) \end{aligned} f^(x)=f^0+f^1(x1)++f^p(xp)+f^1,2(x1,x2)++f^1,p(x1,xp)++f^p1,p(xp1,xp)++f^1,,p(x1,,xp)
我们可以通过索引所有可能的特征组合子集来使分解公式更好一些: S ⊆ { 1 , … , p } S\subseteq\{1,\dots,p\} S{1,,p},这个集合包含了截距项也就是 S = ∅ S=\emptyset S=,主要的函数效应 ( ∣ S ∣ = 1 ) (|S|=1) (S=1),以及特征之间的交互项 ( ∣ S ∣ ≥ 1 ) (|S|\ge 1) (S1)。有了关于这个子集的定义,我们将分解写成如下的形式:
f ^ ( x ) = ∑ s ⊆ { 1 , … , p } f ^ S ( x S ) \hat f(x)=\sum_{s\subseteq\{1,\dots,p\}}\hat f_S (x_S) f^(x)=s{1,,p}f^S(xS)
在这个公式中, x S x_S xS是索引集 S S S中的特征向量,并且每个 S S S中的子集表示一个函数的项,例如,如果 S S S只包含一个特征则只存在一个主要的函数效应,若 ∣ S ∣ ≥ 1 |S|\ge1 S1则存在特征交互项。

How not to Compute the Components II

到目前为止,我一直避免谈论分解的函数项是如何定义和计算的。我们已经含蓄地谈到的唯一约束是项的数量和维度,并且各项的总和应该产生原始函数。但是如果对项没有进一步的限制,它们就不是唯一的。这意味着我们可以在主效应和交互作用之间,或者低阶交互作用(少数特征)和高阶交互作用(更多特征)之间转换效应。在本章开始的例子中,我们可以将两个主要效果都设置为零,并将它们的效果添加到交互效果中。
这里有一个更极端的例子,说明了对组件进行约束的必要性。假设你有一个三维函数。这个函数看起来像什么并不重要,但是下面的分解总是有效的: f ^ 0 \hat f_0 f^0是0.12。 f ^ 1 ( x 1 ) = 2 ⋅ x 1 + number of shoes you own \hat f_1(x_1)=2\cdot x_1+\text{number of shoes you own} f^1(x1)=2x1+number of shoes you own f ^ 2 , f ^ 3 , f ^ 1 , 2 , f ^ 1 , 3 , f ^ 2 , 3 \hat f_2,\hat f_3,\hat f_{1,2},\hat f_{1,3},\hat f_{2,3} f^2,f^3,f^1,2,f^1,3,f^2,3全是零。为了让这个技巧有效,规定 f ^ 1 , 2 , 3 ( x 1 , x 2 , x 3 ) = f ^ ( x ) − ∑ s ⊂ { 1 , … , p } f ^ S ( x S ) \hat f_{1,2,3}(x_1,x_2,x_3)=\hat f(x) - \sum_{s\subset\{1,\dots,p\}}\hat f_S(x_S) f^1,2,3(x1,x2,x3)=f^(x)s{1,,p}f^S(xS)。因此,包含所有特征的相互作用项简单地吸收了所有剩余的效应,根据定义,这总是有效的,因为所有分量的总和给了我们原始的预测函数。如果你把这作为你的模型的解释,这种分解将不会有很大的意义,而且很容易引起误解。
通过指定进一步的约束或用于计算函数的分解项的特定方法,可以避免模糊性。在本章中,我们将讨论三种以不同方式实现功能分解的方法:

  • (Generalized) Functional ANOVA
  • Accumulated Local Effects
  • Statistical regression models

Hooker (2004)39提出了功能性方差分析。这种方法的一个要求是模型预测函数 f ^ \hat f f^是平方可积的。与任何函数分解一样,函数方差分析将功能分解为几个函数项:
f ^ ( x ) = ∑ s ⊆ { 1 , … , p } f ^ S ( x S ) \hat f(x)=\sum_{s\subseteq\{1,\dots,p\}}\hat f_S(x_S) f^(x)=s{1,,p}f^S(xS)
Hooker用公式定义一下函数的每一项:
f ^ S ( x ) = ∫ X − S ( f ^ ( x ) − ∑ V ⊂ S f ^ V ( x ) ) d X − S \hat f_S(x)=\int_{X-S}(\hat f(x)-\sum_{V\subset S}\hat f_V(x))dX_{-S} f^S(x)=XS(f^(x)VSf^V(x))dXS
将以上公式分解并重写为:
f ^ S ( x ) = ∫ X − S ( f ^ ( x ) ) d X − S − ∫ X − S ( ∑ V ⊂ S f ^ V ( x ) ) d X − S \hat f_S(x)=\int_{X-S}(\hat f(x))dX_{-S}-\int_{X_{-S}}(\sum_{V\subset S}\hat f_V(x))dX_{-S} f^S(x)=XS(f^(x))dXSXS(VSf^V(x))dXS
左侧是关于从集合中排除的特征的预测函数的积分 S,表示为 − S -_S S。例如,如果我们计算特征2和3的双向相互作用分量,我们将对特征1、4、5…进行积分,该积分也可以被视为预测函数关于以下各项的期望值 X − S X − S XS 假设所有特性从最小值到最大值都遵循均匀分布。从这个区间中,我们减去子集 S的所有分量。这种减法消除了所有低阶效果的影响,并使效果居中。对于集合S={1,2}来说,减去这两个特征的主要影响 f ^ 1 \hat f_1 f^1 f ^ 2 \hat f_2 f^2,以及截距 f ^ 0 \hat f_0 f^0。这些低阶效应的出现使公式递归:我们必须通过子集的层次结构来截取并计算所有这些分量。对于截距组件 f ^ 0 \hat f_0 f^0,子集是空集 S = { ∅ } S=\{\emptyset\} S={},因此−S包含所有特征:
f ^ 0 ( x ) = ∫ X f ^ ( x ) d X \hat f_0(x)=\int_X \hat f(x)dX f^0(x)=Xf^(x)dX
这是一个简单的预测考虑了所有的特征。当我们假设所有特征都是均匀分布时,截距也可以解释为预测函数的期望。现在知道了 f ^ 0 \hat f_0 f^0,可以计算 f ^ 1 \hat f_1 f^1,对于 f ^ 2 \hat f_2 f^2等效的:
f ^ 1 ( x ) = ∫ X 1 ( f ^ ( x ) − f ^ 0 ) d X − S \hat f_1(x) = \int_{X_1}(\hat f(x)-\hat f_0)dX_{-S} f^1(x)=X1(f^(x)f^0)dXS
完成 f ^ 1 , 2 \hat f_{1,2} f^1,2项的计算,将所有内容放在一起:
f ^ 1 , 2 ( x ) = ∫ X 3 , 4 ( f ^ ( x ) − ( f ^ 0 ( x ) + f ^ 1 ( x ) − f ^ 0 + f ^ 2 ( x ) − f ^ 0 ) ) = ∫ X 3 , 4 ( f ^ ( x ) − f ^ 1 ( x ) − f ^ 2 ( x ) + f ^ 0 ) d X 3 , X 4 \begin{aligned} \hat f_{1,2}(x)&=\int_{X_{3,4}}(\hat f(x)-(\hat f_0(x)+\hat f_1(x)-\hat f_0+\hat f_2(x)-\hat f_0))\\ &=\int_{X_{3,4}}(\hat f(x)-\hat f_1(x)-\hat f_2(x)+\hat f_0)dX_3,X_4\\ \end{aligned} f^1,2(x)=X3,4(f^(x)(f^0(x)+f^1(x)f^0+f^2(x)f^0))=X3,4(f^(x)f^1(x)f^2(x)+f^0)dX3,X4
这个例子显示了如何通过对所有其他特征进行积分来定义每个高阶效应,以及如何通过移除作为我们感兴趣的特征集的子集的所有低阶效应来定义每个高阶效应。
Hooker (2004)已经表明,函数分解的项的定义满足这些理想的公理:

  • 零均值: ∫ f ^ S ( x S ) d X S = 0 \int \hat f_S(x_S)dX_S=0 f^S(xS)dXS=0对于每个 S ≠ ∅ S\neq \emptyset S=
  • 正交性: ∫ f ^ S ( x S ) f ^ V ( x V ) d X = 0 , for S不等于V \int \hat f_S(x_S)\hat f_V(x_V)dX=0,\quad\text{for S不等于V} f^S(xS)f^V(xV)dX=0for S不等于V
  • 方差分解: σ f ^ 2 = ∫ f ^ ( x ) 2 d X , then σ f ^ 2 = ∑ S ⊆ { 1 , … , p } σ S 2 ( f ^ S ) \sigma_{\hat f}^2=\int \hat f(x)^2dX,\quad\text{then}\sigma_{\hat f}^2=\sum_{S\subseteq \{1,\dots ,p\}}\sigma_S^2(\hat f_S) σf^2=f^(x)2dX,thenσf^2=S{1,,p}σS2(f^S)

零均值定理意味着所有的影响或相互作用都以零为中心。因此,位置x处的解释相对于中心预测,而不是绝对预测。
正交定理意味着函数分解项之间不共享信息。例如,特征的一阶效应 X 1 X_1 X1和的相互作用项 X 1 X_1 X1和 X2没有关联。由于正交性,所有分量都是“纯”的,因为它们不会混合效果。很有意义的是,比如说,函数的分解项 X 4 X_4 X4应该独立于特征之间的交互项 X 1 X_1 X1 X 2 X_2 X2。更有趣的结果出现在分层分量的正交性上,其中一个分量包含另一个分量的特征,例如 X 1 X_1 X1 X 2 X_2 X2之间的相互作用,以及特征 X 1 X_1 X1的主要影响。相反, X 1 X_1 X1 X 2 X_2 X2的二维部分依赖图将包含四个效应:截距、 X 1 X_1 X1 X 2 X_2 X2两个主要效应以及它们之间的相互作用。 f ^ 1 , 2 ( x 1 , x 2 ) \hat f_{1,2}(x_1,x_2) f^1,2(x1,x2)的函数方差分析分量仅包含纯相互作用。
方差分解允许我们划分函数的方差 f ^ \hat f f^,并保证它最终将函数的总方差相加。方差分解的性质也可以向我们解释为什么该方法被称为泛函方差分析。在统计学中,ANOVA代表方差分析。ANOVA指的是一组分析目标变量均值差异的方法。ANOVA的工作原理是将方差除以变量并将其归因于变量。因此,函数方差分析可以被看作是这一概念对任何函数的扩展。
当特征相关时,函数方差分析出现问题。作为一种解决方案,广义函数方差分析已被提出。

Generalized Functional ANOVA(Analysis of Variance) for Dependent Features

与大多数基于采样数据的解释技术(如PDP)相似,当特征相关时,功能性方差分析会产生误导性结果。如果我们对均匀分布进行积分,而实际上特征是相互依赖的,那么我们会创建一个新的数据集,该数据集会偏离联合分布,并推断出不太可能的特征值组合。
Hooker(2007年)提出了广义泛函方差分析,这是一种适用于从属特征的分解。它是我们前面遇到的函数方差分析的推广,也就是说函数方差分析是广义函数方差分析的特例。分量被定义为f在加法函数空间上的投影:
f ^ S ( x S ) = a r g m i n g s ∈ L 2 ( R S ) S ∈ P ∫ ( f ^ ( x ) − ∑ s ⊂ q g S ( x S ) ) 2 ω ( x ) d x \hat f_S(x_S)=argmin_{gs}\in L^2(\mathbb{R}^S)S\in P\int(\hat f(x)-\sum_{s\subset q} gS(x_S))^2\omega(x)dx f^S(xS)=argmingsL2(RS)SP(f^(x)sqgS(xS))2ω(x)dx
分解项不满足正交性,而是满足分层正交性条件:
∀ f ^ S ( x S ) ∣ S ⊂ U : ∫ f ^ S ( x S ) f ^ U ( x U ) ω ( x ) d x = 0 \forall \hat f_S(x_S)|S\subset U:\int \hat f_S(x_S)\hat f_U(x_U)\omega (x)dx=0 f^S(xS)SU:f^S(xS)f^U(xU)ω(x)dx=0
分层正交不同于正交性,对于两个特征集合S和U,他们都不是另外一个的子集(例如S={1,2})和U={2,3}, f ^ S \hat f_S f^S, f ^ U \hat f_U f^U函数项的分解不必要是正交的,分解在层级是正交的即可。但是所有的子集的必须正交。因此,解释在相关方面有所不同: 与ALE章节中的M图类似,广义功能方差分析分量可以纠缠相关特征的(边际)效应。 分量是否纠缠边际效应还取决于权重函数的选择 ω ( x ) \omega(x) ω(x). 如果我们选择 ω \omega ω作为单位立方体上的均匀度量,我们从上一节中获得函数方差分析。 ω \omega ω 的自然选择是联合概率分布函数。 然而,联合分布通常是未知的,并且难以估计。 一个技巧可以从单位立方体上的统一测量开始,并切出没有数据的区域。
估计是在特征空间中的点网格上完成的,并表示为可以使用回归技术解决的最小化问题。 然而,这些分量不能单独计算,也不能分层计算,但必须解决涉及其他分量的复杂方程组。 因此,计算非常复杂且计算密集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【可解释性机器学习】interpretable machine learning——Functional Decomposition 的相关文章

随机推荐

  • 虚函数表详解

    一 概述 为了实现C 的多态 C 使用了一种动态绑定的技术 这个技术的核心是虚函数表 下文简称虚表 本文介绍虚函数表是如何实现动态绑定的 二 类的虚表 每个包含了虚函数的类都包含一个虚表 我们知道 当一个类 A 继承另一个类 B 时 类A会
  • 机器视觉软件工程师的生活是怎样的?

    大家好 本人是刚刚入职的视觉工程师 现在已经一年了 也给大家分享一下在这一段时间里 我做了什么 以及学到了什么 对了 虽然我只做了两个月的视觉工程师 但是我已经连续写了12年的日记了 我想把这个好习惯一直延续下去 也算是做个记录 可能没有人
  • c++多态及虚函数表内部原理实战详解

    1 多态实现方式 c 的多态机制主要是靠虚函数来实现 具体来说 就是用父类的指针指向子类的实例 然后通过父类指针调用子类对象中的成员函数 这样 就实现了父类指针的 多态 想了解虚函数实现机制 就必须先了解对象的存储方式 2 类的存储方式 我
  • python span标签的text属性_python + selenium 获取标签文本的为空解决办法

    一 确定元素是否被隐藏 link driver find element By xx value is displayed print link 如果输出结果为False 说明元素被隐藏了 二 解决方法 1 修改当前定位元素方式方法 修改定
  • 使react组件重新渲染的三种方式

    1 setState 2 props发生变化 3 forceUpdate
  • 目前最大的人像抠图数据集P3M-10k开源了!助力隐私保护的人像抠图研究

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 点击进入 gt CV 微信技术交流群 转载自 京东探索研究院 人像抠图 是指从人物图像中提取人物前景 是计算机视觉领域的基础研究问题之一 1 2 3 4 8 在下游任务
  • 基于vmdk文件创建虚拟机

    基于vmdk文件创建虚拟机 1 准备vmdk文件 下载地址如下 链接 https pan baidu com s 1coQuZw8cgg5oU5bSegsS7Q pwd 5mv0 提取码 5mv0 账号 密码 root sinzuo 2 创
  • react 函数组件和class组件的区别

    一 组件的定义 1 class组件 继承React Component 且需要创建render方法来返回元素 class Welcome extends React Component render return h1 Hello this
  • 使用gdb调试多进程和多线程

    GDB调试多进程 1 默认设置下 在调试多进程程序时GDB只会调试主进程 但是GDB gt V7 0 支持多进程的分别以及同时调试 换句话说 GDB可以同时调试多个程序 只需要设置follow fork mode 默认值 parent 和d
  • 查看pcie总线上的设备ID以及带宽计算

    1 获取设备在pcie总线上的ID lspci 00 00 0 Class 0600 Device 8086 190f rev 07 00 01 0 Class 0604 Device 8086 1901 rev 07 00 01 1 Cl
  • 用python解“计算工资”题

    7 10 计算工资 某公司员工的工资计算方法如下 一周内工作时间不超过40小时 按正常工作时间计酬 超出40小时的工作时间部分 按正常工作时间报酬的1 5倍计酬 员工按进公司时间分为新职工和老职工 进公司不少于5年的员工为老职工 5年以下的
  • v-show和v-if有何异同?

    v show 用于根据条件展示元素 带有 v show 指令的元素始终会被渲染并保留在 DOM 中 v show 只是简单地切换元素的 CSS property display 注意 v show 不支持
  • SQL Server(三)-查询数据(3)

    多表连接查询和子查询 两表连接查询 多表连接查询 左外 右外 全外连接查询 组合查询 子查询 在SSMS的查询设计器中设计查询1 连接查询 1 使用无连接规则连接两表 不设置WHERE子句 所谓无连接规则连接 就是指连接两表的SELECT语
  • PPT怎么切换不同的母版

    首先选中要改变母版的PPT 右击鼠标出现菜单栏 选择版式 版式里面有所有的幻灯片母版可供选择
  • STM32------PWM

    文章目录 前言 一 PWM概述 二 库函数 1 GPIO引脚映射 2 定时器通道1配置 3 定时器通道1比较值 三 PWM1和PWM2模式 1 定义 2 示例 四 dc调光与pwm调光区别 五 呼吸灯源码下载 总结 前言 STM32 PWM
  • centos7防火墙配置详细

    一 条件防火墙是开启的 systemctl start firewalld 1 查看防火墙的配置 firewall cmd state firewall cmd list all 2 开放80端口 firewall cmd permanen
  • 数据挖掘学习(二)——数据探索与清洗

    笔者是一个痴迷于挖掘数据中的价值的学习人 希望在平日的工作学习中 挖掘数据的价值 找寻数据的秘密 笔者认为 数据的价值不仅仅只体现在企业中 个人也可以体会到数据的魅力 用技术力量探索行为密码 让大数据助跑每一个人 欢迎直筒们关注我的公众号
  • 我遇到的BUG:WSL2 忘记用户密码

    我之前忘记了WSL的密码 在网上看了很多瞎写的博文 没起到作用 后来偶然看到一篇文章 解决了这个问题 要在WSL中重置用户密码 需要 在windows命令行里将默认用户切换为root 在WSL里重置用户密码 在windows命令行里将默认用
  • sqlServer数据库索引

    08 索引 8 1 定义 对数据库表中一个或者多个列进行排序的结构 有助于更快的获取信息 是用来获取定位的 8 2 作用 加快数据检索 保证数据的一致性 实现表与表之前的参照完整性 副作用 创建索引会占用空间并耗费一定的时间 创建索引会减慢
  • 【可解释性机器学习】interpretable machine learning——Functional Decomposition

    Functional Decomposition 机器学习中的监督学习模型可被视为一个函数 该函数将高维特征向量作为输入 然后产生预测或分类概率作为输出 函数分解 functional decomposition 分解高维函数并将其表达为可