1. 集合

  话不多说,先甩一张图。

python 7个集合的韦恩图_机器学习


1.1 集合定义

  由上图可知,集合通常有三种表示方法。

  • 列举法:无疑是最没有技术含量的,一股脑把集合中的元素全部写出来。如:python 7个集合的韦恩图_词法_02 = {0, 1, 2, 3, 4, 5} 是阿拉伯数字的集合;python 7个集合的韦恩图_词法_03
  • 描述法:有些地方叫谓词法。如:python 7个集合的韦恩图_词法_02 = {python 7个集合的韦恩图_机器学习_05python 7个集合的韦恩图_词法_03 | python 7个集合的韦恩图_机器学习_05
  • 韦恩图:通常用一个圆来代表一个集合;

python 7个集合的韦恩图_机器学习_08 = {0, 1, {0, 1} , {1, 2}} 有几个元素? 机器学习中, 这类形式的集合有什么优点和缺点?

  1. python 7个集合的韦恩图_词法_09 表示有限集 python 7个集合的韦恩图_词法_10 中的元素个数,python 7个集合的韦恩图_词法_09(python 7个集合的韦恩图_词法_10) = 4。
  2. 在机器学习中,我们通常会用自然数表示分类任务中的标签。例如,0 通常表示第一类,1 表示第二类,依次类推。集合 python 7个集合的韦恩图_词法_10 通常会被用在多标签分类任务中。一个实例可能有一个或多个标签,类似于选择题中的不定项选择题。对于集合 python 7个集合的韦恩图_词法_10,我们可以认为它的标签数目不是固定的,有的一个标签,有的有两个标签,但是标签的总数是固定的,有 3 类。我们在标签编码时,可以使用标签补齐的方法,将缺失的标签全部用 0 标记,这样就不能使用 one-hot 编码了。例如,标签总数为 10,编号 0-9,一张图片中包含 0,3,9 号标签,那么这张图片的标签编码为:1 0 0 1 0 0 0 0 0 1。而且在多标签分类任务中,最后一层的输出就不能看成一个分布了,因为加起来不为 1,可以把输出层每个神经元看作一个二项分布,这相当于将一个多标签问题转化为在每个标签上的二分类问题。

python 7个集合的韦恩图_机器学习_15,写出 python 7个集合的韦恩图_词法_16 的其它两种表示方法。
① 描述法:python 7个集合的韦恩图_Nu_17, 源码为 \mathbf{A} = {x \vert x \in \mathbf{N}, 4 < x < 10}。
② 枚举法:python 7个集合的韦恩图_词法_18,源码为 [5…9] = {5,6,7,8,9}.


1.2 基数

1.2.1 无穷集合比较大小

  说到基数,先提一下无穷集合比较大小。

  首先提出一个问题 “自然数的个数和正偶数的个数哪个多呢?” 有人说,当然是自然数的个数多,因为自然数包括正偶数;也有人说这两类数的个数都是无穷大,所以应该是一样多。

  这里面引出来一个很本质的问题,到底比较两个集合元素个数多少的标准是什么?虽然我们还是孩子的时候,就知道自己分了一个苹果而其他小朋友分到了两个苹果是不公平的,但是直到19世纪末,才由伟大的集合论开创者康托尔提出集合元素个数之间严格比较大小的标准。

  我们平时一般靠数数来记录一个集合元素的个数,再比较这两个数字大小来确定两个集合之间谁的元素更多,实际上这是在拿一个集合的元素去与自然数集合的元素做对应。如果某个集合中的元素能够与从小到大排列的自然数某个子集建立一一对应,那么就认为这个集合中元素的个数就是自然数子集中最大的那个数。

  再提出一个问题?下面的两条线段哪一条中包含的点更多?

          

python 7个集合的韦恩图_机器学习_19


  我第一次看到这个问题就觉得肯定有鬼。肯定不是下面这条长,应该是一样长,但是又不知道为什么它们一样长。我的导师直接画了两条线,我就恍然大悟了。

          

python 7个集合的韦恩图_python 7个集合的韦恩图_20


  下面那条线中的任一点总能在上面那一条线找到一一对应的点。这就是康托尔提出集合之间元素个数多少的判定标准,集合之间元素个数多少的比较,本质上在于集合间的对应(映射)。

  如果两个集合 A 和 B 之间能够建立一一对应(集合论中将这种对应叫做双射),那么就说这两个集合的元素个数一样多,记作 python 7个集合的韦恩图_词法_21 = python 7个集合的韦恩图_Nu_22;如果能够建立 A 到 B 的单射(指每个 A 中的元素都对应一个 B 中的元素,且不同的 A 中元素对应的B中元素也不同),那么就说集合 B 的元素个数不少于 A 的元素个数,记作 python 7个集合的韦恩图_Nu_23 python 7个集合的韦恩图_Nu_22python 7个集合的韦恩图_python 7个集合的韦恩图_25 python 7个集合的韦恩图_词法_21

  对于元素个数有限的有限集来说,这种判定标准与日常人们熟悉的“数数”判定标准是一样的。一个有着100个元素的集合肯定能够与另外一个也有着100个元素的集合建立一一对应,但是绝不能与一个有着101个元素的集合建立起一一对应。

python 7个集合的韦恩图_Nu_27 = {1, 2, 3, …} 是自然数集合,python 7个集合的韦恩图_机器学习_28 = {2, 4, 6,…} 是正偶数集合,python 7个集合的韦恩图_词法_29 python 7个集合的韦恩图_Nu_27python 7个集合的韦恩图_词法_31 python 7个集合的韦恩图_机器学习_28,则建立集合 python 7个集合的韦恩图_Nu_27python 7个集合的韦恩图_机器学习_28 之间的映射 python 7个集合的韦恩图_机器学习_35python 7个集合的韦恩图_Nu_27 python 7个集合的韦恩图_词法_37 python 7个集合的韦恩图_机器学习_28python 7个集合的韦恩图_Nu_39。由此我们知道了,自然数的个数与正偶数的个数是一样多的


1.2.2 基数

  有了前面关于集合元素个数比较大小的标准,我们就可以定义一个概念 —— 集合的基数。作为普及性文章,我们没有必要给出严格的基数定义,描述性的来说,

基数就是一个集合元素的个数(集合的基数有时也被叫做集合的势)。

  显然,对于有限集合来说,其基数就是这个集合的元素的个数,必然是一个自然数。但是对于无限集合来说,由于其元素个数无穷多,没有一个自然数能够表示,我们需要定义一些新的 “数”。我们首先定义自然数的个数是 ℵ₀ (这个符号来自于希伯来字母,可以读作阿列夫,自然数的个数就是阿列夫零)。显然,我们知道有理数、整数、奇数、偶数、代数数的个数都是 ℵ₀ 。

  那么问题来了,∅ 的基数是多少? { ∅ } 呢?

python 7个集合的韦恩图_词法_40 = 0; python 7个集合的韦恩图_python 7个集合的韦恩图_41( {∅} ) = 1


1.3 笛卡尔积

python 7个集合的韦恩图_机器学习_42,二维平面可表示为 python 7个集合的韦恩图_机器学习_42 python 7个集合的韦恩图_词法_44 python 7个集合的韦恩图_机器学习_42 = python 7个集合的韦恩图_Nu_46python 7个集合的韦恩图_词法_47 维空间当然就是 python 7个集合的韦恩图_python 7个集合的韦恩图_48

一维数轴上的点就是一个实数 python 7个集合的韦恩图_机器学习_05python 7个集合的韦恩图_词法_50
二维数轴上的点就是一个实数对 python 7个集合的韦恩图_机器学习_51python 7个集合的韦恩图_python 7个集合的韦恩图_52
一维数轴上的点就是一个向量(python 7个集合的韦恩图_词法_53python 7个集合的韦恩图_Nu_54

python 7个集合的韦恩图_机器学习_08python 7个集合的韦恩图_python 7个集合的韦恩图_56 是两个集合,称集合 python 7个集合的韦恩图_机器学习_08 python 7个集合的韦恩图_词法_44 python 7个集合的韦恩图_python 7个集合的韦恩图_56 = {<python 7个集合的韦恩图_Nu_60> | (python 7个集合的韦恩图_Nu_61 python 7个集合的韦恩图_机器学习_08) python 7个集合的韦恩图_python 7个集合的韦恩图_63 (python 7个集合的韦恩图_python 7个集合的韦恩图_64 python 7个集合的韦恩图_python 7个集合的韦恩图_56) } 为集合 python 7个集合的韦恩图_机器学习_08python 7个集合的韦恩图_python 7个集合的韦恩图_56笛卡尔积

由笛卡尔积定义可以看出:

  1. python 7个集合的韦恩图_词法_10, python 7个集合的韦恩图_词法_69 是任意两个集合,则不一定有 python 7个集合的韦恩图_词法_10 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_词法_69 = python 7个集合的韦恩图_词法_69 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_词法_10,即笛卡尔积不满足交换律;
  2. python 7个集合的韦恩图_词法_10 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_词法_69 = ∅ 当且仅当 python 7个集合的韦恩图_词法_10 = ∅ 或者 python 7个集合的韦恩图_词法_69
  3. python 7个集合的韦恩图_词法_10, python 7个集合的韦恩图_词法_69, python 7个集合的韦恩图_机器学习_83 是任意三个集合,则不一定有 python 7个集合的韦恩图_词法_10 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_python 7个集合的韦恩图_86 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_机器学习_88 = (python 7个集合的韦恩图_词法_10 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_词法_69) python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_机器学习_83,即笛卡尔积不满足结合律;
  4. 当集合 python 7个集合的韦恩图_词法_10, python 7个集合的韦恩图_词法_69 都是有限集时,python 7个集合的韦恩图_机器学习_96 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_词法_98 = python 7个集合的韦恩图_机器学习_99 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_机器学习_101 = python 7个集合的韦恩图_机器学习_102 python 7个集合的韦恩图_Nu_71 python 7个集合的韦恩图_python 7个集合的韦恩图_104;
  5. 笛卡尔积对并运算和交运算满足分配律。

  上述 4 在机器学习中最为常见,可以完美地表示混合类型的数据。任何实例都可以使用这种元素描述,但反过来,并非所有的元素都对应于数据集中的一个实例,即数据不会填满整个空间, 甚至通常在这个空间内是非常稀疏的。找出数据在空间中的分布规律,这也是数据挖掘的基本意义。

  说到数据集,这里介绍两种表示方法。

  1. 矩阵表示法
    当各个属性都为实型值时,数据集可表示为 python 7个集合的韦恩图_机器学习_105python 7个集合的韦恩图_机器学习_106 ,它表示每个实际的数据集,都是 python 7个集合的韦恩图_Nu_107 维空间的一个点而已。如果记 python 7个集合的韦恩图_Nu_108,则 python 7个集合的韦恩图_词法_109python 7个集合的韦恩图_Nu_110;
  2. 集合与向量混合法python 7个集合的韦恩图_机器学习_105 = {python 7个集合的韦恩图_词法_112},则 python 7个集合的韦恩图_词法_109python 7个集合的韦恩图_Nu_110;

优缺点

  1. 集合与向量混合法中,元素可以随意交换顺序,这与现实数据的独立性一致。
  2. 集合与向量混合法中,不允许两个元素相同,这与现实情况不一致。
  3. 矩阵表示法可以支持矩阵的相乘,,易于表示加权等操作,,用于神经网络, 线性回归时方便。

注意:在机器学习中,经常用一个列向量表示一个实例。


1.4 幂集

python 7个集合的韦恩图_机器学习_08 为任意集合,以 python 7个集合的韦恩图_机器学习_08 的子集为元素所组成的集合,称为 python 7个集合的韦恩图_机器学习_08

python 7个集合的韦恩图_词法_118 {python 7个集合的韦恩图_词法_119 python 7个集合的韦恩图_Nu_120}; 若 python 7个集合的韦恩图_词法_21 = python 7个集合的韦恩图_Nu_122,则 python 7个集合的韦恩图_词法_123 python 7个集合的韦恩图_python 7个集合的韦恩图_124

举例:
python 7个集合的韦恩图_python 7个集合的韦恩图_125 = {python 7个集合的韦恩图_词法_126}
python 7个集合的韦恩图_python 7个集合的韦恩图_127({python 7个集合的韦恩图_词法_126}) = {python 7个集合的韦恩图_词法_126, {python 7个集合的韦恩图_词法_126}}
python 7个集合的韦恩图_python 7个集合的韦恩图_127({1, {2, 3}}) = {python 7个集合的韦恩图_词法_126, {1}, {2,3}, {1, {2, 3}}}
④ 令 python 7个集合的韦恩图_词法_133, python 7个集合的韦恩图_词法_134 = {python 7个集合的韦恩图_词法_126, {3}, {5}, {3,5}}

  幂集不仅限于有穷集,对于任意无穷集也有效。


2. 二元关系

python 7个集合的韦恩图_词法_16 and python 7个集合的韦恩图_Nu_137 be sets. Any python 7个集合的韦恩图_机器学习_138 python 7个集合的韦恩图_Nu_139

  其实不用想得太复杂,关系就是关系。比如,1 < 2 是二元关系,我爱学习也是二元关系。我认为如果两个东西之间有联系,并且说明了联系的方式,那就可以称之为关系。

  另外,两个集合的笛卡尔积是遍历了所有的 “对”,之所以是子集是因为上述 “联系的描述” 可能对某些对有效,对某些对无效。

python 7个集合的韦恩图_Nu_140);小于关系就是这条线的左上部分 (python 7个集合的韦恩图_Nu_141);同理,大于关系就是这条线的右下部分 (python 7个集合的韦恩图_机器学习_142)。如果 python 7个集合的韦恩图_词法_16 = python 7个集合的韦恩图_Nu_137 = python 7个集合的韦恩图_Nu_145,即它们都为整数集合,则 python 7个集合的韦恩图_机器学习_146 = {(0, 0), (1, 1), (2, 2), python 7个集合的韦恩图_python 7个集合的韦恩图_147};如果 python 7个集合的韦恩图_词法_16 = python 7个集合的韦恩图_Nu_137 = python 7个集合的韦恩图_词法_150,则 python 7个集合的韦恩图_机器学习_151 = {python 7个集合的韦恩图_机器学习_152},在二维平面上,它表示 python 7个集合的韦恩图_python 7个集合的韦恩图_153

二元关系的性质。对于 python 7个集合的韦恩图_词法_16 的关系,即 python 7个集合的韦恩图_词法_155.
①自反性:如果 python 7个集合的韦恩图_机器学习_156,均有 python 7个集合的韦恩图_词法_157,则称 python 7个集合的韦恩图_python 7个集合的韦恩图_158 具有自反性。
② 对称性:如果 python 7个集合的韦恩图_Nu_159,均有 python 7个集合的韦恩图_Nu_160,则称 python 7个集合的韦恩图_python 7个集合的韦恩图_158 具有对称性。
③ 传递性:如果 python 7个集合的韦恩图_Nu_162,均有 python 7个集合的韦恩图_机器学习_163,则称 python 7个集合的韦恩图_python 7个集合的韦恩图_158

二元关系的运算
给定 python 7个集合的韦恩图_Nu_165 上的关系 python 7个集合的韦恩图_Nu_166python 7个集合的韦恩图_Nu_167,则 python 7个集合的韦恩图_机器学习_168 = {python 7个集合的韦恩图_词法_169},这个有点像矩阵维度相乘(3x2 的矩阵与 2x4 的矩阵得 3x4 的矩阵),中间得有个媒介。
或者 python 7个集合的韦恩图_机器学习_168 = {python 7个集合的韦恩图_机器学习_171}.

给定 python 7个集合的韦恩图_Nu_165 上的关系 python 7个集合的韦恩图_python 7个集合的韦恩图_158
① 正闭包:python 7个集合的韦恩图_Nu_174.
② 克林闭包:python 7个集合的韦恩图_机器学习_175,其中 python 7个集合的韦恩图_词法_176

练一练:

  1. python 7个集合的韦恩图_python 7个集合的韦恩图_177,写出 python 7个集合的韦恩图_python 7个集合的韦恩图_178

python 7个集合的韦恩图_python 7个集合的韦恩图_179.
可将其划分为:
python 7个集合的韦恩图_Nu_180

  1. 给定 python 7个集合的韦恩图_python 7个集合的韦恩图_177 上的关系 python 7个集合的韦恩图_机器学习_182python 7个集合的韦恩图_词法_183,则

python 7个集合的韦恩图_机器学习_184 = python 7个集合的韦恩图_python 7个集合的韦恩图_185.
python 7个集合的韦恩图_Nu_186 = python 7个集合的韦恩图_机器学习_187 = python 7个集合的韦恩图_词法_188.
python 7个集合的韦恩图_Nu_189 = python 7个集合的韦恩图_python 7个集合的韦恩图_190 = python 7个集合的韦恩图_词法_191.


3. 函数

  函数也叫映射、变换或对应。但是我们需要区别函数与方程的区别以及与关系的区别。

python 7个集合的韦恩图_机器学习_35 是集合 python 7个集合的韦恩图_机器学习_08python 7个集合的韦恩图_python 7个集合的韦恩图_56 的关系,如果对每个 python 7个集合的韦恩图_机器学习_195,都存在唯一的 python 7个集合的韦恩图_词法_196,使得 <python 7个集合的韦恩图_Nu_60> ∈ python 7个集合的韦恩图_机器学习_35,则称关系 python 7个集合的韦恩图_机器学习_35python 7个集合的韦恩图_机器学习_08python 7个集合的韦恩图_python 7个集合的韦恩图_56 的函数,记作 python 7个集合的韦恩图_机器学习_35: python 7个集合的韦恩图_python 7个集合的韦恩图_203python 7个集合的韦恩图_机器学习_08 为函数 python 7个集合的韦恩图_机器学习_35 的定义域,python 7个集合的韦恩图_机器学习_206 为函数 python 7个集合的韦恩图_机器学习_35

注意

  1. python 7个集合的韦恩图_python 7个集合的韦恩图_208 表示一个变值,python 7个集合的韦恩图_Nu_209 代表一个集合。因此 python 7个集合的韦恩图_Nu_210
  2. python 7个集合的韦恩图_python 7个集合的韦恩图_208python 7个集合的韦恩图_机器学习_212 的子集,即 python 7个集合的韦恩图_机器学习_212 中有些元素跟 python 7个集合的韦恩图_词法_02
  3. 如果存在元素 python 7个集合的韦恩图_python 7个集合的韦恩图_215,在 python 7个集合的韦恩图_机器学习_212 中没有对应元素,那么关系 python 7个集合的韦恩图_Nu_209
  4. 如果存在元素 python 7个集合的韦恩图_python 7个集合的韦恩图_215,在 python 7个集合的韦恩图_机器学习_212 中有两个或两个以上对应的元素,那么关系 python 7个集合的韦恩图_Nu_209

辨别函数与方程:从本质上,方程就是一个等式,而函数是一个对应关系。

辨别函数与关系的联系与区别

  1. 在离散数学中,函数可以看作是一种特殊的二元关系
  2. python 7个集合的韦恩图_词法_10python 7个集合的韦恩图_词法_69 的不同的关系有 2|python 7个集合的韦恩图_词法_10||python 7个集合的韦恩图_词法_69|个,但从 python 7个集合的韦恩图_词法_10python 7个集合的韦恩图_词法_69 不同的函数却只有 |python 7个集合的韦恩图_词法_10||python 7个集合的韦恩图_词法_69| 个。(每个 python 7个集合的韦恩图_词法_69 中的元素都可以有 python 7个集合的韦恩图_机器学习_102python 7个集合的韦恩图_词法_10
  3. 关系的第一个元素可以相同;函数的第一个元素一定是互不相同的。

python 7个集合的韦恩图_Nu_232, 值域为 python 7个集合的韦恩图_词法_233,可以认为函数 python 7个集合的韦恩图_Nu_234 的子集,也就是一种特殊的关系。如 python 7个集合的韦恩图_python 7个集合的韦恩图_235,它是二维平面 python 7个集合的韦恩图_Nu_46 中的一个单位圆,为若干平面中的元素 (点) 所构成, 因此为 python 7个集合的韦恩图_机器学习_42 上(即定义域、值域均为 python 7个集合的韦恩图_机器学习_42)的二元关系。但它不是一个函数。python 7个集合的韦恩图_机器学习_239

python 7个集合的韦恩图_Nu_240

举例说明你对函数的认识。.
  我们先从理解最简单地例子开始: python 7个集合的韦恩图_Nu_241 给定一个 python 7个集合的韦恩图_Nu_240 的值,那么右边的式子的值为 2,那么 python 7个集合的韦恩图_机器学习_243 就是2。python 7个集合的韦恩图_机器学习_35 就是连接1 和 2 的一个函数。python 7个集合的韦恩图_机器学习_35

python 7个集合的韦恩图_机器学习_243 = “智商的大小”,x表示人。那么 python 7个集合的韦恩图_机器学习_35 就相当于给出对应每个人,即 python 7个集合的韦恩图_Nu_240

python 7个集合的韦恩图_词法_16,对 python 7个集合的韦恩图_词法_16 施加对应法则 python 7个集合的韦恩图_机器学习_35,记作 python 7个集合的韦恩图_词法_252,得到另一数集 python 7个集合的韦恩图_Nu_137,也就是 python 7个集合的韦恩图_python 7个集合的韦恩图_254.那么这个关系式就叫函数关系式,简称函数。

  下图能在你理解了函数基础上更加强你的理解。

                

python 7个集合的韦恩图_词法_255


4. 元组(tuple)

  百度百科中提到。元组是关系库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。在二维表中,元组也称为行或记录。

  但是离散数学中的元组又与之不同,图(Graph)是最经典的元组,图可分为有向图和无向图。图的数学定义如下:

(1)A directed graph is a tuple python 7个集合的韦恩图_Nu_256, where python 7个集合的韦恩图_python 7个集合的韦恩图_257 = {python 7个集合的韦恩图_词法_258} is the set of nodes, and python 7个集合的韦恩图_词法_259 is the set of edges.
(2)A undirected graph is a tuple python 7个集合的韦恩图_机器学习_260, where python 7个集合的韦恩图_python 7个集合的韦恩图_257 = {python 7个集合的韦恩图_词法_258} is the set of nodes, and python 7个集合的韦恩图_词法_259 is the set of edges, and $\langle v_i, v_j \rangle ∈ \bm{E} iff python 7个集合的韦恩图_词法_264.
iff 是 if and only if (当且仅当) 的缩写, 更多细节参考 mf 的博客

  图又可以根据是否有权值分为带权有向图和带权无向图。其数学定义如下:

(1)A weighted directed graph is a tuple python 7个集合的韦恩图_python 7个集合的韦恩图_265, where python 7个集合的韦恩图_python 7个集合的韦恩图_257 = {python 7个集合的韦恩图_词法_258} is the set of nodes, and python 7个集合的韦恩图_python 7个集合的韦恩图_268 {python 7个集合的韦恩图_python 7个集合的韦恩图_269} is the edge weight function.
(2)A weighted undirected graph is a tuple python 7个集合的韦恩图_python 7个集合的韦恩图_270, where python 7个集合的韦恩图_python 7个集合的韦恩图_257 = {python 7个集合的韦恩图_词法_258} is the set of nodes, and python 7个集合的韦恩图_python 7个集合的韦恩图_268 {python 7个集合的韦恩图_python 7个集合的韦恩图_269} is the edge weight function, and python 7个集合的韦恩图_词法_275 = python 7个集合的韦恩图_机器学习_276.

  元组的数学定义请参考 mf 的博客 的 Definition 6.

  以 Python 为例。元组也是一种序列,元组使用小括号表示,元素中各元素之间用逗号隔开。元组不支持修改或删除其所包含的元素。这也是与列表最本质的区别,列表是动态数组,如果想要修改元组中的元素,可先将其转换成列表。

  C++中也引入了元组 tuple, 可以定义任意多个类型的对象的组合,下面是 C++ tuple 的栗子。

#include <iostream>  
#include <vector>  
#include <string>  
#include <tuple>  
  
using namespace std;  
  
std::tuple<std::string, int>  
giveName(void)  
{  
    std::string cw("Caroline");  
    int a(2013);  
    std::tuple<std::string, int> t = std::make_tuple(cw, a);  
    return t;  
}  
  
int main()  
{  
    std::tuple<int, double, std::string> t(64, 128.0, "Caroline");  
    std::tuple<std::string, std::string, int> t2 =  
            std::make_tuple("Caroline", "Wendy", 1992);  
  
    //返回元素个数  
    size_t num = std::tuple_size<decltype(t)>::value;  
    std::cout << "num = " << num << std::endl;  
  
    //获取第1个值的元素类型  
    std::tuple_element<1, decltype(t)>::type cnt = std::get<1>(t);  
    std::cout << "cnt = " << cnt << std::endl;  
  
    //比较  
    std::tuple<int, int> ti(24, 48);  
    std::tuple<double, double> td(28.0, 56.0);  
    bool b = (ti < td);  
    std::cout << "b = " << b << std::endl;  
  
    //tuple作为返回值  
    auto a = giveName();  
    std::cout << "name: " << get<0>(a)  
            << " years: " << get<1>(a) << std::endl;  
  
    return 0;  
}

输出结果:

num = 3  
cnt = 128  
b = 1  
name: Caroline years: 2013

5. 范数

给定矩阵 python 7个集合的韦恩图_词法_277,其 python 7个集合的韦恩图_词法_278

python 7个集合的韦恩图_python 7个集合的韦恩图_279

源码:|\mathbf{X}|p = \left (\sum{ij} \vert x_{ij} \vert ^p \right)^{\frac{1}{p} \tag{1}}

5.1 python 7个集合的韦恩图_python 7个集合的韦恩图_280

计算非零项个数。

python 7个集合的韦恩图_python 7个集合的韦恩图_280

5.2 python 7个集合的韦恩图_Nu_282

计算绝对值之和。

python 7个集合的韦恩图_Nu_282

5.3 python 7个集合的韦恩图_Nu_284

计算平方和。

python 7个集合的韦恩图_Nu_282

5.4 python 7个集合的韦恩图_词法_286

python 7个集合的韦恩图_python 7个集合的韦恩图_287

python 7个集合的韦恩图_python 7个集合的韦恩图_288


源码:||\mathbf{X}||{\infty} = \max{i, j} \vert x_{ij} \vert \tag{6}.

题目:假设矩阵 python 7个集合的韦恩图_词法_16,计算各个范数。

python 7个集合的韦恩图_词法_290

python 7个集合的韦恩图_python 7个集合的韦恩图_280 = 5;
python 7个集合的韦恩图_Nu_282 = 1 + 2 + 3 + 1 + 3 = 13;
python 7个集合的韦恩图_词法_293;
python 7个集合的韦恩图_词法_286 = 3;
python 7个集合的韦恩图_python 7个集合的韦恩图_295


6. min 与 argmin

  min 即获得集合中的最小值,argmin 即获取函数取最小值时的参数

python 7个集合的韦恩图_python 7个集合的韦恩图_158,用户信息表 python 7个集合的韦恩图_词法_297,商品信息表 python 7个集合的韦恩图_python 7个集合的韦恩图_298,其中 python 7个集合的韦恩图_词法_299 是用户的属性数,python 7个集合的韦恩图_词法_300 是商品属性数。输出函数 python 7个集合的韦恩图_Nu_301
有以下优化目标:
python 7个集合的韦恩图_python 7个集合的韦恩图_302

python 7个集合的韦恩图_词法_303,条件属性个数为 python 7个集合的韦恩图_机器学习_304,该优化函数使用 python 7个集合的韦恩图_Nu_284 范数,python 7个集合的韦恩图_词法_306 为真实的评分,python 7个集合的韦恩图_python 7个集合的韦恩图_307