diff --git a/.vscode/settings.json b/.vscode/settings.json
index cc67606f..e2ed35a7 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,4 +1,5 @@
{
"python.linting.pylintEnabled": true,
- "python.linting.enabled": true
+ "python.linting.enabled": true,
+ "python.pythonPath": "C:\\Python\\python.exe"
}
\ No newline at end of file
diff --git a/工作日志/2020年10月12日-本周计划.md b/工作日志/2020年10月12日-本周计划.md
new file mode 100644
index 00000000..aa3a9142
--- /dev/null
+++ b/工作日志/2020年10月12日-本周计划.md
@@ -0,0 +1,6 @@
+主要任务:
+
+1. 完成吴恩达课程和作业(编程实现)
+2. 完成机器学习基石(笔记+编程)
+3. 完成统计学习方法(笔记+编程,熟悉numpy和matplotlib)
+4. 复习线性代数(3blue1brown)和数理统计(一门课程,重新做笔记)
\ No newline at end of file
diff --git a/工作日志/2020年10月1日-本月计划.md b/工作日志/2020年10月1日-本月计划.md
index 579b7179..e283a8a1 100644
--- a/工作日志/2020年10月1日-本月计划.md
+++ b/工作日志/2020年10月1日-本月计划.md
@@ -25,7 +25,8 @@
下午 完成15-16
晚上 完成17-19
------------------
+吴恩达课程完成。
+-------------------------------
10.5 机器学习基石上完成
10.6 机器学习基石下的一半
@@ -35,22 +36,28 @@
10.8 机器学习基石完成
> 整理好相关的机器学习笔记。进行附上代码的实现。
---------------------
+-------------------------------
-10.9-10.11 统计学习方法
+10.9-10.11 统计学习方法,书籍结合视频教程
-10.11-10.20 机器学习西瓜书
+10.11-10.20 机器学习西瓜书,书籍结合视频教程
-10.20-10.25 机器学习实战,编程。sklearn
+10.20-10.25 机器学习实战,编程。sklearn,书籍结合视频教程
10.25-10.30 TensorFlow教程学会
+-----------------------------------
11.01-11.10 神经网络的五套课程(仅仅学习三套就够了,因为后边的是针对专门的领域的)
-11.10-11.20 联邦学习
+11.10-11.20 联邦学习+情报,相关论文
-----------------------------------
基础知识->算法实现->科研论文->系统实现
+----------------------------------
+
+> 关于未来的思考。你应该知道自己毕业后回选择什么样的岗位,是算法岗还是开发岗。如果是开发岗,现在就应该重新学习C++以及相关的一系列基础知识了。如果是算法岗,现在应该去刷LeetCode上的各种算法了。如果是机器学习岗位,现在应该开始,了解各种机器学习相关的内容,然后发表相关方向的论文。
+
+
diff --git a/工作日志/总结.md b/工作日志/总结.md
index 1c3b821a..625d0c96 100644
--- a/工作日志/总结.md
+++ b/工作日志/总结.md
@@ -17,8 +17,11 @@
* 完成了python3-numpy-scipy-matplotlib-pandas机器学习系列工具的学习。需要通过具体的编程项目进行熟练。
## 第五周(9.28-10.4)
-* 吴恩达课程完成。
+* 吴恩达课程开始
* 机器学习相关工具的熟练。
* 完成了张小玉部分的界面。
-##
\ No newline at end of file
+## 第六周(10.5-10.11)
+
+* 吴恩达机器学习完成
+* 张小玉部分界面编程和报告完成。
\ No newline at end of file
diff --git a/机器学习/吴恩达机器学习/img/map-reduce.png b/机器学习/吴恩达机器学习/img/map-reduce.png
new file mode 100644
index 00000000..330b00b1
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/map-reduce.png differ
diff --git a/机器学习/吴恩达机器学习/img/minibatch梯度下降.png b/机器学习/吴恩达机器学习/img/minibatch梯度下降.png
new file mode 100644
index 00000000..a014f2e8
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/minibatch梯度下降.png differ
diff --git a/机器学习/吴恩达机器学习/img/两种梯度下降算法对比.png b/机器学习/吴恩达机器学习/img/两种梯度下降算法对比.png
new file mode 100644
index 00000000..b3243ffa
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/两种梯度下降算法对比.png differ
diff --git a/机器学习/吴恩达机器学习/img/人脸识别机器学习流水线.png b/机器学习/吴恩达机器学习/img/人脸识别机器学习流水线.png
new file mode 100644
index 00000000..c09d6b9e
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/人脸识别机器学习流水线.png differ
diff --git a/机器学习/吴恩达机器学习/img/协同过滤.png b/机器学习/吴恩达机器学习/img/协同过滤.png
new file mode 100644
index 00000000..8c37bdc0
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/协同过滤.png differ
diff --git a/机器学习/吴恩达机器学习/img/协同过滤算法.png b/机器学习/吴恩达机器学习/img/协同过滤算法.png
new file mode 100644
index 00000000..4bff4982
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/协同过滤算法.png differ
diff --git a/机器学习/吴恩达机器学习/img/协同过滤算法原理.png b/机器学习/吴恩达机器学习/img/协同过滤算法原理.png
new file mode 100644
index 00000000..f058ebcd
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/协同过滤算法原理.png differ
diff --git a/机器学习/吴恩达机器学习/img/协同过滤算法实现.png b/机器学习/吴恩达机器学习/img/协同过滤算法实现.png
new file mode 100644
index 00000000..85454e95
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/协同过滤算法实现.png differ
diff --git a/机器学习/吴恩达机器学习/img/协同过滤算法特征距离.png b/机器学习/吴恩达机器学习/img/协同过滤算法特征距离.png
new file mode 100644
index 00000000..2dee4459
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/协同过滤算法特征距离.png differ
diff --git a/机器学习/吴恩达机器学习/img/协同过滤算法矢量化.png b/机器学习/吴恩达机器学习/img/协同过滤算法矢量化.png
new file mode 100644
index 00000000..7f22c29f
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/协同过滤算法矢量化.png differ
diff --git a/机器学习/吴恩达机器学习/img/基于内容的推荐算法.png b/机器学习/吴恩达机器学习/img/基于内容的推荐算法.png
new file mode 100644
index 00000000..23add1ff
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/基于内容的推荐算法.png differ
diff --git a/机器学习/吴恩达机器学习/img/基于内容的推荐系统.png b/机器学习/吴恩达机器学习/img/基于内容的推荐系统.png
new file mode 100644
index 00000000..07a38cf9
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/基于内容的推荐系统.png differ
diff --git a/机器学习/吴恩达机器学习/img/多元高斯分布异常检测.png b/机器学习/吴恩达机器学习/img/多元高斯分布异常检测.png
new file mode 100644
index 00000000..2142cb4e
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/多元高斯分布异常检测.png differ
diff --git a/机器学习/吴恩达机器学习/img/异常检测.png b/机器学习/吴恩达机器学习/img/异常检测.png
new file mode 100644
index 00000000..d911bea9
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/异常检测.png differ
diff --git a/机器学习/吴恩达机器学习/img/异常检测系统.png b/机器学习/吴恩达机器学习/img/异常检测系统.png
new file mode 100644
index 00000000..b6e88558
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/异常检测系统.png differ
diff --git a/机器学习/吴恩达机器学习/img/独立高斯分布与多元高斯分布.png b/机器学习/吴恩达机器学习/img/独立高斯分布与多元高斯分布.png
new file mode 100644
index 00000000..1b2dc5c4
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/独立高斯分布与多元高斯分布.png differ
diff --git a/机器学习/吴恩达机器学习/img/课程总结.png b/机器学习/吴恩达机器学习/img/课程总结.png
new file mode 100644
index 00000000..f30a7fb4
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/课程总结.png differ
diff --git a/机器学习/吴恩达机器学习/img/随机梯度下降算法.png b/机器学习/吴恩达机器学习/img/随机梯度下降算法.png
new file mode 100644
index 00000000..2eeb1149
Binary files /dev/null and b/机器学习/吴恩达机器学习/img/随机梯度下降算法.png differ
diff --git a/机器学习/吴恩达机器学习/学习笔记/01机器学习基础.md b/机器学习/吴恩达机器学习/学习笔记/01机器学习基础.md
index c457584a..1d2b97df 100644
--- a/机器学习/吴恩达机器学习/学习笔记/01机器学习基础.md
+++ b/机器学习/吴恩达机器学习/学习笔记/01机器学习基础.md
@@ -27,4 +27,9 @@
优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等
数值计算:上溢与下溢,平滑处理,计算稳定性(如矩阵求逆过程)
微积分:偏微分,链式法则,矩阵求导等
-
\ No newline at end of file
+
+
+
+## 课程总结
+
+
\ No newline at end of file
diff --git a/机器学习/吴恩达机器学习/学习笔记/14主成分分析.md b/机器学习/吴恩达机器学习/学习笔记/14主成分分析.md
index e26dcf5a..0138b917 100644
--- a/机器学习/吴恩达机器学习/学习笔记/14主成分分析.md
+++ b/机器学习/吴恩达机器学习/学习笔记/14主成分分析.md
@@ -35,6 +35,8 @@ k_{feature} = U(:,1:k)\\
k_{main} = k_{feature}^T*x
$$
+> 协方差表示两个随机变量进行线性运算时的相关性大小。
+
## 选取主成分的个数
* 通过特征值累计,占比例
@@ -59,9 +61,6 @@ $$
* 通过PCA降低特征数,防止过拟合的方式很愚蠢。PCA降低特征数的原理本质上是减少特征之前的现行相关性,添加新的多项式特征的原理,本质上是增加特征之间的现行相关性。这样相互冲突的操作是多余的。
-
-
-
## 编程任务
* 使用python完成主成分分析过程,观察分析的结果。对主城分析的结果进行分析。结合概率论和数理统计的内容,判断前k个特征向量,占主成分的多少。
diff --git a/机器学习/吴恩达机器学习/学习笔记/15异常检测.md b/机器学习/吴恩达机器学习/学习笔记/15异常检测.md
index b0eab120..432e32dc 100644
--- a/机器学习/吴恩达机器学习/学习笔记/15异常检测.md
+++ b/机器学习/吴恩达机器学习/学习笔记/15异常检测.md
@@ -1,2 +1,70 @@
# 异常检测
+## 异常检测动机
+
+* 定义一个描述事件的特征向量
+* 当事件发生的特征向量偏离正常事件的特征向量时,被认为是异常事件。
+
+* 飞机引擎的各个参数,判断飞机引擎是否正常。
+* 优点类似有监督学习,但是只给出了单侧数据集的标签。
+
+## 高斯分布-正态分布
+
+## 异常检测算法
+
+* 首先使用极大似然法,假定样本的每一个参数符合正太分布,给出正太分布的模型。
+* 然后将样本代入概率模型,计算每一个特征的分布概率,然后连乘。
+* 设定以个边界值,当概率小于某个边界值的时候,表示样本数据不正常。
+* 在这里假定样本的各个特征之间相互独立,连乘表示其联合概率密度。
+> 并不是一种极其学习算法,而是一种简单的数据预处理算法,或者说统计学方法,通过统计学的计算,确定新给的样本是否存在问题,完成异常检测。
+
+
+
+
+
+## 开发和评估异常检测系统
+
+在开发机器学习系统的过程中,关键是做选择,而不是实现机器学习系统。应该学会选择特征、选择训练算法、选择预处理、选择错误检测算法的方法,通过组合现有的方法,达到一个比较好的效果。
+
+
+使用高斯分布进行异常检测的过程中,只考虑了单个特征变量的分布,而没有考虑各个特征变量之间可能存在的关系。
+
+
+1. 使用训练集,计算高维高斯分布模型。统计学方法。
+2. 使用交叉验证集和测试集对模型进行验证和评估,评估的方法,使用犯第一类和第二类错误的概率。
+3. 使用交叉验证集选择合适的参数。
+
+
+
+
+## 异常检测VS监督学习
+
+* 异常检测中通常具有很少量的正样本。大量的负样本。可以通过异常检测模型,描述正样本的特征。
+* 监督学习中,通常包含大量的正样本和负样本,可以用来学习正负样本的特征。
+
+
+## 选择异常检测算法要是用的特征
+
+* 绘制数据的分布,通过对数据的处理,转换为高斯分布。
+* 可以通过构造新的特征,来描述可能存在的异常值。
+
+
+## 多变量高斯分布
+
+* 当多个变量之间相互独立的时候,联合概率密度,即各个独立变量的概率密度的乘积。
+
+$$
+p(x;\mu;\Sigma)=\frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}} \exp{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)}
+$$
+
+* 当多个变量之间不独立的时候,使用协方差矩阵,表示各个变量之间的关系。
+## 使用多变量高斯分布的异常检测
+
+
+
+
+* 相比于之前的高斯分布异常检测,添加了随机变量之间的相关性,主要考虑线性相关性。协方差矩阵主要显示了随机变量之间的线性相关性
+* 独立高斯分布与多元高斯分布进行一场检测的选择如下。
+
+
+
\ No newline at end of file
diff --git a/机器学习/吴恩达机器学习/学习笔记/16推荐系统.md b/机器学习/吴恩达机器学习/学习笔记/16推荐系统.md
new file mode 100644
index 00000000..314a5ee2
--- /dev/null
+++ b/机器学习/吴恩达机器学习/学习笔记/16推荐系统.md
@@ -0,0 +1,85 @@
+# 推荐系统
+
+## 问题规划
+
+* 电影和用户的评分相关性
+* 使用用户对电影的评分,进行协同过滤的模型。
+
+## 基于内容的推荐算法
+
+
+
+主要思想:
+
+* 基于用户浏览过的数据集,对用户尚未浏览的数据集进行评分。
+* 假定我们已经知道,单个数据样本的特征标签。
+* 通过多元线性回归+每个用户的历史数据集,训练得到每一个用户的线性回归参数$\theta$
+
+## 协同过滤
+
+* 特征学习,自行学习要使用的特征。
+* 没有考虑用户之间的关联性。首先通过用户对电影特征的喜爱程度,反向
+* 基于浏览过同一个电影的用户数据,对电影进行评分。同样也是基于内容的。前者是基于用户浏览记录+电影特征判断用户对特征的的爱好,后者是通过电影被浏览的记录判断电影包含的特征。
+
+
+```
+用户
+
+电影
+
+特征
+
+基于内容的推荐算法:用户-电影 + 电影-特征 = 用户-特征
+协同过滤: 用户-电影 + 用户-特征 = 电影-特征
+
+两者可以结合,进行循环训练,能够收敛到更好的模型。
+
+用户-特征 -> 电影-特征 -> 用户-特征
+```
+
+
+> * 基于内容的推荐算法:已知用户-电影,电影-特征,求解用户-特征,用户-电影。
+> * 协同过滤:已知用户-电影,用户-特征,求解电影-特征,用户-电影。
+
+### 两种算法进行对比
+
+* 基于内容的电影推荐
+
+
+
+* 基于内容的特征生成
+
+
+
+
+## 协同过滤算法
+
+
+* 协同过滤算法原理,同时优化“基于内容的特征生成”和“基于内容的电影推荐”两部分
+
+
+
+
+* 协同过滤算法的实现。
+ * 初始化用户-电影特征关系参数$\theta$和电影特征$x_i$
+ * 最小化代价函数。对所有用户-电影特征关系参数$\theta$和电影特征$x_i$使用梯度下降算法,进行计算。
+ * 最终生成用户-电影特征参数和电影特征的解。然后使用这两个解,生成用户推荐。
+
+
+
+## 向量化
+
+* 使用协同过滤,实现电影推荐的例子。
+* 又称为低秩矩阵分解。可以对低秩矩阵进行矩阵化运算。
+
+
+
+* 协同过滤算法获得的电影特征无法进行可读理解。
+* 可以通过计算两个电影特征之间的距离,识别两个电影是否相似。
+
+
+
+
+## 均值规范化
+
+* 将各个数据进行均值规范化处理,能够让从来没有进行评分的用户,拥有平均的评分。
diff --git a/机器学习/吴恩达机器学习/学习笔记/17大数据集.md b/机器学习/吴恩达机器学习/学习笔记/17大数据集.md
new file mode 100644
index 00000000..056c2525
--- /dev/null
+++ b/机器学习/吴恩达机器学习/学习笔记/17大数据集.md
@@ -0,0 +1,58 @@
+# 大数据集
+
+## 大数据集机器学习
+
+* 通过大量数据,能够减少数据方差带来的模型误差。但不能解决模型偏差带来的模型误差。(有待考虑)
+
+## 随机梯度下降算法
+
+* 数据集很大的时候,普通梯度下降会变得困难。使用随机梯度下降,能够解决数据集过大的现象。
+* batch梯度下降。一次对所有的数据进行梯度下降。
+* 随机梯度下降;stochastic gradient descent
+ * random shuffle example
+ * repeat gradient descent on one example
+
+### 两种梯度下降算法对比
+
+
+
+### 随机梯度下降算法过程
+
+
+
+## mini-batch 梯度下降算法
+
+* 选取少量样本进行梯度下降。
+* 需要有非常高效的向量化方法,对小范围内的数据进行求和运算
+
+
+
+## 随机梯度下降的收敛问题
+
+* 学习率一般是固定的参数,如果想让代价函数收敛在更小的位置,可以随着训练过程降低学习率。
+* 保持固定的学习率能够方便调试。
+
+
+## 在线机器学习
+
+* 针对不断增加的连续的数据流。不断增加数据的网站,连续的数据流==> 在线机器学习。一边学习一边使用。
+
+* 邮寄包裹的例子:用户的统计学特征、发货地、目的地、给出的价格、用户选择还是离开。根据以上特征,训练处,什么时候用户留下,什么时候用户离开,并给出推荐的结果。
+
+* 一般使用逻辑回归的方式,判定给定价格下用户留下的概率,或者在一定概率下,用户留下的价格。
+
+* 在线机器学习的优点:能够使用不断变化的用户偏好。
+
+
+* 点击率预测学习。用户特征(搜索关键词)----手机特征,用户是否点击,建立用户特征和手机特征之间的匹配关系。
+* 与随机梯度下降非常相似,不同点在于,随机梯度下降,会使用固定的数据集,在线机器学习,使用不断变化的数据集。
+
+## map-reduce算法
+
+* map-reduce思想
+
+
+
+* map-reduce 过程,可以处理$\Sigma$累加的部分,通过reduce过程,对计算结果累计。必要条件:算法能够表示成对训练集的一种求和
+* 可以在单个机器的不同核心上执行map-reduce的过程
+* 某些现行代数库在进行向量化运算的过程中,会通过多个核心进行优化,不必使用MapReduce
diff --git a/机器学习/吴恩达机器学习/学习笔记/18案例Photo OCR.md b/机器学习/吴恩达机器学习/学习笔记/18案例Photo OCR.md
new file mode 100644
index 00000000..c2ce6c9c
--- /dev/null
+++ b/机器学习/吴恩达机器学习/学习笔记/18案例Photo OCR.md
@@ -0,0 +1,54 @@
+# 机器学习案例-Photo OCR
+
+## 问题描述
+
+* 主要目的:
+ * 复杂的机器学习系统是如何组建出来的
+ * 机器学习流水线的概念。
+ * 如何分配机器学习资源
+
+* 问题描述:照片的光学识别。
+ 1. 找出由文字的区域text detection
+ 2. 字符分割character segment
+ 3. 字符识别character classification
+
+* 机器学习流水线photo ocr pipeline
+ * image -> text detection -> character segment -> character classification
+ * 将图片传入一系列机器学习组件,完成一系列任务。
+
+## 滑动窗口
+
+* 使用一个固定大小滑动窗口,在待检测的图片上遍历所有可能存在目标的区域。
+* 调整滑动窗口的大小,将滑动窗口映射为固定大小,然后继续进行滑动,并检测窗口中是否存在目标。(100-50的区域,通过数据处理映射为50-25的检测单元,然后进行目标分析)
+
+## 获取大量数据和人工数据
+
+### 人工合成数据
+* 识别字体图片中:使用网络上个中免费的字体,添加各种不同的背景,对字体进行缩放旋转扭曲等操作,人工合成数据集。
+* 语音识别:给正常的语音添加各种不同的背景噪音。
+
+### 是否需要获得大量数据
+
+* 保证假设函数的偏差很小
+* 考虑是否能够快速获取十倍于现在的数据集
+ * 人工合成
+ * 众包服务
+ * 网上搜集
+
+## 时间规划
+
+* 做机器学习,最重要的是时间,其次是数据,然后是算法选择,最后是系统实现和调参。
+
+* 考虑机器学习系统、机器学习流水线上,准确率的瓶颈在哪里。
+
+
+* 一个机器学习流水线的实例。
+
+
+
+
+> 如果自己开发及其学习的过程,应该也要建立相应的流水线,每一个流水线上单独的算法,都应该可以发表一篇论文。关键是如何设计机器学习的流水线过程----------------应该通过广泛阅读相关论文,论证如何实现机器学习系统。
+
+* 建议:把机器学习问题分成很多模块,对整个系统进行上下限分析,给出需要投入时间最多的模块,合理规划任务。
+
+
diff --git a/机器学习/吴恩达机器学习/编程作业/15多变量高斯分布.py b/机器学习/吴恩达机器学习/编程作业/15多变量高斯分布.py
new file mode 100644
index 00000000..5aff528e
--- /dev/null
+++ b/机器学习/吴恩达机器学习/编程作业/15多变量高斯分布.py
@@ -0,0 +1,28 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from mpl_toolkits.mplot3d.axes3d import Axes3D
+
+x, y = np.mgrid[-5:5:.1, -5:5:.1]
+sigma = [[1, 0.9], [0.9, 3]]
+# print(x.size)
+
+xf = x.flatten()
+yf = y.flatten()
+
+xy = np.stack((xf, yf), axis=1)
+
+# print(xy)
+z1 = 1/(2*np.pi*np.sqrt(np.linalg.det(sigma)))
+z2 = -1/2.0*np.sum(np.matmul(xy, sigma)*xy, axis=1)
+
+z = z1*np.exp(z2)
+z = np.reshape(z, (100, 100))
+# print(z2)
+
+print(x.shape, y.shape, z.shape)
+
+figure = plt.figure()
+ax = Axes3D(figure)
+ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
+
+plt.show()
diff --git a/概率论与数理统计/第20节 多元正态分布.md b/概率论与数理统计/第20节 多元正态分布.md
index e6ed40cf..2f5d1549 100644
--- a/概率论与数理统计/第20节 多元正态分布.md
+++ b/概率论与数理统计/第20节 多元正态分布.md
@@ -103,7 +103,7 @@ $$
### 性质6:$\chi^2变换$
* 条件
$$
-x\sim N_p(\mu,\Sigma),\Simga>0
+x\sim N_p(\mu,\Sigma),\Sigma>0
$$
* 结论