当前位置: 首页 > news >正文

BRL贝叶斯规则列表

2.1 Bayesian rule lists

1. 问题设定 (Problem Setting)

  • 任务:多分类问题(Multi-class classification),标签集合为 {1, 2, ..., L}
  • 数据:训练数据为 {(x_i, y_i)},其中 x_id 维特征向量,y_i 是类别标签。
  • 符号xy 分别表示所有特征和标签的集合。

2. 核心概念:贝叶斯关联规则 (Bayesian Association Rules)

这是 BRL 的基本构建单元

  • 传统关联规则a → b,其中 a(前件)是关于特征的条件(如 年龄>60 且 血压高),b(后件)是预测的标签(如 stroke)。
  • 贝叶斯关联规则
    • 前件 a 不变。
    • 后件 b 变为一个概率分布a → y ~ Multinomial(θ)。这意味着匹配该规则的样本属于不同类别的概率由参数 θ = (θ₁, θ₂, ..., θ_L) 决定。
    • 先验:给 θ 设定一个 Dirichlet 先验θ | α ~ Dirichlet(α)α 是超参数向量,控制先验的“强度”和“偏好”。
    • 后验:给定被规则 a 覆盖的观测数据 (x, y),统计各类别的计数 N = (N₁, N₂, ..., N_L),则 θ 的后验分布为 Dirichlet(α + N)
      • 意义:后验是先验和数据的结合。预测时,类别 l 的概率为 (α_l + N_l) / Σ(α_k + N_k)(拉普拉斯平滑)。

3. 核心模型:贝叶斯决策列表 (Bayesian Decision Lists)

这是 BRL 的核心数据结构,它将多个贝叶斯关联规则有序组合起来。

  • 结构:一个有序的前件列表 d = (a₁, a₂, ..., aₘ)
  • 关键机制顺序匹配,首次命中
    • 对于一个样本 x_i,从 a₁ 开始检查。
    • 一旦 x_i 满足某个 a_j,就立即停止,使用 a_j 对应的后件分布来预测 y_i
    • x_i 不再被后续的规则检查。
  • 计数 N_j 的定义
    • N_{j,l}:满足 a_j不满足 a₁, a₂, ..., a_{j-1} 且标签为 l 的样本数量。
    • 这确保了每个样本只被计数一次,即被它匹配的第一条规则计数。
  • 默认规则(Default Rule):
    • 如果一个样本不满足 d 中的任何规则,则使用一个默认规则 else
    • 其后件参数 θ₀ 的后验为 Dirichlet(α + N₀),其中 N₀,l 是不满足任何规则且标签为 l 的样本数。

4. 贝叶斯决策列表的完整形式

一个完整的 BRL 模型 D 定义为 (d, α, N),其形式如下:

if a₁ then y ~ Multinomial(θ₁), θ₁ ~ Dirichlet(α + N₁)
else if a₂ then y ~ Multinomial(θ₂), θ₂ ~ Dirichlet(α + N₂)
...
else if aₘ then y ~ Multinomial(θₘ), θₘ ~ Dirichlet(α + Nₘ)
else y ~ Multinomial(θ₀), θ₀ ~ Dirichlet(α + N₀)

5. 为什么这样设计?

  • 可解释性:决策列表的“if-else if-else”结构非常直观,人类可以轻松理解其决策逻辑。
  • 灵活性:每个规则的后件是一个完整的概率分布(Dirichlet 后验),可以提供预测的不确定性(如可信区间),而不仅仅是点预测。
  • 避免重复计数:通过“首次命中”机制和 N_j 的精确定义,确保了每个样本对模型的贡献是唯一的,这在构建似然函数时至关重要。
  • 处理未覆盖样本:默认规则保证了所有样本都能被分类,即使没有规则明确匹配它们。

总结

这段文字定义了 BRL 的基本元素核心数据结构

  1. 原子单元贝叶斯关联规则,其后件是带 Dirichlet 先验/后验的多项分布。
  2. 组合方式贝叶斯决策列表,将多个规则按顺序排列,采用“首次命中”策略。
  3. 计数机制N_j 的定义确保了样本计数的互斥性,这是后续构建似然函数p(y | x, d, α))的基础。
  4. 完整性:包含一个默认规则,确保模型的完备性。

简单来说,这一节回答了“BRL 模型长什么样”以及“它的各个部分(前件、后件、计数)是如何定义的”这两个问题,为后续章节(先验、似然、采样)提供了精确的数学和结构基础。

2.2前件挖掘

贝叶斯决策列表(Bayesian Decision List)中一个关键的前期步骤:前件挖掘(Antecedent Mining)。其核心目标是从原始特征中自动发现一组候选的、有意义的“规则前件”,供后续的决策列表算法使用。

