(《机器学习》完整版系列)附录 ——6、指示函数及应用(将分段函数表达成一个式子的技术)

指示函数是将分段函数表达成一个式子的技术

指示函数及应用

集合 A A A的指示函数定义为
I ( x ∈ A ) = I A ( x ) = {   1   , 当 x ∈ A 时   0   , 当 x ∉ A 时 \begin{align} \mathbb{I} (\boldsymbol{x} \in A) & =\mathbb{I}_A (\boldsymbol{x})\notag \\ & = \begin{cases} \, 1\, ,\qquad \text{当$\boldsymbol{x} \in A$时} \\ \, 0\, ,\qquad \text{当$\boldsymbol{x} \notin A$时} \end{cases} \tag{B1} \end{align} I(xA)=IA(x)={1,xA0,x/A(B1)
显然有 I A ( x ) + I A ‾ ( x ) = 1 \mathbb{I}_A (\boldsymbol{x})+\mathbb{I}_{\overline{A}} (\boldsymbol{x})=1 IA(x)+IA(x)=1,其中, A ‾ \overline{A} A为集 A A A的补集。

我们看分段函数的指示函数表示,若
f ( x ) = {   1   , 当 x ∈ A 时   − 1   , 当 x ∉ A 时 \begin{align*} f(\boldsymbol{x})= \begin{cases} \, 1\, ,\qquad \text{当$\boldsymbol{x} \in A$时} \\ \, -1\, ,\qquad \text{当$\boldsymbol{x} \notin A$时} \end{cases} \end{align*} f(x)={1,xA1,x/A

f ( x ) = I A ( x ) − I A ‾ = I A ( x ) − ( 1 − I A ) = 2 I A ( x ) − 1 \begin{align} f(\boldsymbol{x}) & =\mathbb{I}_A (\boldsymbol{x})-\mathbb{I}_{\overline{A}} \notag \\ & =\mathbb{I}_A (\boldsymbol{x})-(1-\mathbb{I}_A) \notag \\ & =2\mathbb{I}_A (\boldsymbol{x})-1 \tag{B2} \end{align} f(x)=IA(x)IA=IA(x)(1IA)=2IA(x)1(B2)

同样地,若
f ( x ) = {   a ( x )   , 当 x ∈ A 时   b ( x )   , 当 x ∉ A 时 \begin{align} f(\boldsymbol{x})= \begin{cases} \, a(\boldsymbol{x})\, ,\qquad \text{当$\boldsymbol{x} \in A$时} \\ \, b(\boldsymbol{x})\, ,\qquad \text{当$\boldsymbol{x} \notin A$时} \end{cases} \tag{B3} \end{align} f(x)={a(x),xAb(x),x/A(B3)

f ( x ) = a ( x ) I A ( x ) + b ( x ) I A ‾ ( x ) \begin{align} f(\boldsymbol{x}) & =a(\boldsymbol{x})\mathbb{I}_A (\boldsymbol{x})+b(\boldsymbol{x})\mathbb{I}_{\overline{A}} (\boldsymbol{x}) \tag{B4} \end{align} f(x)=a(x)IA(x)+b(x)IA(x)(B4)
特别地,当 b ( x ) ≡ 0 b(\boldsymbol{x})\equiv 0 b(x)0时,有
f ( x ) = a ( x ) I A ( x ) \begin{align} f(\boldsymbol{x}) & =a(\boldsymbol{x})\mathbb{I}_A (\boldsymbol{x}) \tag{B5} \end{align} f(x)=a(x)IA(x)(B5)

式(B4)是以和来表示,同样可以用积来表示
f ( x ) = a ( x ) I A ( x ) b ( x ) I A ‾ ( x ) \begin{align} f(\boldsymbol{x}) & =a(\boldsymbol{x})^{\mathbb{I}_A (\boldsymbol{x})}b(\boldsymbol{x})^{\mathbb{I}_{\overline{A}} (\boldsymbol{x})} \tag{B6} \end{align} f(x)=a(x)IA(x)b(x)IA(x)(B6)
扩展到多段,第 i i i段的变量范围为 A i ( x ) A_i(\boldsymbol{x}) Ai(x)、函数为 a i ( x ) a_i(\boldsymbol{x}) ai(x),则
f ( x ) = ∑ i = 1 n a i ( x ) I [ A i ( x ) ] f ( x ) = ∏ i = 1 n a i ( x ) I [ A i ( x ) ] \begin{align} f(\boldsymbol{x}) & =\sum_{i=1}^na_i(\boldsymbol{x})\mathbb{I}[A_i(\boldsymbol{x})] \tag{B7} \\ f(\boldsymbol{x}) & =\mathop{\prod}\limits_{i=1}^na_i(\boldsymbol{x})^{\mathbb{I}[A_i(\boldsymbol{x})]} \tag{B8} \end{align} f(x)f(x)=i=1nai(x)I[Ai(x)]=i=1nai(x)I[Ai(x)](B7)(B8)
特别地,集合 { a i } i = 1 n \{a_i\}_{i=1}^n {ai}i=1n中任一元素 a k a_k ak可以表示为全体元素的“和”(“积”)
a k = ∑ i = 1 n a i I ( i = k ) a k = ∏ i = 1 n a i I ( i = k ) \begin{align} a_k & =\sum_{i=1}^na_i\mathbb{I}(i=k) \tag{B9} \\ a_k & =\mathop{\prod}\limits_{i=1}^n{a_i}^{\mathbb{I}(i=k)} \tag{B10} \end{align} akak=i=1naiI(i=k)=i=1naiI(i=k)(B9)(B10)
指示函数的数学期望
E x ∈ D I A ( x ) = ∫ D I A ( x ) p ( x )   d x = ∫ A I A ( x ) p ( x )   d x + ∫ D ∖ A I A ( x ) p ( x )   d x = ∫ A 1 ⋅ p ( x )   d x + ∫ D ∖ A 0 ⋅ p ( x )   d x = ∫ A p ( x )   d x = P ( x ∈ A ) \begin{align} \mathop{\mathbb{E} }\limits_{x\in D}\mathbb{I}_A (x) & =\int_D \mathbb{I}_A (x)p(x)\,\mathrm{d}x\notag \\ & =\int_A \mathbb{I}_A (x)p(x)\,\mathrm{d}x+\int_{D\setminus A} \mathbb{I}_A (x)p(x)\,\mathrm{d}x\notag \\ & =\int_A 1\cdot p(x)\,\mathrm{d}x+\int_{D\setminus A} 0\cdot p(x)\,\mathrm{d}x\notag \\ & =\int_A p(x)\,\mathrm{d}x\notag \\ & =P(x\in A) \tag{B11} \end{align} xDEIA(x)=DIA(x)p(x)dx=AIA(x)p(x)dx+DAIA(x)p(x)dx=A1p(x)dx+DA0p(x)dx=Ap(x)dx=P(xA)(B11)
由上述若干式子,即可理解【西瓜书式(8.9)】的推导过程。 如:
e − f ( x ) α t h t ( x ) = {   e − α t   , 当 f ( x ) = h t ( x ) 时   e α t   , 当 f ( x ) ≠ h t ( x ) 时 = e − α t I ( f ( x ) = h t ( x ) ) + e α t I ( f ( x ) ≠ h t ( x ) ) (由式(B4)) \begin{align*} \mathrm{e}^{-f(\boldsymbol{x}){\alpha }_th_t(\boldsymbol{x})} & = \begin{cases} \, \mathrm{e}^{-{\alpha }_t}\, ,\qquad \text{当$f(\boldsymbol{x})=h_t(\boldsymbol{x})$时}\notag \\ \, \mathrm{e}^{{\alpha }_t}\, ,\qquad \text{当$f(\boldsymbol{x})\neq h_t(\boldsymbol{x})$时}\notag \\ \end{cases} \\ & =\mathrm{e}^{-{\alpha }_t}\mathbb{I} (f(\boldsymbol{x})=h_t(\boldsymbol{x}))+\mathrm{e}^{{\alpha }_t}\mathbb{I} (f(\boldsymbol{x})\neq h_t(\boldsymbol{x}))\qquad \text{(由式(B4))} \end{align*} ef(x)αtht(x)={eαt,f(x)=ht(x)eαt,f(x)=ht(x)=eαtI(f(x)=ht(x))+eαtI(f(x)=ht(x))(由式(B4)
这即是【西瓜书式(8.9)】推导过程的第2个等号,由式(B11)即得第3个等号。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:5、含矩阵的偏导数
下一篇:7、有趣的距离与范数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
统计学习是计算机及其应用领域的一门重要的学科。本书全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。为满足读者进一步学习的需要,书中还介绍了一些相关研究,给出了少量习题,列出了主要参考文献。 《统计学习方法》是统计学习及相关课程的教学参考书,适用于高等院校文本数据挖掘、信息检索及自然语言处理等专业的大学生、研究生,也可供从事计算机应用相关专业的研发人员参考。 《统计学习方法》 第1章统计学习方法概论 1.1统计学习 1.2监督学习 1.2.1基本概念 1.2.2问题的形式化 1.3统计学习三要素 1.3.1模型 1.3.2策略 1.3.3算法 1.4模型评估与模型选择 1.4.1训练误差与测试误差 1.4.2过拟合与模型选择 1.5i~则化与交叉验证 1.5.1正则化 1.5.2交叉验证 1.6泛化能力 1.6.1泛化误差 1.6.2泛化误差上界 1.7生模型与判别模型 .1.8分类问题 1.9标注问题 1.10回归问题 本章概要 继续阅读 习题 参考文献 第2章感知机 2.1感知机模型 2.2感知机学习策略 2.2.1数据集的线性可分性 2.2.2感知机学习策略 2.3感知机学习算法 2.3.1感知机学习算法的原始形式 2.3.2算法的收敛性 2.3.3感知机学习算法的对偶形式 本章概要 继续阅读 习题 参考文献 第3章众近邻法 3.1 k近邻算法 3.2 k近邻模型 3.2.1模型 3.2.2距离度量 ·3.2.3 k值的选择 3.2.4分类决策规则 3.3k近邻法的实现:kd树 3.3.1构造af树 3.3.2搜索af树 本章概要 继续阅读 习题 参考文献 第4章朴素贝叶斯法 4.1朴素贝叶斯法的学习与分类 4.1.1基本方法 4.1.2后验概率最大化的含义 4.2朴素贝叶斯法的参数估计 4.2.1极大似然估计 4.2.2学习与分类算法 4.2.3贝叶斯估计 本章概要 继续阅读 习题 参考文献 第5章决策树 5.1决策树模型与学习 5.1.1决策树模型 5.1.2决策树与isthen规则 5.1.3决策树与条件概率分布 5.1.4决策树学习 5.2特征选择 5.2.1特征选择问题 5.2.2信息增益 5.2.3信息增益比 5.3决策树的生 5.3.11d3算法 5.3.2 c4.5的生算法 5.4决策树的剪枝 5.5cart算法 5.5.1cart生 5.5.2cart剪枝 本章概要 继续阅读 习题 参考文献 第6章逻辑斯谛回归与最大熵模型 6.1逻辑斯谛回归模型 6.1.1逻辑斯谛分布 6.1.2项逻辑斯谛回归模型 6.1.3模型参数估计 6.1.4多项逻辑斯谛回归 6.2最大熵模型 6.2.1最大熵原理 6.2.2最大熵模型的定义 6.2.3最大熵模型的学习 6.2.4极大似然估计 6.3模型学习的最优化算法 6.3.1改进的迭代尺度法 6.3.2拟牛顿法 本章概要 继续阅读 习题 参考文献 第7章支持向量机 7.1线性可分支持向量机与硬间隔最大化 7.1.1线性可分支持向量机 7.1.2函数间隔和几何间隔 7.1.3间隔最大化 7.1.4学习的对偶算法 7.2线性支持向量机与软间隔最大化 7.2.1线性支持向量机 7.2.2学习的对偶算法 7.2.3支持向量 7.2.4合页损失函数 7.3非线性支持向量机与核函数 7.3.1核技巧 7.3.2定核 7.3.3常用核函数 7.3.4非线性支持向量分类机 7.4序列最小最优化算法 7.4.1两个变量二次规划的求解方法 7.4.2变量的选择方法 7.4.3smo算法 本章概要 继续阅读 习题 参考文献 第8章提升方法 8.1提升方法adaboost算法 8.1.1提升方法的基本思路 8.1.2adaboost算法 8.1.3 adaboost的例子 8.2adaboost算法的训练误差分析 8.3 adaboost算法的解释 8.3.1前向分步算法 8.3.2前向分步算法与ad9boost 8.4提升树 8.4.1提升树模型 8.4.2提升树算法 8.4.3梯度提升 本章概要 继续阅读 习题 参考文献 第9章em算法及其推广 9.1em算法的引入 9.1.1em算法 9.1.2em算法的导出 9.1.3em算法在非监督学习中的应用 9.2em算法的收敛性 9.3em算法在高斯混合模型学习中的应用 9.3.1高斯混合模型 9.3.2高斯混合模型参数估计的em算法 9.4em算法的推广 9.4.1f函数的极大极大算法 9.4.2gem算法 本章概要 继续阅读 习题 参考文献 第10章隐马尔可夫模型 10.1隐马尔可夫模型的基本概念 10.1.1隐马尔可夫模型的定义 10.1.2观测序列的生过程 10.1.3隐马尔可夫模型的3个基本问题 10.2概率计算算法 10.2.1直接计算法 10.2.2前向算法 10.2.3后向算法 10.2.4一些概率与期望值的计算 10.3学习算法 10.3.1监督学习方法 10.3.2baum-welch算法 10.3.3baum-welch模型参数估计公式 10.4预测算法 10.4.1近似算法 10.4.2维特比算法 本章概要 继续阅读 习题 参考文献 第11章条件随机场 11.1概率无向图模型 11.1.1模型定义 11.1.2概率无向图模型的因子分解 11.2条件随机场的定义与形式 11.2.1条件随机场的定义 11.2.2条件随机场的参数化形式 11.2.3条件随机场的简化形式 11.2.4条件随机场的矩阵形式 11.3条件随机场的概率计算问题 11.3.1前向后向算法 11.3.2概率计算 11.3.3期望值的计算 11.4条件随机场的学习算法 11.4.1改进的迭代尺度法 11.4.2拟牛顿法 11.5条件随机场的预测算法 本章概要 继续阅读 习题 参考文献 第12章统计学习方法总结 附录a梯度下降法 附录b牛顿法和拟牛顿法 附录c拉格朗日对偶性
内容简介 · · · · · · JavaScript 是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。 全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多函数式JavaScript。 本书内容全面,示例丰富,适合想要了解函数式编程的JavaScript程序员和学习JavaScript的函数式程序员阅读。 作者简介 · · · · · · Michael Fogus是Dynamic Animation Systems的软件架构师,在分布式仿真、机器视觉和专家系统建设方面经验丰富。他是Clojure、ClojureScript以及Underscore-contrib的贡献者,还是《Clojure编程乐趣》的作者。 目录 · · · · · · 第1章 JavaScript函数式编程简介1 1.1 JavaScript案例1 1.2 开始函数式编程4 1.2.1 为什么函数式编程很重要4 1.2.2 以函数为抽象单元7 1.2.3 封装和隐藏9 1.2.4 以函数为行为单位10 1.2.5 数据抽象14 1.2.6 函数式JavaScript初试17 1.2.7 加速19 1.3 Underscore示例22 1.4 总结23 第2章 一等函数与Applicative编程24 2.1 函数是一等公民24 2.2 Applicative编程30 2.2.1 集合中心编程31 2.2.2 Applicative编程的其他实例32 2.2.3 定义几个Applicative函数35 2.3 数据思考36 2.4 总结43 第3章 变量的作用域和闭包44 3.1 全局作用域44 3.2 词法作用域46 3.3 动态作用域47 3.4 函数作用域51 3.5 闭包52 3.5.1 模拟闭包53 3.5.2 使用闭包57 3.5.3 闭包的抽象59 3.6 总结60 第4章 高阶函数62 4.1 以其他函数为参数的函数62 4.1.1 关于传递函数的思考:max、finder和best63 4.1.2 关于传递函数的更多思考:重复、反复和条件迭代 (iterateUntil)65 4.2 返回其他函数函数67 4.2.1 高阶函数捕获参数69 4.2.2 捕获变量的好处69 4.2.3 防止不存在的函数:fnull72 4.3 整合:对象校验器74 4.4 总结77 第5章 由函数构建函数78 5.1 函数式组合的精华78 5.2 柯里化(Currying)83 5.2.1 向右柯里化,还是向左84 5.2.2 自动柯里化参数85 5.2.3 柯里化流利的API88 5.2.4 JavaScript柯里化的缺点89 5.3 部分应用89 5.3.1 部分应用一个和两个已知的参数91 5.3.2 部分应用任意数量的参数92 5.3.3 局部应用实战:前置条件93 5.4 通过组合端至端的拼接函数96 5.5 总结98 第6章 递归100 6.1 自吸收(self—absorbed)函数(调用自己的函数)100 6.1.1 用递归遍历图105 6.1.2 深度优先自递归搜索106 6.1.3 递归和组合函数:Conjoin和Disjoin108 6.2 相互关联函数函数调用其他会再调用回它的函数)110 6.2.1 使用递归深克隆111 6.2.2 遍历嵌套数组112 6.3 太多递归了114 6.3.1 生器117 6.3.2 蹦床原理以及回调120 6.4 递归是一个底层操作121 6.5 总结122 第7章 纯度、不变性和更改政策123 7.1 纯度123 7.1.1 纯度和测试之间的关系124 7.1.2 提取纯函数125 7.1.3 测试不纯函数的属性126 7.1.4 纯度与引用透明度的关系127 7.1.5 纯度和幂等性129 7.2 不变性130 7.2.1 如果一棵树倒在树林里,有没有声音?132 7.2.2 不变性与递归133 7.2.3 冻结和克隆134 7.2.4 在函数级别上观察不变性136 7.2.5 观察对象的不变性137 7.2.6 对象往往是一个低级别的操作140 7.3 控制变化的政策141 7.4 总结144 第8章 基于流的编程145 8.1 链接145 8.1.1 惰性链148 8.1.2 Promises152 8.2 管道154 8.3 数据流与控制流158 8.3.1 找个一般的形状161 8.3.2 函数可以简化创建action164 8.4 总结166 第9章 无类编程167 9.1 数据导向167 9.2 Mixins173 9.2.1 修改核心原型175 9.2.2 类层次结构176 9.2.3 改变层级结构179 9.2.4 用Mixin扁平化层级结构180 9.2.5 通过Mixin扩展新的语义185 9.2.6 通过Mixin混合出新的类型187 9.2.7 方法是低级别操作188 9.3.call(“Finis”);190 附录A 更多函数式JavaScript191 A.1 JavaScript的函数式库191 A.1.1 函数式JavaScript191 A.1.2 Underscore—contrib192 A.1.3 RxJS192 A.1.4 Bilby194 A.1.5 allong.es195 A.1.6 其他函数式库196 A.2 能编译JavaScript的函数式语言196 A.2.1 ClojureScript196 A.2.2 CoffeeScript197 A.2.3 Roy198 A.2.4 Elm198 附录B推荐书目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值