对于计算机专业的学生而言, 数学语言的运用通常有一定困难. 这是因为很多人在学习数学的时候, 只是想办法应付考试, 而没有思考内在的涵义. 特别是书上的定义, 我们看看也就过了, 而没有去想: 为什么这样定义? 换种定义方式可以吗? 实际上, 定义比定理难写, 前者要考虑前瞻性; 定理比证明难写.
针对计算机专业, 特别是机器学习方向, 比较详细的数学语言描述见 数学表达式魔训
同时, 强烈建议大家换个作者的视角, 把《离散数学》重新学一下, 抄一遍其中的定义、定理也是极好的.
一般性的准则如下:
这里用一个例子来说明如何写定义.
Definition 1 In a formal context T = ( O , A , R ) T = (O, A, R) T=(O,A,R), C 1 = ( E 1 , I 1 ) C_1 = (E_1, I_1) C1=(E1,I1) and C 2 = ( E 2 , I 2 ) C_2 = (E_2, I_2) C2=(E2,I2) are two concepts. Define C 1 ≤ C 2 ⇔ E 1 ⊆ E 2 ⇔ I 2 ⊆ I 1 C_1 \le C_2 \Leftrightarrow E_1 \subseteq E_2 \Leftrightarrow I_2 \subseteq I_1 C1≤C2⇔E1⊆E2⇔I2⊆I1, so C 2 C_2 C2 is a super-concept of C 1 C_1 C1, C 1 C_1 C1 is a sub-concept of C 2 C_2 C2, which is called partial order between concepts.
Definition 2 (sub-concept) Let C 1 = ( E 1 , I 1 ) C_1 = (\mathbf{E}_1, \mathbf{I}_1) C1=(E1,I1) and C 2 = ( E 2 , I 2 ) C_2 = (\mathbf{E}_2, \mathbf{I}_2) C2=(E2,I2) be two concepts of formal context T = ( O , A , R ) T = (\mathbf{O}, \mathbf{A}, \mathbf{R}) T=(O,A,R). C 1 C_1 C1 is called a sub-concept of C 2 C_2 C2 (denoted by C 1 ≤ C 2 ) C_1 \le C_2) C1≤C2) iff E 1 ⊆ E 2 \mathbf{E}_1 \subseteq \mathbf{E}_2 E1⊆E2.
其中, Definition 1 为学生的版本, Definition 2 则为我修改后的版本. 修改后版本有如下优点:
如果想看一堆的定义, 可参见
Frequent pattern discovery with tri-partition alphabets
A hierarchical model for test-cost-sensitive decision systems