我们可以分点来详细解释:


1. 为什么需要前件挖掘?

  • 直接从所有可能的特征组合中搜索最优的决策列表是计算上不可行的。例如,如果有100个二元特征,理论上可能的特征组合(如 x₁=1, x₁=1 AND x₂=1, x₁=1 AND x₂=0 AND x₃=1 等)数量是指数级增长的。
  • 因此,需要一个预处理步骤,从海量可能的组合中筛选出一个更小、更合理、更有可能有意义的候选前件集合 A

2. 核心方法:频繁项集挖掘 (Frequent Itemset Mining)

  • 适用数据:这段文字主要针对二元特征(binary features)或分类特征(categorical features)。
  • 核心思想:将每个特征(或特征的某个取值)看作一个“项目”(item)。一个“项集”(itemset)就是一组项目的集合,例如 {diabetes=1, heart_disease=1}
  • 项集即前件:一个项集 {diabetes=1, heart_disease=1} 可以直接用作一个规则前件 a:“如果患者有糖尿病且有心脏病”。
  • 挖掘算法:文中使用了 FP-Growth 算法(一种高效的频繁项集挖掘算法),并提到了其他经典算法如 Apriori 和 Eclat。

3. 挖掘的约束条件(过滤候选前件)

为了确保挖掘出的候选前件 A 是实用的,设置了两个关键约束:

  • 最小支持度 (Minimum Support)
    • 定义:一个项集(前件)在数据集中出现的频率(或数量)必须大于或等于一个预设的阈值。
    • 目的:确保每个候选前件 a_j 都适用于“足够多”的观测数据。如果一个规则只覆盖了1-2个样本,它很可能没有统计意义或容易过拟合。N_{j,l} 的计算需要足够的数据量。
  • 最大基数 (Maximum Cardinality)
    • 定义:一个项集(前件)中包含的条件(特征)数量不能超过一个预设的上限 C
    • 目的:确保生成的规则是简洁、可解释的。一个包含10个条件的规则(如 x₁=1 AND x₂=0 AND ... AND x₁₀=1)虽然可能很精确,但人类很难理解,违背了决策列表追求可解释性的初衷。

重要结论:在相同的约束下(最小支持度和最大基数),不同的频繁项集挖掘算法(FP-Growth, Apriori, Eclat)会返回完全相同的候选前件集合 A。因为它们的目标都是穷尽式地(exhaustive)找出所有满足条件的项集。


4. 前件挖掘的好处

  • 大幅降维:将所有可能的特征组合的“无限”搜索空间,缩减到一个由 |A| 个候选前件组成的、有限的集合 A
  • 保证实用性:通过支持度和基数约束,确保了候选前件既有足够的数据支持,又保持了简洁性。
  • 为后续算法提供输入:最终的贝叶斯决策列表算法将在这个预筛选的候选集合 A 中,选择一个有序的子集 (a₁, ..., aₘ) 来构建最终的决策列表。

5. 对其他类型特征的扩展

  • 带否定的前件:标准的频繁项集挖掘只产生像“糖尿病 AND 心脏病”这样的前件。如果想生成像“糖尿病”(diabetes=0)这样的前件,需要使用特殊的挖掘技术(文中引用了相关文献)。
  • 连续特征:对于年龄、收入等连续变量,不能直接用频繁项集挖掘。
    • 方法一:使用离散化(Discretization)技术,将连续特征转化为分类特征。例如:
      • 可解释的阈值划分:年龄 40-49岁,50-59岁等。
      • 可解释的分位数划分:收入处于最低四分位、第二四分位等。
    • 方法二:使用专门针对连续特征设计的前件挖掘算法(文中引用了相关文献)。
  • 文中实验的做法:作者在实验中采用了离散化的方法,将连续特征转换为分类特征,然后再进行频繁项集挖掘。

总结

这段文字的核心流程是:

  1. 输入:原始数据(特别是二元/分类特征,或经过离散化的连续特征)。
  2. 处理:使用频繁项集挖掘算法(如FP-Growth)。
  3. 约束:设置最小支持度(保证数据量)和最大基数(保证简洁性)。
  4. 输出:一个预筛选的、有限的候选前件集合 A,例如 {diabetes}, {diabetes, heart_disease}, {age>60} 等。
  5. 目的:为后续的贝叶斯决策列表学习算法提供一个高质量、可管理的候选规则库,从而在保证模型可解释性的同时,提高学习效率和效果。

这段文字描述了一个生成模型(Generative Model),它是整个贝叶斯决策列表(Bayesian Decision List)方法的理论核心和基础。它的目的是形式化地定义:数据(特征 x 和标签 y)是如何根据一个潜在的、未知的决策列表 d 以及一些先验知识被“生成”出来的

