超级基础
介绍
“基础不牢,地动山摇”,新的征程开始前,先把基础打牢。基础梳理系列将从离散数学、python、算法原理等方面并行展开。希望,能够坚持下去,把这份学习记录做好。
系列文章目录
离散数学
第一章:基础梳理-机器学习的数学基础-01集合、关系、元组
python基础
第一章: 基础梳理-python基础-基础知识
第二章: 基础梳理-python基础-列表和元组
第三章: 基础梳理-python基础-使用字符串
第四章: 基础梳理-python基础-字典
第五章: 基础梳理-python基础-抽象1
第六章: 基础梳理-python基础-抽象2
1 习题练习
1.1 习题1
(1){0,1,{0,1},{1,2}} 有几个元素? (2)机器学习中, 这类形式的集合有什么优点和缺点?
答:
4
要点:
- 集合和元素的概念是相对的;
- 注意区分元素个数(基数)与子集。
答:列举法的优点:明确、直观;缺点:判断一个对象是否为指定集合的元素需一一对比,且部分集合用列举法表示不易读写(如集合:O={x∣x∈N,(x+5) mod 3 = 1} ) 列举法确定的元素,其范围与语义无关只与元素本身有关。机器学习中的优点:数据集中可以包括不同维度的样本;机器学习中的缺点:不同维度的样本,处理方法上会有所不同。
1.2 习题2
答:
0,1
要点:
空集也可作为集合的元素。
1.3 习题5
答:
算。在多标签学习中,数据集的d维输入空间为其定义域,多标签的标签空间为其值域,多标签学习的学习器是对应了关于数据的某种潜在规律的,即映射关系是一定的,是符合函数性质“函数定义域上的每个点, 均在值域中有一个唯一的点与之对之”的。
参考资料:
https://www.cnblogs.com/liaohuiqiang/p/9339996.html
论文笔记:多标签学习综述(A review on multi-label learning algorithms)
相关定义
学习任务
周志华-《机器学习》
学得模型对应了关于数据的某种潜在的规律,因此亦称"假设" (hypothesis);
有时将模型称为"学习器" ,可看作学习算法在给定数据和参数空间上的实例化.
1.4 习题6
答:可,我们通过描述属性(特征)和行为来描述一个对象,元组可完整表达对象。
Puppy myPuppy=(“tommy”,Puppy(“tommy”),代码如下:
public class Puppy{
public Puppy(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String[] args){
// 下面的语句将创建一个Puppy对象
Puppy myPuppy = new Puppy( "tommy" );
}
}
参考文献:
java中对象的定义
对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
1.5 习题7???
习题 7: 定义二叉树.
分析:
- 二叉树,每个节点至多两棵子树,有左右子树之分:Σ={l,r}词汇表表示;
- 从root到任一node经过若干次Σ状态选择都可到达,即经过 字符串str ∈ \in ∈Σ+ (不能包括r → \rightarrow →r,没有环 ),符合跳转:c:v×Σ+
- 原本考虑强调(l,r)不可逆,以及每个节点最多只有(l,r)两种状态(详见子函数见a),又考虑到在b)中已有函数从根到任一节点有且只有唯一路径
答:
Definition1
Σ
\Sigma
Σ={l,r},
ϕ
\phi
ϕ is null node, A binary tree is a triple
T
=
(
V
,
r
,
c
)
T = (\mathbf{V}, r, c)
T=(V,r,c), where
V
=
{
v
1
,
…
,
v
n
}
\mathbf{V} = \{ v_1 , … , v_n \}
V={v1,…,vn} is the set of nodes,
r
∈
V
r \in \mathbf{V}
r∈V is the root, and c :
(
V
∪
{
ϕ
}
)
(\mathbf{V} \cup \{\phi\})
(V∪{ϕ}) × Σ +
↦
V
∪
{
ϕ
}
\mapsto \mathbf{V} \cup \{\phi\}
↦V∪{ϕ}
a)
∀
v
∈
V
\forall v \in \mathbf{V}
∀v∈V,
∄
s
∈
Σ
\nexists s \in \Sigma
∄s∈Σ,
c
(
v
,
s
)
=
v
c(v ,s) = v
c(v,s)=v,
b)
∀
v
∈
V
∖
{
r
}
\forall v \in \mathbf{V} \setminus \{r\}
∀v∈V∖{r},
∃
1
s
∈
\exists 1s \in
∃1s∈ Σ+ , st.
c
(
r
,
s
)
=
v
c( r,s ) = v
c(r,s)=v
c)
∀
v
∈
V
∖
{
r
}
\forall v \in\mathbf{V} \setminus \{r\}
∀v∈V∖{r},both l and r is state ,st. c(v,l)
≠
\neq
=c(v,r)
修正:
Definition2
Σ
\Sigma
Σ={l,r},
ϕ
\phi
ϕ is null node, A binary tree is a triple
T
=
(
V
,
r
,
c
)
T = (\mathbf{V}, r, c)
T=(V,r,c), where
V
=
{
v
1
,
…
,
v
n
}
\mathbf{V} = \{ v_1 , … , v_n \}
V={v1,…,vn} is the set of nodes,
r
∈
V
r \in \mathbf{V}
r∈V is the root, and c :
(
V
∪
{
ϕ
}
)
(\mathbf{V} \cup \{\phi\})
(V∪{ϕ}) × Σ *
↦
V
∪
{
ϕ
}
\mapsto \mathbf{V} \cup \{\phi\}
↦V∪{ϕ}
a)
∀
v
∈
V
\forall v \in \mathbf{V}
∀v∈V,
∃
1
s
∈
\exists 1s \in
∃1s∈ Σ* , st.
c
(
r
,
s
)
=
v
c( r,s ) = v
c(r,s)=v
说明:
- Definition1中a)b)c)可由Definition2a)推出
- Σ + \Sigma^+ Σ+变为 Σ ∗ \Sigma^* Σ∗可以体现节点不跳转。
- 如何推出:
- Definition2易得c(v,)=v改路径可到达自己,且a)成立只存在1条路径 ,即不存在不动外任何方法到达自己,即Definition1 a)
- Definition2包含Definition1 b)
- 由Definition2 两节点间只有一条路径,故**Definition2 c)**成立
1.6 习题8
题目:定义带权无向图.
Definition A weighted undirected graph is a tuple
G
w
=
(
V
,
w
)
G_w =(V,w)
Gw=(V,w), where
V
=
v
1
,
…
,
v
n
V = { v_1 , … ,v_n }
V=v1,…,vn is the set of nodes, and w :
V
×
V
→
R
+
∪
{
0
}
V × V → R ^+ ∪ \{ 0 \}
V×V→R+∪{0} is the edge weight function, and
⟨
v
i
,
v
j
⟩
\lang v_i , v_j \rang
⟨vi,vj⟩ ∈ E iff
⟨
v
j
,
v
i
⟩
∈
w
\lang v_j , v_ i \rang \in w
⟨vj,vi⟩∈w
1.8 习题9
分析:之前已经提到
ϕ
\phi
ϕ be a null node即树上的空节点,
ϕ
\phi
ϕ对节点集合
V
,
根
r
\mathbf V, 根r
V,根r这些量无影响,需要强调的是:p父函数(节点与节点间的关系)
答:Definition A tree is a triple
T
=
(
V
,
r
,
p
)
T = (\mathbf{V}, r, p)
T=(V,r,p), where
V
=
{
v
1
,
…
,
v
n
}
\mathbf{V} = \{ v_1 , … , v_n \}
V={v1,…,vn} is the set of nodes,
r
∈
V
r \in \mathbf{V}
r∈V is the root, and p : (
V
∪
{
ϕ
}
)
↦
(
V
∪
{
ϕ
}
)
\mathbf{V} ∪\{\phi\}) \mapsto (\mathbf{V} ∪\{\phi\})
V∪{ϕ})↦(V∪{ϕ})
a)
∀
v
∈
V
\forall v \in \mathbf{V}
∀v∈V,
∀
k
≥
1
\forall k \geq 1
∀k≥1,
p
k
(
v
)
≠
p^k ( v ) \neq
pk(v)= v,
b)
∀
v
∖
{
r
}
∈
V
\forall v \setminus \{r\} \in \mathbf{V}
∀v∖{r}∈V,
∃
\exists
∃
1
k
≥
1
1 k \geq 1
1k≥1, st.
p
k
(
v
)
=
r
{p^k }( v ) = r
pk(v)=r
c)
∀
v
∖
{
r
}
∈
V
,
p
(
v
)
≠
ϕ
\forall v\setminus \{r\} \in \mathbf{V},{p(v)}\neq\phi
∀v∖{r}∈V,p(v)=ϕ
a)不存在环(空节点之间可)
b)任一一个节点有唯一路径可找到根(多个空节点指向
ϕ
\phi
ϕ,故
ϕ
\phi
ϕ找到根节点不止一条路径)
c)非空节点(除根)的祖先不可能是空节点。根节点后仍要看其父函数,即根的父函数为空节点
d)说明根节点的特殊性:父节点为空节点,
说明:
a)不存在环(空节点之间可)
b)任一一个节点有唯一路径可找到根(多个空节点指向
ϕ
\phi
ϕ,故
ϕ
\phi
ϕ找到根节点不止一条路径)
c)非空节点(除根)的祖先不可能是空节点。根节点后仍要看其父函数,即根的父函数为空节点
d)说明根节点的特殊性:父节点为空节点,
本定义经与Asita_c、xiaojia_177讨论、交流后完成,如有任何错漏,希望有幸能与您探讨!
自动机
A DFA is a 5-tuple M =
(
Σ
,
Q
,
q
0
,
T
,
f
)
(\Sigma, Q ,\bm{q}_0 , \bm{T} , f )
(Σ,Q,q0,T,f) , where
a)
Σ
\Sigma
Σ is the alphabet;
b)
Q
\bm{Q}
Q is the set of states;
c)
q
0
∈
Q
\bm{q}_0 \in \bm{Q}
q0∈Q is the start state;
d)
T
⊆
Q
\bm{T} \subseteq \bm{Q}
T⊆Qis the set of terminal states;
e)
f
:
Q
×
Σ
∗
→
Q
f: \bm{Q} \times \Sigma^* \to \bm{Q}
f:Q×Σ∗→Q is the transition function.
Any
s
∈
Σ
∗
s \in \Sigma^*
s∈Σ∗ is accepted by the automata iff
f
(
q
0
,
s
)
∈
T
f(\bm{q}_0, s) \in \bm{T}
f(q0,s)∈T
说明:
a) DFA 的开始状态只有一个, 因此为
Q
\bm{Q}
Q 的元素;
b) DFA 的终止状态可以有多个, 因此为
Q
\bm{Q}
Q 的子集;
c) DFA 的基础目标是看状态
s
s
s是否合法 (被接受).
1.9 习题3.1
题目:模仿自动机的样子来重新定义二叉树.
分析:
如果将二叉树看作是一个自动机, 它包括如下几个方面:
a) 有一个字母表, 即
(
l
,
r
)
(\mathrm{l}, \mathrm{r})
(l,r), 完美;
b) 有一个状态集合, 包括所有节点与空节点, 完美;
c) 有一个开始状态, 即根节点
r
r
r, 完美;
d) 有一个终止状态, 即空节点
ϕ
\phi
ϕ, 这里稍微有一点不同, 稍后重点讨论;
e) 从任一状态读入任一字母, 确定地转移到下一状态 (可以是自己), 这个用状态转移函数来描述,完美.
从如上 5 点分析可以看出, 二叉树在其中 4 点都与自动机完全契合, 唯一有问题的是终止状态. 二叉树本身没有一个“判断字符串是否合法”的目标,因此不存在终止状态. 但它又有一个特殊的状态, 即
ϕ
\phi
ϕ.
答:
A binary tree is a 5-tuple M =
(
Σ
,
V
,
r
,
ϕ
,
c
)
(\Sigma, \bm{V} ,\bm{r} , \phi , c)
(Σ,V,r,ϕ,c) , where
a)
Σ
=
(
l
,
r
)
\Sigma=(l,r)
Σ=(l,r) is the alphabet;
b)
V
=
{
v
1
,
.
.
.
,
v
n
}
\bm{V}=\{v_1,...,v_n\}
V={v1,...,vn} is the set of nodes;
c)
r
∈
Q
\bm{r} \in \bm{Q}
r∈Q is root;
d)
ϕ
\phi
ϕ is the null node and a special state;
e)
c
:
(
V
∪
{
ϕ
}
)
×
Σ
∗
→
V
∪
{
ϕ
}
c: (\bm{V} \cup \{\phi\}) \times \Sigma^* \to \bm{V} \cup \{\phi\}
c:(V∪{ϕ})×Σ∗→V∪{ϕ} is the transition function.
is satisfying
∀
v
∈
V
\forall v \in \mathbf{V}
∀v∈V,
∃
1
s
∈
\exists 1s \in
∃1s∈ Σ* , st.
c
(
r
,
s
)
=
v
c( r,s ) = v
c(r,s)=v
说明:
a)A binary tree 的开始状态只有一个, 因此为
V
\bm{V}
V的元素;
b)A binary tree 的特殊状态为
ϕ
\phi
ϕ,其左右子树均为
ϕ
\phi
ϕ;
c)A binary tree的跳转可以用状态转移函数
c
c
c来描述。
1.10 习题3.2
题目:模仿自动机的样子来重新定义树.
分析:
如果将树看作是一个自动机, 它包括如下几个方面:
a) 有一个字母表, ??不存在有限的字母表
b) 有一个状态集合, 包括所有节点与空节点, 完美;
c) 有一个开始状态, 即根节点
r
r
r, 完美;
d) 有一个终止状态, 即空节点
ϕ
\phi
ϕ, 这里稍微有一点不同, 稍后重点讨论;
e) 从任一状态读入任一字母, 确定地转移到下一状态 (可以是自己), ??无法用跳转函数来表示这个用函数
c
c
c来描述
从如上 5 点分析可以看出, 树在其中 2 点都与自动机完全契合:
- d)终止状态.:树本身没有一个“判断字符串是否合法”的目标,因此不存在终止状态. 但它又有一个特殊的状态, 即 ϕ \phi ϕ.
- a)有一个字母表:树的子树之间无序,因此不存在有限的字母表,但有后继这一概念。
- e)从任一状态读入任一字母:树的子树之间无序,故不能 确定地转移到下一状态且不能用跳转函数表示,但树中所有节点可以有0或多个后继,即可以相对确定的转移到下一状态。
答:
A tree is a 4-tuple M =
(
V
,
r
,
ϕ
,
p
)
(\bm{V} ,\bm{r} , \phi , p)
(V,r,ϕ,p) , where
b)
V
=
{
v
1
,
.
.
.
,
v
n
}
\bm{V}=\{v_1,...,v_n\}
V={v1,...,vn} is the set of states;
c)
r
∈
Q
\bm{r} \in \bm{Q}
r∈Q is root;
d)
ϕ
\phi
ϕ is the null node and a special state;
e) p : (
V
∪
{
ϕ
}
)
↦
(
V
∪
{
ϕ
}
)
\mathbf{V} ∪\{\phi\}) \mapsto (\mathbf{V} ∪\{\phi\})
V∪{ϕ})↦(V∪{ϕ}).is satisfying
1.
∀
v
∈
V
\forall v \in \mathbf{V}
∀v∈V,
∀
k
≥
1
\forall k \geq 1
∀k≥1,
p
k
(
v
)
≠
v
p^k ( v ) \neq v
pk(v)=v
2.
∀
v
∈
V
\forall v \in \mathbf{V}
∀v∈V,
∃
\exists
∃
1
k
≥
0
1 k \geq 0
1k≥0, st.
p
k
(
v
)
=
r
{p^k }( v ) = r
pk(v)=r
3.
∀
v
∖
{
r
}
∈
V
,
p
(
v
)
≠
ϕ
\forall v\setminus \{r\} \in \mathbf{V},{p(v)}\neq\phi
∀v∖{r}∈V,p(v)=ϕ
说明:
a)A binary tree 的开始状态只有一个, 因此为
Q
\bm{Q}
Q 除
ϕ
\phi
ϕ的元素;
b)A binary tree 的特殊状态为
ϕ
\phi
ϕ,其左右子树均为
ϕ
\phi
ϕ;
c)A binary tree的跳转可以用函数p来描述其前驱、后继关系。
d)1.3条件冗余可由2)推出
2 知识点整理
2.1 集合
- 特性
- 集合和元素
*是相对概念,故{{0,1,2}}中元素只有1个,即基数为1。 - 集合与子集与幂集
- 基数:the cardinality of A(记作|A|),指集合中元素个数,元素可以是集合可以不是。
- 子集B: B ⊆ A
- 幂集:集合所有子集的集合。
- 基数2=子集个数=幂集的基数
2.2 笛卡尔积
- 不同的集合可作笛卡尔积
例如, 颜色 C = {Red, Green, Blue}, 形状 S = {Triangle, Rectangle, Circle}, 质量 W = [ 1…100 ] = { 1 , 2 , … , 100 } . 则 C × S × W 的元素包括 (Red, Circle, 30) 等等. - 笛卡尔积满足排列组合:
∣ C × S × W ∣ = ∣ C ∣ × ∣ S ∣ × ∣ W ∣ - 笛卡尔积可表示为[C,S,W],可表示(C,S,W),强调顺序可用 ⟨ C , S , W ⟩ \lang C,S,W \rang ⟨C,S,W⟩
- 笛卡尔积是不满足于结合律的, 如 :
A={夏洛},C={烦恼},B={特} | 笛卡尔积 | 翻译 |
---|---|---|
((夏洛,特),烦恼) | (A×B)×C | (夏洛特)烦恼 |
(夏洛,(特,烦恼)) | (A×(B×C) | 夏洛(特烦恼) |
- 数据集: 真实的数据集不会填满整个空间(笛卡尔积定义的), 甚至通常在这个空间内其样本分布得是相当稀疏的.。找出数据在空间中的分布规律, 这也是数据挖掘的基本意义
- 对象:多数文献用一个行向量表示一个对象, 但机器学习中, 经常用一个列向量, 即不需要转置符号 T.
- 矩阵转置符号:是用 mathrm{T}, 为 transpose 的意思; 而不是 top, 符号为 ⊤ .
2.2 关系
- 关系与集合
- 几个关系:
- 小 于 : = { ( x , y ) ∈ R 2 ∣ x < y } 这里 : = 读作 “定义为”。 在平面直角坐标系中,
- 等于关系就是 45 度方向的一条线; 小于关系就是这条线的左上部分 (不包括它).
- 分析:以上“关系”的定义都由“集合”表示,准确的说:多个维度上的关系由集合的边界明确。
- 总结: 关系的本质居然是集合
- 几个关系:
- 函数与集合
- 函数的定义域、值域都是集合. 定义域可以是最基本的集合如 {R}, 也可以是笛卡尔集, 如 Definition 4 所示,甚至该定义中的单个属性的定义域也可以是幂集。 ==》函数是关系的一种
- 对于函数定义域上的每个点, 均在值域中有一个唯一的点与之对之。 反之不然. 因此,函数的逆函数不一定存在. 如果逆函数存在, 就是一一映射了。==》关系不是函数的一种。
- 函数是一种特殊的关系.
2.3 元组
- 元组用小括号, 向量既可以用小括号,也可以用中括号. 大括号是集合专用.
- 元组的各个部分, 既可以是一个集合, 也可以是一个基本元素.
- 从数据结构的角度, 元组就是抽象数据类型; 从面向程序设计的角度, 元组就是一个类. 当我们定义一个类的时候, 它有 k 个成员变量, 就是 k 元组.
2.4
- 一个词汇表的克林闭包:一个词汇表的任意组合组成的集合(长度任意,重复次数即是否重复任意),包括空。
- 一个词汇表的正闭包:一个词汇表的任意组合组成的集合(长度任意,重复次数即是否重复任意),不包括空。
- 字母表克林闭包的元素, 就称为字符串。
如有错漏,敬请指正