理解这个生成模型至关重要,因为它直接定义了后续贝叶斯推断(如计算后验概率)所依赖的联合概率分布 p(x, y, d)


2.3 逐行解析生成模型

生成模型描述了一个从“无到有”创造数据的虚构过程

  1. Sample a decision list length m ~ p(m|λ):

    • 首先,随机决定这个决策列表要包含多少条规则 m
    • 这个 m 是从一个先验分布 p(m|λ) 中抽取的,其中 λ 是一个超参数(hyperparameter),用于控制我们对列表长度的偏好(例如,倾向于更短的列表)。
  2. Sample the default rule parameter θ₀ ~ Dirichlet(α):

    • 为最后的“默认规则”(else 子句)抽取一个后件参数 θ₀
    • θ₀ 是从一个狄利克雷先验 Dirichlet(α) 中抽取的,α 是另一个超参数,表示我们对默认规则后件分布的初始信念。
  3. For decision list rule j=1,…,m:

    • 对于决策列表中的每一条规则 j (从1到 m),执行以下步骤:
      • Sample the cardinality of antecedent a_j as c_j ~ p(c_j|c_{<j}, A, η):
        • 决定这条规则 a_j 要包含多少个条件(即它的“基数” c_j)。
        • 这个 c_j 是从一个分布 p(c_j|c_{<j}, A, η) 中抽取的。这个分布依赖于:
          • c_{<j}: 之前所有规则的基数(体现某种顺序或复杂度依赖)。
          • A: 预先挖掘好的候选前件集合。
          • η: 另一个超参数,可能控制对规则复杂度(条件数量)的偏好(例如,倾向于更简单的规则)。
      • Sample a_j of cardinality c_j from p(a_j|a_{<j},c_j,A):
        • 在所有候选前件 A 中,选择一个恰好包含 c_j 个条件的前件 a_j 作为第 j 条规则。
        • 这个选择是基于一个分布 p(a_j|a_{<j},c_j,A),它可能依赖于之前选过的规则 a_{<j}(例如,避免重复或鼓励多样性)和当前的基数 c_j
      • Sample rule consequent parameter θ_j ~ Dirichlet(α):
        • 为这条规则 a_j 抽取一个后件参数 θ_j
        • 和默认规则一样,θ_j 也是从同一个狄利克雷先验 Dirichlet(α) 中抽取的。这表示在看到任何数据之前,我们对每条规则的预测能力有相同的初始信念。
  4. For observation i=1,…,n:

    • 对于数据集中的每一个观测 x_i (从1到 n),执行以下步骤来生成它的标签 y_i
      • Find the antecedent a_j in d that is the first that applies to x_i:
        • 在已构建的决策列表 d 中,从上到下查找,找到第一个满足 x_i 的前件 a_j
      • If no antecedents in d apply, set j=0:
        • 如果没有任何规则的前件适用于 x_i,则使用默认规则 (j=0)。
      • Sample y_i ~ Multinomial(θ_j):
        • 根据选中的规则 j 对应的后件参数 θ_j,从一个多项式分布中抽取标签 y_i
        • 这是生成标签的关键步骤!标签 y_i 是由决定“覆盖” x_i 的那条规则的 θ_j 生成的。

生成模型的最终目标:后验推断

在描述完这个虚构的生成过程后,文章给出了核心的贝叶斯推断目标

[
p(d|\mathbf{x},\mathbf{y},\mathcal{A},\bolds{\alpha},\lambda,\eta) \propto p(\mathbf{y}|\mathbf{x},d,\bolds{\alpha}) p(d|\mathcal{A},\lambda,\eta)
]

  • 左边 p(d | ...): 这是后验分布(Posterior Distribution)。它表示:在给定我们观察到的所有数据 (x, y)、候选前件集合 A 以及超参数 α, λ, η 的条件下,某个特定决策列表 d 是真实数据生成机制的概率。
  • 右边 p(y | x, d, α): 这是似然(Likelihood)。它衡量了在假设决策列表 d 是真实规则的情况下,生成我们观察到的标签 y 的概率。这个似然正是由上面的生成模型定义的。
  • 右边 p(d | A, λ, η): 这是先验(Prior)。它表示在看到任何标签 y 之前,我们认为决策列表 d 有多可能。这个先验是由生成模型中关于 m, c_j, a_j 的抽样步骤共同定义的,它编码了我们对决策列表结构(长度、复杂度)的偏好。

总结

这段“生成模型”部分做了三件关键事情:

  1. 定义了数据生成机制:它提供了一个清晰的、概率化的“故事”,解释了数据 (x, y) 是如何由一个潜在的决策列表 d 一步步生成的。
  2. 引入了先验知识:通过超参数 α, λ, η,将我们对模型复杂度(列表长度、规则复杂度)和初始信念的偏好形式化地编码到了模型中。
  3. 为贝叶斯推断奠定基础:它直接定义了后验分布 p(d | x, y, ...) 的计算方式(通过似然和先验的乘积)。后续的算法(如马尔可夫链蒙特卡洛 MCMC)的目标就是从这个后验分布中采样,从而找到最有可能的决策列表 d

简而言之,生成模型是整个贝叶斯框架的“蓝图”。它告诉我们,学习一个贝叶斯决策列表,本质上是寻找那个最有可能(在后验概率上)生成了我们所观察到的数据的决策列表 d

这段文字详细阐述了决策列表 d 的先验概率 p(d | A, λ, η) 的具体数学形式和设计原理。它解释了在贝叶斯框架下,我们如何量化地表达对决策列表结构的偏好,即我们倾向于什么样的决策列表(比如多长、规则多复杂)。

这直接对应于上一节生成模型中 p(d | A, λ, η) 这一项。现在,它给出了这个先验的精确计算方法。


2.4 层次化先验 (Hierarchical Prior)

先验 p(d | A, λ, η) 被分解为一个层次化(hierarchical)的乘积形式:

[
p(d|\mathcal{A},\lambda,\eta) = \underbrace{p(m|\mathcal{A},\lambda)}{\text{列表长度先验}} \underbrace{\prod{j=1}^m \underbrace{p(c_j|c_{<j}, \mathcal{A},\eta)}{\text{规则复杂度先验}} \underbrace{p(a_j|a{<j},c_j,\mathcal{A})}{\text{具体前件选择先验}}}{\text{对每条规则 } j}
]

这个分解反映了生成模型的步骤:先决定列表长度 m,然后对每条规则 j,决定其复杂度 c_j,再决定具体的前件 a_j


1. 列表长度 m 的先验:截断泊松分布

  • 分布选择p(m | A, λ) 被设定为一个截断的泊松分布(Truncated Poisson Distribution)。
    • 为什么是泊松? 泊松分布常用于建模“计数”事件,这里 m 就是规则的“数量”。它只有一个参数 λ,非常简洁。
    • 为什么截断? 理论上泊松分布支持 m=0, 1, 2, ... 到无穷大。但现实中,决策列表的长度不可能超过候选前件集合 A 的大小 |A|。因此,分布被截断在 |A|
  • 公式
    [
    p(m|\mathcal{A},\lambda) = \frac{(\lambdam/m!)}{\sum_{j=0}{|\mathcal{A}|} (\lambda^j/j!)},\qquad m=0,\ldots,|\mathcal{A}|.
    ]
    • 分子是标准泊松的概率质量函数。
    • 分母是归一化常数,确保所有 m 的概率之和为 1。
  • 超参数 λ 的意义
    • 关键性质:当 |A| 很大时(这通常是追求可解释性时的情况,因为我们会挖掘大量候选规则),这个截断泊松分布的期望值 E[m] 近似等于 λ
    • 如何设置 λλ 可以直接根据我们对“理想决策列表长度”的先验信念来设置。例如,如果我们认为一个好的模型大约需要 5 条规则,就可以设 λ = 5。这使得 λ 具有非常直观的解释。

2. 规则复杂度 c_j 的先验:截断且受限的泊松分布

  • 分布选择p(c_j | c_{<j}, A, η) 也被设定为一个截断的泊松分布
    • 为什么是泊松? 同样,c_j 是一个“计数”(条件的数量),泊松分布简洁且参数 η 有直观意义。
    • 截断c_j 的取值范围被限制在 [1, C](或 [0, C]),其中 C 是前件挖掘时设定的“最大基数”。
  • 关键限制:可用性 R_{j-1}
    • 这是最精妙的一点。候选集合 A 中,某个特定基数(如 c=4)的前件数量是有限的
    • 例如,A 中可能只有 2 个包含 4 个条件的前件。如果前两条规则 a₁a₂ 都选了 c=4 的前件,那么在选 a₃ 时,就不能再选 c=4 了,因为没有可用的前件了。
    • R_{j-1}(c_{<j}, A) 定义了在选择了前 j-1 条规则后,仍然可用的前件基数集合
  • 公式
    [
    p(c_j|c_{<j},\mathcal{A},\eta) = \frac{(\eta^{c_j}/c_j!)}{\sum_{k \in R_{j-1}(c_{<j},\mathcal{A})} (\eta^k/k!)},\qquad c_j \in R_{j-1}(c_{<j},\mathcal{A}).
    ]
    • 分子是泊松概率。
    • 分母的求和只在当前可用的基数 k 上进行,确保了概率的归一化,并且不会选择到“库存耗尽”的基数。
  • 超参数 η 的意义
    • 关键性质:当 A 中各种基数的前件数量都很多,且 η 远小于 C 时,每条规则的平均复杂度的期望值近似等于 η
    • 如何设置 ηη 可以根据我们对“理想规则复杂度”的先验信念来设置。例如,如果我们希望规则尽可能简单,平均包含 2-3 个条件,可以设 η = 2.5

3. 具体前件 a_j 的先验:均匀分布

  • 分布选择p(a_j | a_{<j}, c_j, A) 被设定为一个均匀分布(Uniform Distribution)。
  • 选择范围:在所有候选前件 A 中,选择那些:
    1. 基数(条件数量)恰好等于 c_j
    2. 尚未被前面的规则 a_{<j} 选中过(避免重复)。
  • 公式
    [
    p(a_j|a_{<j},c_j,\mathcal{A}) \propto 1,\qquad a_j \in{a \in\mathcal {A} \setminus a_{<j}: |a| = c_j}.
    ]
    • 这意味着,在所有符合条件的候选前件中,每个前件被选中的概率是相等的
  • 为什么用均匀分布?
    • 这是一个非信息性先验(non-informative prior)。在确定了规则的复杂度 c_j 后,我们对“具体选哪一个前件”没有任何偏好,让数据(通过似然)来决定哪个前件更好。这是一种保守且常见的做法。

总结

这段文字的核心是定义了一个结构清晰、参数直观的层次化先验

  1. 控制列表长度:用超参数 λ 通过截断泊松分布控制决策列表的期望长度。
  2. 控制规则复杂度:用超参数 η 通过截断且考虑“库存”的泊松分布控制每条规则的期望复杂度。
  3. 选择具体规则:在给定长度和复杂度下,用均匀分布从候选集中无偏好地选择具体的前件。

这个先验设计的优点在于:

  • 可解释性λη 有非常直观的含义(期望长度和期望复杂度),用户可以根据领域知识或对可解释性的要求来设置。
  • 实用性:通过截断和“库存”检查,确保了生成的决策列表在数学上是有效的(不会索引不存在的前件)。
  • 与目标一致:它明确地将“追求简短、简单的规则”这一可解释性目标,编码到了模型的先验中。这正是贝叶斯决策列表方法的核心优势之一。

这段文字定义了贝叶斯决策列表模型中的似然函数(Likelihood Function),这是贝叶斯推断中另一个核心组成部分。它量化了:在给定一个特定的决策列表 d 和数据特征 x 的情况下,观察到真实标签 y 的概率有多大


2.5似然函数

1. 似然函数的直接来源

文章开头就指出,这个似然函数直接来自于之前定义的生成模型

  • 回顾生成模型:对于每个观测 x_i,它会被决策列表 d 中的某条规则 a_j(或默认规则 a_0)覆盖,然后其标签 y_i 是从一个以 θ_j 为参数的多项式分布 Multinomial(θ_j) 中抽取的。

2. 似然函数的初步形式

  • 定义
    [
    p(\mathbf{y}| \mathbf{x},d,\bolds{\theta})= \prod_{j: \sum_l N_{j,l} > 0} \operatorname{Multinomial}(\mathbf{N}_j | \theta_j)
    ]
  • 解释
    • θ = (θ₀, θ₁, ..., θₘ):这是所有规则(包括默认规则)的后件参数向量。
    • 这个似然函数是多个多项式分布概率质量函数的乘积
    • 对于决策列表中的每一条规则 j(只要它至少覆盖了一个数据点,即 ∑ₗ Nⱼ,ₗ > 0),我们都计算一个 Multinomial(N_j | θ_j)
    • Multinomial(N_j | θ_j) 表示:在给定参数 θ_j 的情况下,观察到由规则 j 覆盖的数据中各类标签的计数 N_j = (Nⱼ,₁, ..., Nⱼ,ʟ) 的概率。
  • 注意:这里的似然依赖于具体的参数 θ

3. 关键步骤:对 θ 进行边缘化 (Marginalization)

  • 问题:在实际的贝叶斯推断中,我们通常不关心具体的 θ 值,而是关心决策列表 d 本身。θ 被视为潜变量(latent variables)。

  • 解决方案:利用我们对 θ_j 的先验知识 θ_j ~ Dirichlet(α),将 θ_j 从似然中“积分掉”(即进行边缘化)。

  • 结果:得到了一个不依赖于 θ 的边缘似然(Marginal Likelihood):
    [
    p(\mathbf{y}|\mathbf{x},d,\bolds{\alpha})=\prod_{j=0}^m \frac{\Gamma( \sum_{l=1}^{L}\alpha_l)}{ \Gamma( \sum_{l=1}^{L} N_{j,l} + \alpha_l)}\prod_{l=1}^{L} \frac{ \Gamma(N_{j,l}+\alpha_l)}{ \Gamma(\alpha_l)}
    ]
    或者等价地(忽略常数项):
    [
    p(\mathbf{y}|\mathbf{x},d,\bolds{\alpha}) \propto\prod_{j=0}^m \frac{ \prod_{l=1}^{L} \Gamma(N_{j,l}+\alpha_l)}{ \Gamma( \sum_{l=1}^{L} N_{j,l} + \alpha_l)}
    ]

  • 数学背景:这个结果是通过狄利克雷-多项式分布(Dirichlet-Multinomial Distribution)的共轭性质推导出来的。狄利克雷分布是多项式分布的共轭先验,因此边缘化后的分布有闭式解。


4. 边缘似然的含义和作用

  • p(y | x, d, α) 现在表示:在给定特征 x、决策列表 d 和超参数 α 的情况下,观察到标签 y总概率。这个概率已经考虑了 θ_j 的所有可能取值,并根据 Dirichlet(α) 先验进行了加权平均。
  • 在后验计算中的作用:这个边缘似然 p(y | x, d, α) 将直接作为贝叶斯公式中的似然项
    [
    p(d|\mathbf{x},\mathbf{y},\mathcal{A},\bolds{\alpha},\lambda,\eta) \propto \underbrace{p(\mathbf{y}|\mathbf{x},d,\bolds{\alpha})}{\text{这里用到的似然}} \underbrace{p(d|\mathcal{A},\lambda,\eta)}{\text{先验}}
    ]
    算法(如MCMC)会计算不同 d 的这个后验概率,从而找到最有可能的决策列表。

5 超参数 α 的解释和设置

  • 伪计数 (Pseudocounts)α 被解释为伪计数αₗ 可以看作是在看到任何真实数据之前,我们“虚拟地”观察到类别 l 出现了 αₗ 次。
  • 文中实验的设置:作者在实验中将所有 αₗ 设为 1。
    • 这对应于一个均匀先验(Uniform Prior),即 Dirichlet(1, 1, ..., 1)。它表示在没有任何数据的情况下,我们对所有类别的概率分布没有偏好。
    • 这是一个非常常见且保守的选择(拉普拉斯平滑)。
  • 其他方法:文章也提到可以使用经验贝叶斯(Empirical Bayes)等方法来从数据中估计 α,但这不是本文的重点。

总结

这段文字的核心是:

  1. 定义似然:基于生成模型,定义了标签 y 在给定 xd 下的似然 p(y | x, d, θ)
  2. 边缘化潜变量:通过将后件参数 θ_j 从狄利克雷先验 Dirichlet(α) 中边缘化,得到了一个不依赖于 θ 的、可计算的边缘似然 p(y | x, d, α)
  3. 提供计算基础:这个边缘似然是计算决策列表 d 的后验概率 p(d | x, y, ...) 的关键组成部分,使得整个贝叶斯推断过程成为可能。
  4. 解释超参数:明确了 α 作为伪计数的角色,并说明了实验中的具体设置。

简而言之,似然函数部分告诉我们,一个给定的决策列表 d 对数据 y 的“拟合程度”如何衡量。拟合得越好(似然越高),在后验概率中的权重就越大,但同时也要受到先验 p(d | A, λ, η) 的约束(倾向于更短、更简单的列表)。最终的模型是“数据拟合”和“模型简洁性”之间的权衡。

这段文字描述了如何使用马尔可夫链蒙特卡洛(MCMC)方法,特别是Metropolis-Hastings 算法,来从决策列表 d后验分布 p(d | x, y, A, α, λ, η) 中进行采样。

这是整个贝叶斯决策列表方法的核心计算引擎。因为后验分布 p(d | x, y, ...) 通常非常复杂,无法直接计算或从中采样,所以需要使用 MCMC 这种迭代的随机搜索方法来近似它。


2.6蒙特卡洛算法

1. MCMC 的目标

  • 目标是生成一系列决策列表 d¹, d², d³, ...,这些列表的分布会逐渐收敛到真实的后验分布 p(d | x, y, ...)
  • 一旦得到这些样本,就可以:
    • 找到后验概率最高的 d 作为最终模型。
    • 计算后验均值、可信区间等。
    • 评估不同规则的后验包含概率。

2. Metropolis-Hastings 算法的核心:提议(Proposal)和接受(Acceptance)

MCMC 的每一步都包含两个关键操作:

  1. 提议(Proposal):从当前状态 dᵗ(第 t 步的决策列表)出发,根据一个提议分布 Q(d* | dᵗ),随机生成一个候选的新状态 d*
  2. 接受(Acceptance):计算一个接受概率 A(dᵗ → d*),决定是接受这个提议(将状态更新为 d*)还是拒绝它(保持状态为 dᵗ)。
    • 接受概率通常为:A = min(1, [p(d*) / p(dᵗ)] * [Q(dᵗ | d*) / Q(d* | dᵗ)])
    • 这里的 p(d) 指的是后验概率 p(d | x, y, ...) ∝ p(y | x, d, α) * p(d | A, λ, η),我们在上两节已经定义了似然和先验。

3. 本文的提议机制(Proposal Mechanism)

文章定义了三种基本的、用于生成候选 d* 的操作,每种操作被等概率(uniformly)选择:

  • (1) 移动(Move):从当前列表 dᵗ 中随机选择一个前件 a_j,并将其移动到列表中的另一个随机位置
    • 目的:改变规则的顺序,因为决策列表的顺序至关重要(先匹配的规则生效)。
  • (2) 添加(Add):从候选集合 A 中,选择一个尚未在 dᵗ 中的前件,并将其添加到列表中的一个随机位置
    • 目的:探索更长的决策列表。
  • (3) 删除(Remove):从当前列表 dᵗ 中随机选择一个前件 a_j 并将其删除
    • 目的:探索更短的决策列表。

关键:选择哪个操作、选择哪个前件、移动到哪个位置、添加到哪个位置,都是均匀随机的。


4. 提议概率 Q(d* | dᵗ) 的计算

这是 MCMC 算法中至关重要的一环,因为接受概率的计算需要知道 Q(d* | dᵗ)Q(dᵗ | d*)

文章给出了在“均匀选择”策略下,每种提议类型的 Q 值:

  • 移动提议 (Move)
    [
    Q(d*|dt,\mathcal{A}) = \frac{1}{(|dt|)(|dt|-1)}
    ]

    • 解释:有 |dᵗ| 个前件可以被选择移动,对于每个被选中的前件,有 |dᵗ|-1 个其他位置可以移动到(不能移到原位)。总共有 |dᵗ| * (|dᵗ|-1) 种可能的“移动”操作,每种被选中的概率是其倒数。
  • 添加提议 (Add)
    [
    Q(d*|dt,\mathcal{A}) = \frac{1}{(|\mathcal{A}| - |dt|)(|dt|+1)}
    ]

    • 解释:有 |A| - |dᵗ| 个候选前件可以被添加,对于每个要添加的前件,有 |dᵗ|+1 个位置可以插入(包括最前、中间和最后)。总共有 (|A| - |dᵗ|) * (|dᵗ|+1) 种可能的“添加”操作。
  • 删除提议 (Remove)
    [
    Q(d*|dt,\mathcal{A}) = \frac{1}{|d^t|}
    ]

    • 解释:有 |dᵗ| 个前件可以被删除,选择任何一个的概率都是 1/|dᵗ|

为什么需要这些公式? 在计算接受概率 A 时,需要计算 Q(dᵗ | d*) / Q(d* | dᵗ)。例如,如果从 dᵗ 通过“添加”操作生成了 d*,那么 Q(d* | dᵗ) 就是上面的“添加”概率。而 Q(dᵗ | d*) 则是 d* 通过“删除”操作回到 dᵗ 的概率(因为添加的逆操作是删除),即 1/|d*| = 1/(|dᵗ|+1)


5. MCMC 实验设置

  • 多链运行:每次实验运行 3 条独立的 MCMC 链。每条链的初始状态 d⁰ 都是从先验分布 p(d | A, λ, η) 中随机抽取的。
  • 预烧期(Burn-in):丢弃每条链前一半的样本。因为链的初期状态受初始值影响较大,尚未达到平稳分布。
  • 收敛诊断:使用Gelman-Rubin 诊断 统计量)来判断多条链是否已经收敛到同一个平稳分布。
    • 诊断基于对数后验密度(log posterior density)的轨迹。
    • R̂ < 1.05 时,认为链已经收敛。这是一个常用的收敛标准。

总结

这段文字描述了如何实际地从复杂的后验分布中采样

  1. 定义搜索空间:通过“移动、添加、删除”三种基本操作,定义了如何在所有可能的决策列表 d 之间进行“跳跃”。
  2. 量化跳跃概率:精确计算了每种“跳跃”方式(提议)的概率 Q(d* | dᵗ),这是正确执行 Metropolis-Hastings 算法所必需的。
  3. 实现贝叶斯推断:通过迭代地提议和接受/拒绝,MCMC 链会逐渐在后验概率高的区域“徘徊”,从而生成代表后验分布的样本。
  4. 确保结果可靠:通过多链、预烧期和收敛诊断,确保最终得到的样本是可靠的,可以用于后续的模型选择和推断。

简而言之,MCMC 部分是将前面定义的生成模型、先验和似然“付诸实践”的计算过程,它使得从海量可能的决策列表中找到最优或最可能的列表成为可能。

1决策树与决策列表密切相关,在某种意义上是等价的
2项工作与分层关联规则模型(HARM)相关,HARM是一种使用规则的贝叶斯模型[\citet{McCormick:2011ws}]。HARM以保守的方式联合估计每个规则的条件概率。每个规则充当一个独立的预测模型,因此HARM并不明确旨在学习规则的顺序。
3还有一些关于从优化角度学习决策列表的相关工作。特别是,\citet{RudinEr15}的工作使用混合整数规划从关联规则构建规则列表,该方法对解的最优性有保证。与该工作类似,\citet{GohRu14}使用优化方法完全学习稀疏的合取析取式。
4从特征开始

5IJOC
引言
分类是将对象分配到若干预定义类别之一的任务。分类树(或决策树分类器)是一种以树状结构表示的预测模型。分类树不对数据分布做出过多假设,而是将输入空间划分为直线(与轴平行)区域,并最终给出一组“如果……则……”规则来对输出进行分类或做出预测。从根节点开始,每个内部节点根据输入值拆分为两个或多个子节点。当满足某个终止条件时,拆分停止。
树的终止节点称为叶子节点,代表预测目标。案例根据其输入值沿着树的分支向下移动,到达特定叶子节点的所有案例都被分配相同的预测值。
树状结构与人类判断、计划和决策的分治策略自然相关。
因此,该技术被广泛应用于对决策者具有重大影响的决策。示例应用包括疾病诊断(Tanner 等人,2008 年;Ghiasi 等人,2020 年)、贷款审批(Mandala 等人,2012 年;Alaradi 和 Hilal,2020 年)和投资选择(Sorensen 等人,2000 年)。
本文提出了一种基于在每次节点分裂时求解混合整数规划 (MIP) 模型的分类树归纳方法。这种新方法生成的树通常优于 R(流行的统计计算系统)中其他现成的树库构建的树。为了实现这一点,所提出的 MIP 模型明确地最大化了节点杂质的减少,并允许使用多变量布尔规则对树节点进行分裂。
此类分裂规则更加灵活,在某些情况下能够更有效地表征数据中的非线性模式,同时保持高度的可解释性。为了克服计算挑战,我们开发了一种高效的隐式枚举算法,该算法可以比最先进的优化求解器更快地解决 MIP 模型。

6最优分类树 Strong Optimal Classification Trees
Optimal classification trees bertsimas

7spo决策树 Decision Trees for Decision-Making under the Predict-then-Optimize Framework

8robust 决策树 Optimal robust classification trees
9效果比决策数好就行
10快速节俭树不是最优树

http://www.dtcms.com/a/313042.html

相关文章:

  • 《C++》stack容器详解
  • 块三角掩码(Block-Triangular Masking)
  • Remix框架:高性能React全栈开发实战
  • 安卓加固脱壳
  • js--2048小游戏
  • C++23 Concepts:用类型约束重构泛型编程的终极方案
  • 构造类型--结构体,共同体联合体,枚举
  • 【AI论文】Rep-MTL:释放表征级任务显著性在多任务学习中的潜力
  • 影响人类发音的疾病类型种类和数据集
  • CMake 命令行参数完全指南(2)
  • 界面规范4-按钮
  • All the Mods 9 - To the Sky - atm9sky 局域网联机报错可能解决方法
  • spring batch处理数据模板(Reader-Processor-Writer模式)
  • 【Mysql】日志--错误日志、二进制日志、查询日志、慢查询日志
  • Timer实现定时调度的原理是什么?
  • Python开发环境PyCharm下载与安装
  • RSA 解密逻辑
  • Spring lookup-method实现原理深度解析
  • 悬挂的绳子,它的函数方程是什么样子的?
  • 嵌入式学习日志——数据结构(一)
  • RAG与智能体技术全景解析:架构革新、场景落地与未来趋势
  • 【前端:Html】--1.2.基础语法
  • Redis面试精讲 Day 10:Redis数据结构底层实现原理
  • RK3568 AB分区+OTA升级(Linux)
  • 在微信小程序中使用本地存储的方法
  • 《volatile 与 synchronized 底层实现与性能比较》
  • ubuntu syslog中appindicator报错解决
  • 深入理解C++缺省参数:从基础用法到最佳实践
  • 8-verilog-串口接收与发送模块
  • Python切片命名技术详解:提升代码可读性与维护性的专业实践