diff --git a/docs/ml/1.md b/docs/ml/1.md index ba16848ef315a1704c371489a4a614a602ebca90..d9e7adac8e4aa34fec006c9ec557b4d61980f046 100644 --- a/docs/ml/1.md +++ b/docs/ml/1.md @@ -1,6 +1,6 @@ # 第1章 机器学习基础 -![机器学习基础_首页](http://data.apachecn.org/img/AiLearning/ml/1.MLFoundation/机器学习基础-首页.jpg) +![机器学习基础_首页](img/机器学习基础-首页.jpg) ## 机器学习 概述 @@ -86,11 +86,11 @@ 这个算法可以训练程序做出某一决定。程序在某一情况下尝试所有的可能行动,记录不同行动的结果并试着找出最好的一次尝试来做决定。 属于这一类算法的有马尔可夫决策过程。 ### 训练过程 -![机器学习训练过程图](http://data.apachecn.org/img/AiLearning/ml/1.MLFoundation/机器学习基础训练过程.jpg) +![机器学习训练过程图](img/机器学习基础训练过程.jpg) ### 算法汇总 -![算法汇总](http://data.apachecn.org/img/AiLearning/ml/1.MLFoundation/ml_algorithm.jpg) +![算法汇总](img/ml_algorithm.jpg) ## 机器学习 使用 @@ -104,7 +104,7 @@ > 举例 -![选择算法图](http://data.apachecn.org/img/AiLearning/ml/1.MLFoundation/机器学习基础-选择算法.jpg) +![选择算法图](img/机器学习基础-选择算法.jpg) > 机器学习 开发流程 @@ -215,7 +215,7 @@ F 值 = 70% * 50% * 2 / (70% + 50%) = 58.3% 下面这个图可以比较直观地展示出来: -![](http://data.apachecn.org/img/AiLearning/ml/1.MLFoundation/ml_add_1.jpg) +![](img/ml_add_1.jpg) ### 特征工程的一些小东西 @@ -225,7 +225,7 @@ F 值 = 70% * 50% * 2 / (70% + 50%) = 58.3% 下面给出一个特征工程的图: -![](http://data.apachecn.org/img/AiLearning/ml/1.MLFoundation/ml_add_2.jpg) +![](img/ml_add_2.jpg) ### 其他 diff --git a/docs/ml/10.md b/docs/ml/10.md index 049938546efb5d0a7be0d0f05cdc12bf5e5f9682..437ff415c43e60f8f269ca831ea6ee30a0ef2aff 100644 --- a/docs/ml/10.md +++ b/docs/ml/10.md @@ -1,6 +1,6 @@ # 第 10 章 K-Means(K-均值)聚类算法 -![K-Means(K-均值)聚类算法_首页](http://data.apachecn.org/img/AiLearning/ml/10.KMeans/K-Means_首页.jpg) +![K-Means(K-均值)聚类算法_首页](img/K-Means_首页.jpg) ## 聚类 @@ -59,7 +59,7 @@ kmeans,如前所述,用于数据集内种类属性不明晰,希望能够 有关 `簇` 和 `质心` 术语更形象的介绍, 请参考下图: -![K-Means 术语图](http://data.apachecn.org/img/AiLearning/ml/10.KMeans/apachecn-k-means-term-1.jpg) +![K-Means 术语图](img/apachecn-k-means-term-1.jpg) ### K-Means 工作流程 1. 首先, 随机确定 K 个初始点作为质心(**不必是数据中的点**)。 @@ -162,7 +162,7 @@ def kMeans(dataSet, k, distMeas=distEclud, createCent=randCent): 2. 测试一下 kMeans 函数是否可以如预期运行, 请看: 参考运行结果如下: -![K-Means 运行结果1](http://data.apachecn.org/img/AiLearning/ml/10.KMeans/apachecn-k-means-run-result-1.jpg) +![K-Means 运行结果1](img/apachecn-k-means-run-result-1.jpg) @@ -170,7 +170,7 @@ def kMeans(dataSet, k, distMeas=distEclud, createCent=randCent): > 在 kMeans 的函数测试中,可能偶尔会陷入局部最小值(局部最优的结果,但不是全局最优的结果). 局部最小值的的情况如下: -![K-Means 局部最小值1](http://data.apachecn.org/img/AiLearning/ml/10.KMeans/apachecn-kmeans-partial-best-result-1.jpg) +![K-Means 局部最小值1](img/apachecn-kmeans-partial-best-result-1.jpg) 出现这个问题有很多原因,可能是k值取的不合适,可能是距离函数不合适,可能是最初随机选取的质心靠的太近,也可能是数据本身分布的问题。 为了解决这个问题,我们可以对生成的簇进行后处理,一种方法是将具有最大**SSE**值的簇划分成两个簇。具体实现时可以将最大簇包含的点过滤出来并在这些点上运行K-均值算法,令k设为2。 @@ -239,7 +239,7 @@ def biKMeans(dataSet, k, distMeas=distEclud): 上述函数可以运行多次,聚类会收敛到全局最小值,而原始的 kMeans() 函数偶尔会陷入局部最小值。 运行参考结果如下: -![二分 K-Means 运行结果1](http://data.apachecn.org/img/AiLearning/ml/10.KMeans/apachecn-bikmeans-run-result-1.jpg) +![二分 K-Means 运行结果1](img/apachecn-bikmeans-run-result-1.jpg) * **作者: [那伊抹微笑](http://cwiki.apachecn.org/display/~xuxin), [清都江水郎](http://cwiki.apachecn.org/display/~xuzhaoqing)** * [GitHub地址](https://github.com/apachecn/AiLearning): diff --git a/docs/ml/11.md b/docs/ml/11.md index 6671b294b8d09b26c48911a83a59321c7d20fe98..d97cbbc126b6e981611c26559c6b20f7f3c7e1f6 100644 --- a/docs/ml/11.md +++ b/docs/ml/11.md @@ -1,7 +1,7 @@ # 第 11 章 使用 Apriori 算法进行关联分析 -![](http://data.apachecn.org/img/AiLearning/ml/11.Apriori/apachecn_apriori_homepage.jpg) +![](img/apachecn_apriori_homepage.jpg) ## 关联分析 关联分析是一种在大规模数据集中寻找有趣关系的任务。 @@ -12,7 +12,7 @@ ## 相关术语 * 关联分析(关联规则学习): 从大规模数据集中寻找物品间的隐含关系被称作 `关联分析(associati analysis)` 或者 `关联规则学习(association rule learning)` 。 下面是用一个 `杂货店` 例子来说明这两个概念,如下图所示: -![关联分析示例1](http://data.apachecn.org/img/AiLearning/ml/11.Apriori/apachecn_apriori_association_demo_1.jpg) +![关联分析示例1](img/apachecn_apriori_association_demo_1.jpg) * 频繁项集: {葡萄酒, 尿布, 豆奶} 就是一个频繁项集的例子。 * 关联规则: 尿布 -> 葡萄酒 就是一个关联规则。这意味着如果顾客买了尿布,那么他很可能会买葡萄酒。 @@ -31,14 +31,14 @@ 假设我们一共有 4 个商品: 商品0, 商品1, 商品2, 商品3。 所有可能的情况如下: -![4种商品的所有组合](http://data.apachecn.org/img/AiLearning/ml/11.Apriori/apachecn_apriori_goods_all_1.jpg) +![4种商品的所有组合](img/apachecn_apriori_goods_all_1.jpg) 如果我们计算所有组合的支持度,也需要计算 15 次。即 2^N - 1 = 2^4 - 1 = 15。 随着物品的增加,计算的次数呈指数的形式增长 ... 为了降低计算次数和时间,研究人员发现了一种所谓的 Apriori 原理,即某个项集是频繁的,那么它的所有子集也是频繁的。 例如,如果 {0, 1} 是频繁的,那么 {0}, {1} 也是频繁的。 该原理直观上没有什么帮助,但是如果反过来看就有用了,也就是说如果一个项集是 `非频繁项集`,那么它的所有超集也是非频繁项集,如下图所示: -![非频繁项集](http://data.apachecn.org/img/AiLearning/ml/11.Apriori/非频繁项集.png) +![非频繁项集](img/非频繁项集.png) 在图中我们可以看到,已知灰色部分 {2,3} 是 `非频繁项集`,那么利用上面的知识,我们就可以知道 {0,2,3} {1,2,3} {0,1,2,3} 都是 `非频繁的`。 也就是说,计算出 {2,3} 的支持度,知道它是 `非频繁` 的之后,就不需要再计算 {0,2,3} {1,2,3} {0,1,2,3} 的支持度,因为我们知道这些集合不会满足我们的要求。 @@ -272,7 +272,7 @@ def apriori(dataSet, minSupport=0.5): ### 一个频繁项集可以产生多少条关联规则呢? 如下图所示,给出的是项集 {0,1,2,3} 产生的所有关联规则: -![关联规则网格示意图](http://data.apachecn.org/img/AiLearning/ml/11.Apriori/apachecn_association_rule_demo_1.jpg) +![关联规则网格示意图](img/apachecn_association_rule_demo_1.jpg) 与我们前面的 `频繁项集` 生成一样,我们可以为每个频繁项集产生许多关联规则。 如果能减少规则的数目来确保问题的可解析,那么计算起来就会好很多。 通过观察,我们可以知道,如果某条规则并不满足 `最小可信度` 要求,那么该规则的所有子集也不会满足 `最小可信度` 的要求。 @@ -386,7 +386,7 @@ def generateRules(L, supportData, minConf=0.7): * 1.首先从一个频繁项集开始,接着创建一个规则列表,其中规则右部分只包含一个元素,然后对这个规则进行测试。 * 2.接下来合并所有剩余规则来创建一个新的规则列表,其中规则右部包含两个元素。 * 如下图: - * ![所有可能的项集组合](http://data.apachecn.org/img/AiLearning/ml/11.Apriori/所有可能的项集组合.png) + * ![所有可能的项集组合](img/所有可能的项集组合.png) * 最后: 每次增加频繁项集的大小,Apriori 算法都会重新扫描整个数据集,是否有优化空间呢? 下一章: FP-growth算法等着你的到来 * * * diff --git a/docs/ml/12.md b/docs/ml/12.md index bcea5c78f264e464b6fca5b8c840020045bd0f2b..f6a462fefe6d73be575541958bf4938e4844786e 100644 --- a/docs/ml/12.md +++ b/docs/ml/12.md @@ -1,7 +1,7 @@ # 第12章 使用FP-growth算法来高效发现频繁项集 -![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/apachecn_fp_growth_homepage.png) +![](img/apachecn_fp_growth_homepage.png) ## 前言 在 [第11章]() 时我们已经介绍了用 `Apriori` 算法发现 `频繁项集` 与 `关联规则`。 @@ -37,16 +37,16 @@ class treeNode: 1. 遍历所有的数据集合,计算所有项的支持度。 2. 丢弃非频繁的项。 3. 基于 支持度 降序排序所有的项。 - ![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/步骤1-3.png) + ![](img/步骤1-3.png) 4. 所有数据集合按照得到的顺序重新整理。 5. 重新整理完成后,丢弃每个集合末尾非频繁的项。 - ![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/步骤4-5.png) + ![](img/步骤4-5.png) 步骤2: 6. 读取每个集合插入FP树中,同时用一个头部链表数据结构维护不同集合的相同项。 - ![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/步骤6-1.png) + ![](img/步骤6-1.png) 最终得到下面这样一棵FP树 - ![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/步骤6-2.png) + ![](img/步骤6-2.png) 从FP树中挖掘出频繁项集 @@ -54,14 +54,14 @@ class treeNode: 步骤3: 1. 对头部链表进行降序排序 2. 对头部链表节点从小到大遍历,得到条件模式基,同时获得一个频繁项集。 - ![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/步骤6-2.png) + ![](img/步骤6-2.png) 如上图,从头部链表 t 节点开始遍历,t 节点加入到频繁项集。找到以 t 节点为结尾的路径如下: - ![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/步骤7-1.png) + ![](img/步骤7-1.png) 去掉FP树中的t节点,得到条件模式基<左边路径, 右边是值>[z,x,y,s,t]:2,[z,x,y,r,t]:1 。条件模式基的值取决于末尾节点 t ,因为 t 的出现次数最小,一个频繁项集的支持度由支持度最小的项决定。所以 t 节点的条件模式基的值可以理解为对于以 t 节点为末尾的前缀路径出现次数。 3. 条件模式基继续构造条件 FP树, 得到频繁项集,和之前的频繁项组合起来,这是一个递归遍历头部链表生成FP树的过程,递归截止条件是生成的FP树的头部链表为空。 根据步骤 2 得到的条件模式基 [z,x,y,s,t]:2,[z,x,y,r,t]:1 作为数据集继续构造出一棵FP树,计算支持度,去除非频繁项,集合按照支持度降序排序,重复上面构造FP树的步骤。最后得到下面 t-条件FP树 : - ![](http://data.apachecn.org/img/AiLearning/ml/12.FP-growth/步骤7-2.png) + ![](img/步骤7-2.png) 然后根据 t-条件FP树 的头部链表进行遍历,从 y 开始。得到频繁项集 ty 。然后又得到 y 的条件模式基,构造出 ty的条件FP树,即 ty-条件FP树。继续遍历ty-条件FP树的头部链表,得到频繁项集 tyx,然后又得到频繁项集 tyxz. 然后得到构造tyxz-条件FP树的头部链表是空的,终止遍历。我们得到的频繁项集有 t->ty->tyz->tyzx,这只是一小部分。 * 条件模式基:头部链表中的某一点的前缀路径组合就是条件模式基,条件模式基的值取决于末尾节点的值。 * 条件FP树:以条件模式基为数据集构造的FP树叫做条件FP树。 diff --git a/docs/ml/13.md b/docs/ml/13.md index e52c853e16745ebe88965fa14b3e9dda1b8ec597..a59f10046ce2aa111e7c71f934b31af1a2f3cff5 100644 --- a/docs/ml/13.md +++ b/docs/ml/13.md @@ -1,6 +1,6 @@ # 第13章 利用 PCA 来简化数据 -![利用PCA简化数据_首页](http://data.apachecn.org/img/AiLearning/ml/13.PCA/利用PCA简化数据_首页.jpg) +![利用PCA简化数据_首页](img/利用PCA简化数据_首页.jpg) ## 降维技术 @@ -70,7 +70,7 @@ 例如下图: -![应用PCA降维](http://data.apachecn.org/img/AiLearning/ml/13.PCA/应用PCA降维.png) +![应用PCA降维](img/应用PCA降维.png) > PCA 优缺点 @@ -128,7 +128,7 @@ def replaceNanWithMean(): > 分析数据: 统计分析 N 的阈值 -![PCA分析数据过程](http://data.apachecn.org/img/AiLearning/ml/13.PCA/PCA分析数据过程.jpg) +![PCA分析数据过程](img/PCA分析数据过程.jpg) > PCA 数据降维 diff --git a/docs/ml/14.md b/docs/ml/14.md index 4922fb6c99c165e56b374b97e8735e5243f18825..e761d320adc9e53a71c72351fe00686a6ac2ef4d 100644 --- a/docs/ml/14.md +++ b/docs/ml/14.md @@ -1,7 +1,7 @@ # 第14章 利用SVD简化数据 -![利用SVD简化数据首页](http://data.apachecn.org/img/AiLearning/ml/14.SVD/svd_headPage.jpg "利用SVD简化数据首页") +![利用SVD简化数据首页](img/svd_headPage.jpg "利用SVD简化数据首页") ## SVD 概述 @@ -17,14 +17,14 @@ 隐性语义索引: 矩阵 = 文档 + 词语 * 是最早的 SVD 应用之一,我们称利用 SVD 的方法为隐性语义索引(LSI)或隐性语义分析(LSA)。 -![LSA举例](http://data.apachecn.org/img/AiLearning/ml/14.SVD/使用SVD简化数据-LSI举例.png) +![LSA举例](img/使用SVD简化数据-LSI举例.png) > 推荐系统 1. 利用 SVD 从数据中构建一个主题空间。 2. 再在该空间下计算其相似度。(从高维-低维空间的转化,在低维空间来计算相似度,SVD 提升了推荐系统的效率。) -![主题空间案例1](http://data.apachecn.org/img/AiLearning/ml/14.SVD/SVD_推荐系统_主题空间案例1.jpg) +![主题空间案例1](img/SVD_推荐系统_主题空间案例1.jpg) * 上图右边标注的为一组共同特征,表示美式 BBQ 空间;另一组在上图右边未标注的为日式食品 空间。 @@ -32,7 +32,7 @@ 例如: `32*32=1024 => 32*2+2*1+32*2=130`(2*1表示去掉了除对角线的0), 几乎获得了10倍的压缩比。 -![SVD公式](http://data.apachecn.org/img/AiLearning/ml/14.SVD/使用SVD简化数据-SVD公式.jpg) +![SVD公式](img/使用SVD简化数据-SVD公式.jpg) ## SVD 原理 @@ -54,11 +54,11 @@ $$Data_{m \ast n} = U_{m \ast k} \sum_{k \ast k} V_{k \ast n}$$ -![SVD公式](http://data.apachecn.org/img/AiLearning/ml/14.SVD/使用SVD简化数据-SVD公式.jpg) +![SVD公式](img/使用SVD简化数据-SVD公式.jpg) 具体的案例: (大家可以试着推导一下: https://wenku.baidu.com/view/b7641217866fb84ae45c8d17.html ) -![SVD公式](http://data.apachecn.org/img/AiLearning/ml/14.SVD/SVD公式的测试案例.jpg) +![SVD公式](img/SVD公式的测试案例.jpg) * 上述分解中会构建出一个矩阵 $$\sum$$ ,该矩阵只有对角元素,其他元素均为0(近似于0)。另一个惯例就是,$$\sum$$ 的对角元素是从大到小排列的。这些对角元素称为奇异值。 * 奇异值与特征值(PCA 数据中重要特征)是有关系的。这里的奇异值就是矩阵 $$Data \ast Data^T$$ 特征值的平方根。 @@ -97,12 +97,12 @@ $$Data_{m \ast n} = U_{m \ast k} \sum_{k \ast k} V_{k \ast n}$$ * 基于物品的相似度: 计算物品之间的距离。【耗时会随物品数量的增加而增加】 * 由于物品A和物品C 相似度(相关度)很高,所以给买A的人推荐C。 -![SVD公式](http://data.apachecn.org/img/AiLearning/ml/14.SVD/使用SVD简化数据-基于物品相似度.png) +![SVD公式](img/使用SVD简化数据-基于物品相似度.png) * 基于用户的相似度: 计算用户之间的距离。【耗时会随用户数量的增加而增加】 * 由于用户A和用户C 相似度(相关度)很高,所以A和C是兴趣相投的人,对于C买的物品就会推荐给A。 -![SVD公式](http://data.apachecn.org/img/AiLearning/ml/14.SVD/使用SVD简化数据-基于用户相似度.png) +![SVD公式](img/使用SVD简化数据-基于用户相似度.png) > 相似度计算 @@ -146,7 +146,7 @@ $$Data_{m \ast n} = U_{m \ast k} \sum_{k \ast k} V_{k \ast n}$$ > 收集 并 准备数据 -![SVD 矩阵](http://data.apachecn.org/img/AiLearning/ml/14.SVD/项目数据导入.jpg) +![SVD 矩阵](img/项目数据导入.jpg) ```python def loadExData3(): @@ -177,9 +177,9 @@ recommend() 会调用 基于物品相似度 或者是 基于SVD,得到推荐 * 1.基于物品相似度 -![基于物品相似度](http://data.apachecn.org/img/AiLearning/ml/14.SVD/基于物品相似度.jpg) +![基于物品相似度](img/基于物品相似度.jpg) -![欧式距离的计算方式](http://data.apachecn.org/img/AiLearning/ml/14.SVD/欧式距离的计算方式.jpg) +![欧式距离的计算方式](img/欧式距离的计算方式.jpg) ```python # 基于物品相似度的推荐引擎 @@ -229,7 +229,7 @@ def standEst(dataMat, user, simMeas, item): * 2.基于SVD(参考地址: http://www.codeweblog.com/svd-%E7%AC%94%E8%AE%B0/) -![基于SVD.png](http://data.apachecn.org/img/AiLearning/ml/14.SVD/基于SVD.png) +![基于SVD.png](img/基于SVD.png) ```python # 基于SVD的评分估计 diff --git a/docs/ml/15.md b/docs/ml/15.md index b81e264e5d9f1418633acdc6578378da4a9ab00d..245ef99627698f7e07e2ded38e0a71d2f82c960d 100644 --- a/docs/ml/15.md +++ b/docs/ml/15.md @@ -1,6 +1,6 @@ # 第15章 大数据与MapReduce -![大数据与MapReduce首页](http://data.apachecn.org/img/AiLearning/ml/15.BigData_MapReduce/mr_headPage.jpg "大数据与MapReduce首页") +![大数据与MapReduce首页](img/mr_headPage.jpg "大数据与MapReduce首页") ## 大数据 概述 @@ -37,7 +37,7 @@ MapReduce: 分布式的计算框架,可以将单个计算作业分配给多台 * 数据被重复存放在不同的机器上,以防止某个机器失效 * mapper 和 reducer 传输的数据形式为 key/value对 -![MapReduce框架的示意图](http://data.apachecn.org/img/AiLearning/ml/15.BigData_MapReduce/mr_1_cluster.jpg "MapReduce框架的示意图") +![MapReduce框架的示意图](img/mr_1_cluster.jpg "MapReduce框架的示意图") > MapRedece 特点 diff --git a/docs/ml/16.md b/docs/ml/16.md index 2f8efb7a30d4df11774408043f76a787a9e62f84..63395ee6d6e1da483d497951a9a60397b0315058 100644 --- a/docs/ml/16.md +++ b/docs/ml/16.md @@ -46,13 +46,13 @@ | 基于知识推荐 | | | 组合推荐 | | -![推荐方法对比](http://data.apachecn.org/img/AiLearning/ml/16.RecommendedSystem/推荐方法对比.png) +![推荐方法对比](img/推荐方法对比.png) ### 基于知识推荐 基于知识的推荐(Knowledge-based Recommendation)在某种程度是可以看成是一种推理(Inference)技术,它不是建立在用户需要和偏好基础上推荐的。基于知识的方法因它们所用的功能知识不同而有明显区别。效用知识(Functional Knowledge)是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系,所以用户资料可以是任何能支持推理的知识结构,它可以是用户已经规范化的查询,也可以是一个更详细的用户需要的表示。 -![基于知识的推荐](http://data.apachecn.org/img/AiLearning/ml/16.RecommendedSystem/基于知识的推荐.jpg) +![基于知识的推荐](img/基于知识的推荐.jpg) ### 协同过滤推荐 diff --git a/docs/ml/2.md b/docs/ml/2.md index dcd88da9cc9a47025d13709ece39d1226a439063..20719b9778b58824b7226e39828eb81f06b1dd9d 100644 --- a/docs/ml/2.md +++ b/docs/ml/2.md @@ -1,7 +1,7 @@ # 第2章 k-近邻算法 -![k-近邻算法_首页](http://data.apachecn.org/img/AiLearning/ml/2.KNN/knn_headPage_xy.png "k-近邻算法首页") +![k-近邻算法_首页](img/knn_headPage_xy.png "k-近邻算法首页") ## KNN 概述 @@ -21,7 +21,7 @@ 基于电影中的亲吻、打斗出现的次数,使用 k-近邻算法构造程序,就可以自动划分电影的题材类型。 -![电影视频案例](http://data.apachecn.org/img/AiLearning/ml/2.KNN/knn-1-movie.png "电影视频案例") +![电影视频案例](img/knn-1-movie.png "电影视频案例") ``` 现在根据上面我们得到的样本集中所有电影与未知电影的距离,按照距离递增排序,可以找到 k 个距离最近的电影。 @@ -162,7 +162,7 @@ plt.show() 下图中采用矩阵的第一和第二列属性得到很好的展示效果,清晰地标识了三个不同的样本分类区域,具有不同爱好的人其类别区域也不同。 -![Matplotlib 散点图](http://data.apachecn.org/img/AiLearning/ml/2.KNN/knn_matplotlib_2.png) +![Matplotlib 散点图](img/knn_matplotlib_2.png) * 归一化数据 (归一化是一个让权重变为统一的过程,更多细节请参考: https://www.zhihu.com/question/19951858 ) @@ -194,7 +194,7 @@ $$\sqrt{(0-67)^2 + (20000-32000)^2 + (1.1-0.1)^2 }$$ 如图: - ![对数函数图像](http://data.apachecn.org/img/AiLearning/ml/2.KNN/knn_1.png) + ![对数函数图像](img/knn_1.png) 3) 反余切函数转换,表达式如下: @@ -202,7 +202,7 @@ $$\sqrt{(0-67)^2 + (20000-32000)^2 + (1.1-0.1)^2 }$$ 如图: - ![反余切函数图像](http://data.apachecn.org/img/AiLearning/ml/2.KNN/arctan_arccot.gif) + ![反余切函数图像](img/arctan_arccot.gif) 4) 式(1)将输入值换算为[-1,1]区间的值,在输出层用式(2)换算回初始值,其中和分别表示训练样本集中负荷的最大值和最小值。  @@ -363,7 +363,7 @@ You will probably like this person: in small doses 目录 [trainingDigits](/data/2.KNN/trainingDigits) 中包含了大约 2000 个例子,每个例子内容如下图所示,每个数字大约有 200 个样本;目录 [testDigits](/data/2.KNN/testDigits) 中包含了大约 900 个测试数据。 -![手写数字数据集的例子](http://data.apachecn.org/img/AiLearning/ml/2.KNN/knn_2_handWriting.png) +![手写数字数据集的例子](img/knn_2_handWriting.png) > 准备数据: 编写函数 img2vector(), 将图像文本数据转换为分类器使用的向量 diff --git a/docs/ml/3.md b/docs/ml/3.md index 4c9cd560581e0538b4d53bc3692da36640b6ab01..3363fd214557155c3980b4d54752fcb331ace8c0 100644 --- a/docs/ml/3.md +++ b/docs/ml/3.md @@ -2,7 +2,7 @@ # 第3章 决策树 -![决策树_首页](http://data.apachecn.org/img/AiLearning/ml/3.DecisionTree/DecisionTree_headPage_xy.png "决策树首页") +![决策树_首页](img/DecisionTree_headPage_xy.png "决策树首页") ## 决策树 概述 @@ -18,7 +18,7 @@ 一个邮件分类系统,大致工作流程如下: -![决策树-流程图](http://data.apachecn.org/img/AiLearning/ml/3.DecisionTree/决策树-流程图.jpg "决策树示例流程图") +![决策树-流程图](img/决策树-流程图.jpg "决策树示例流程图") ``` 首先检测发送邮件域名地址。如果地址为 myEmployer.com, 则将其放在分类 "无聊时需要阅读的邮件"中。 @@ -114,7 +114,7 @@ def createBranch(): > 收集数据: 可以使用任何方法 -![海洋生物数据](http://data.apachecn.org/img/AiLearning/ml/3.DecisionTree/DT_海洋生物数据.png) +![海洋生物数据](img/DT_海洋生物数据.png) 我们利用 createDataSet() 函数输入数据 @@ -134,7 +134,7 @@ def createDataSet(): > 分析数据: 可以使用任何方法,构造树完成之后,我们可以将树画出来。 -![熵的计算公式](http://data.apachecn.org/img/AiLearning/ml/3.DecisionTree/熵的计算公式.jpg) +![熵的计算公式](img/熵的计算公式.jpg) 计算给定数据集的香农熵的函数 diff --git a/docs/ml/4.md b/docs/ml/4.md index f9c6a6e8692032a8ad5325a58e9363fb97818dfa..c0552811a2e027abf31c799e5ec36a0ed1c6cf2c 100644 --- a/docs/ml/4.md +++ b/docs/ml/4.md @@ -2,7 +2,7 @@ # 第4章 基于概率论的分类方法: 朴素贝叶斯 -![朴素贝叶斯_首页](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/NavieBayesian_headPage_xy.png "朴素贝叶斯首页") +![朴素贝叶斯_首页](img/NavieBayesian_headPage_xy.png "朴素贝叶斯首页") ## 朴素贝叶斯 概述 @@ -14,7 +14,7 @@ 我们现在有一个数据集,它由两类数据组成,数据分布如下图所示: -![朴素贝叶斯示例数据分布](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/朴素贝叶斯示例数据分布.png "参数已知的概率分布") +![朴素贝叶斯示例数据分布](img/朴素贝叶斯示例数据分布.png "参数已知的概率分布") 我们现在用 p1(x,y) 表示数据点 (x,y) 属于类别 1(图中用圆点表示的类别)的概率,用 p2(x,y) 表示数据点 (x,y) 属于类别 2(图中三角形表示的类别)的概率,那么对于一个新数据点 (x,y),可以用下面的规则来判断它的类别: * 如果 p1(x,y) > p2(x,y) ,那么类别为1 @@ -28,11 +28,11 @@ 有一个装了 7 块石头的罐子,其中 3 块是白色的,4 块是黑色的。如果从罐子中随机取出一块石头,那么是白色石头的可能性是多少?由于取石头有 7 种可能,其中 3 种为白色,所以取出白色石头的概率为 3/7 。那么取到黑色石头的概率又是多少呢?很显然,是 4/7 。我们使用 P(white) 来表示取到白色石头的概率,其概率值可以通过白色石头数目除以总的石头数目来得到。 -![包含 7 块石头的集合](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/NB_2.png) +![包含 7 块石头的集合](img/NB_2.png) 如果这 7 块石头如下图所示,放在两个桶中,那么上述概率应该如何计算? -![7块石头放入两个桶中](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/NB_3.png) +![7块石头放入两个桶中](img/NB_3.png) 计算 P(white) 或者 P(black) ,如果事先我们知道石头所在桶的信息是会改变结果的。这就是所谓的条件概率(conditional probablity)。假定计算的是从 B 桶取到白色石头的概率,这个概率可以记作 P(white|bucketB) ,我们称之为“在已知石头出自 B 桶的条件下,取出白色石头的概率”。很容易得到,P(white|bucketA) 值为 2/4 ,P(white|bucketB) 的值为 1/3 。 @@ -44,7 +44,7 @@ P(white|bucketB) = P(white and bucketB) / P(bucketB) 另外一种有效计算条件概率的方法称为贝叶斯准则。贝叶斯准则告诉我们如何交换条件概率中的条件与结果,即如果已知 P(x|c),要求 P(c|x),那么可以使用下面的计算方法: -![计算p(c|x)的方法](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/NB_4.png) +![计算p(c|x)的方法](img/NB_4.png) ### 使用条件概率来分类 @@ -54,7 +54,7 @@ P(white|bucketB) = P(white and bucketB) / P(bucketB) 这并不是贝叶斯决策理论的所有内容。使用 p1() 和 p2() 只是为了尽可能简化描述,而真正需要计算和比较的是 p(c1|x, y) 和 p(c2|x, y) .这些符号所代表的具体意义是: 给定某个由 x、y 表示的数据点,那么该数据点来自类别 c1 的概率是多少?数据点来自类别 c2 的概率又是多少?注意这些概率与概率 p(x, y|c1) 并不一样,不过可以使用贝叶斯准则来交换概率中条件与结果。具体地,应用贝叶斯准则得到: -![应用贝叶斯准则](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/NB_5.png) +![应用贝叶斯准则](img/NB_5.png) 使用上面这些定义,可以定义贝叶斯分类准则为: * 如果 P(c1|x, y) > P(c2|x, y), 那么属于类别 c1; @@ -213,7 +213,7 @@ def setOfWords2Vec(vocabList, inputSet): 现在已经知道了一个词是否出现在一篇文档中,也知道该文档所属的类别。接下来我们重写贝叶斯准则,将之前的 x, y 替换为 w. 粗体的 w 表示这是一个向量,即它由多个值组成。在这个例子中,数值个数与词汇表中的词个数相同。 -![重写贝叶斯准则](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/NB_6.png ) +![重写贝叶斯准则](img/NB_6.png ) 我们使用上述公式,对每个类计算该值,然后比较这两个概率值的大小。 @@ -274,7 +274,7 @@ def _trainNB0(trainMatrix, trainCategory): 下图给出了函数 f(x) 与 ln(f(x)) 的曲线。可以看出,它们在相同区域内同时增加或者减少,并且在相同点上取到极值。它们的取值虽然不同,但不影响最终结果。 -![函数图像](http://data.apachecn.org/img/AiLearning/ml/4.NaiveBayesian/NB_7.png ) +![函数图像](img/NB_7.png ) ```python def trainNB0(trainMatrix, trainCategory): diff --git a/docs/ml/5.md b/docs/ml/5.md index 705bf5654efe01847dc1449fe208d927050c8127..678f1df0f41c2d031c3280178f07aaa56babdb2c 100644 --- a/docs/ml/5.md +++ b/docs/ml/5.md @@ -1,7 +1,7 @@ # 第5章 Logistic回归 -![朴素贝叶斯_首页](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LogisticRegression_headPage_xy.png "Logistic回归首页") +![朴素贝叶斯_首页](img/LogisticRegression_headPage_xy.png "Logistic回归首页") ## Logistic 回归 概述 @@ -19,11 +19,11 @@ 我们想要的函数应该是: 能接受所有的输入然后预测出类别。例如,在两个类的情况下,上述函数输出 0 或 1.或许你之前接触过具有这种性质的函数,该函数称为 `海维塞得阶跃函数(Heaviside step function)`,或者直接称为 `单位阶跃函数`。然而,海维塞得阶跃函数的问题在于: 该函数在跳跃点上从 0 瞬间跳跃到 1,这个瞬间跳跃过程有时很难处理。幸好,另一个函数也有类似的性质(可以输出 0 或者 1 的性质),且数学上更易处理,这就是 Sigmoid 函数。 Sigmoid 函数具体的计算公式如下: -![Sigmoid 函数计算公式](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_1.png) +![Sigmoid 函数计算公式](img/LR_1.png) 下图给出了 Sigmoid 函数在不同坐标尺度下的两条曲线图。当 x 为 0 时,Sigmoid 函数值为 0.5 。随着 x 的增大,对应的 Sigmoid 值将逼近于 1 ; 而随着 x 的减小, Sigmoid 值将逼近于 0 。如果横坐标刻度足够大, Sigmoid 函数看起来很像一个阶跃函数。 -![Sigmoid 函数在不同坐标下的图片](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_3.png) +![Sigmoid 函数在不同坐标下的图片](img/LR_3.png) 因此,为了实现 Logistic 回归分类器,我们可以在每个特征上都乘以一个回归系数(如下公式所示),然后把所有结果值相加,将这个总和代入 Sigmoid 函数中,进而得到一个范围在 0~1 之间的数值。任何大于 0.5 的数据被分入 1 类,小于 0.5 即被归入 0 类。所以,Logistic 回归也是一种概率估计,比如这里Sigmoid 函数得出的值为0.5,可以理解为给定数据和参数,数据被分入 1 类的概率为0.5。想对Sigmoid 函数有更多了解,可以点开[此链接](https://www.desmos.com/calculator/bgontvxotm)跟此函数互动。 @@ -31,9 +31,9 @@ Sigmoid 函数的输入记为 z ,由下面公式得到: -![Sigmoid 函数计算公式](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_2.png) +![Sigmoid 函数计算公式](img/LR_2.png) -如果采用向量的写法,上述公式可以写成 ![Sigmoid 函数计算公式向量形式](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_4.png) ,它表示将这两个数值向量对应元素相乘然后全部加起来即得到 z 值。其中的向量 x 是分类器的输入数据,向量 w 也就是我们要找到的最佳参数(系数),从而使得分类器尽可能地精确。为了寻找该最佳参数,需要用到最优化理论的一些知识。我们这里使用的是——梯度上升法(Gradient Ascent)。 +如果采用向量的写法,上述公式可以写成 ![Sigmoid 函数计算公式向量形式](img/LR_4.png) ,它表示将这两个数值向量对应元素相乘然后全部加起来即得到 z 值。其中的向量 x 是分类器的输入数据,向量 w 也就是我们要找到的最佳参数(系数),从而使得分类器尽可能地精确。为了寻找该最佳参数,需要用到最优化理论的一些知识。我们这里使用的是——梯度上升法(Gradient Ascent)。 ### 梯度上升法 @@ -50,17 +50,17 @@ Sigmoid 函数的输入记为 z ,由下面公式得到: #### 梯度上升法的思想 要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为 ▽ ,则函数 f(x, y) 的梯度由下式表示: -![梯度上升计算公式](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_5.png) +![梯度上升计算公式](img/LR_5.png) -这个梯度意味着要沿 x 的方向移动 ![f(x, y)对x求偏导](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_6.png) ,沿 y 的方向移动 ![f(x, y)对y求偏导](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_7.png) 。其中,函数f(x, y) 必须要在待计算的点上有定义并且可微。下图是一个具体的例子。 +这个梯度意味着要沿 x 的方向移动 ![f(x, y)对x求偏导](img/LR_6.png) ,沿 y 的方向移动 ![f(x, y)对y求偏导](img/LR_7.png) 。其中,函数f(x, y) 必须要在待计算的点上有定义并且可微。下图是一个具体的例子。 -![梯度上升](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_8.png) +![梯度上升](img/LR_8.png) 上图展示的,梯度上升算法到达每个点后都会重新估计移动的方向。从 P0 开始,计算完该点的梯度,函数就根据梯度移动到下一点 P1。在 P1 点,梯度再次被重新计算,并沿着新的梯度方向移动到 P2 。如此循环迭代,直到满足停止条件。迭代过程中,梯度算子总是保证我们能选取到最佳的移动方向。 上图中的梯度上升算法沿梯度方向移动了一步。可以看到,梯度算子总是指向函数值增长最快的方向。这里所说的是移动方向,而未提到移动量的大小。该量值称为步长,记作 α 。用向量来表示的话,梯度上升算法的迭代公式如下: -![梯度上升迭代公式](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_9.png) +![梯度上升迭代公式](img/LR_9.png) 该公式将一直被迭代执行,直至达到某个停止条件为止,比如迭代次数达到某个指定值或者算法达到某个可以允许的误差范围。 @@ -80,12 +80,12 @@ Sigmoid 函数的输入记为 z ,由下面公式得到: 只需要在迭代公式中的加法变成减法。因此,对应的公式可以写成 -![梯度下降迭代公式](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_10.png) +![梯度下降迭代公式](img/LR_10.png) **局部最优现象 (Local Optima)** -![梯度下降图_4](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_20.png) +![梯度下降图_4](img/LR_20.png) 上图表示参数 θ 与误差函数 J(θ) 的关系图 (这里的误差函数是损失函数,所以我们要最小化损失函数),红色的部分是表示 J(θ) 有着比较高的取值,我们需要的是,能够让 J(θ) 的值尽量的低。也就是深蓝色的部分。θ0,θ1 表示 θ 向量的两个维度(此处的θ0,θ1是x0和x1的系数,也对应的是上文w0和w1)。 @@ -126,7 +126,7 @@ Sigmoid 函数的输入记为 z ,由下面公式得到: ### 附加 方向导数与梯度 -![方向导数与梯度](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/方向导数和梯度.png) +![方向导数与梯度](img/方向导数和梯度.png) ## Logistic 回归 项目案例 @@ -163,7 +163,7 @@ Sigmoid 函数的输入记为 z ,由下面公式得到: 绘制在图中,如下图所示: -![简单数据集绘制在图上](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_11.png) +![简单数据集绘制在图上](img/LR_11.png) > 准备数据: 由于需要进行距离计算,因此要求数据类型为数值型。另外,结构化数据格式则最佳 @@ -247,7 +247,7 @@ def gradAscent(dataMatIn, classLabels): 大家看到这儿可能会有一些疑惑,就是,我们在迭代中更新我们的回归系数,后边的部分是怎么计算出来的?为什么会是 alpha * dataMatrix.transpose() * error ?因为这就是我们所求的梯度,也就是对 f(w) 对 w 求一阶导数。具体推导如下: -![f(w)对w求一阶导数](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_21.png) +![f(w)对w求一阶导数](img/LR_21.png) 可参考http://blog.csdn.net/achuo/article/details/51160101 画出数据集和 Logistic 回归最佳拟合直线的函数 @@ -357,7 +357,7 @@ def stocGradAscent0(dataMatrix, classLabels): 判断优化算法优劣的可靠方法是看它是否收敛,也就是说参数是否达到了稳定值,是否还会不断地变化?下图展示了随机梯度上升算法在 200 次迭代过程中回归系数的变化情况。其中的系数2,也就是 X2 只经过了 50 次迭代就达到了稳定值,但系数 1 和 0 则需要更多次的迭代。如下图所示: -![回归系数与迭代次数的关系图](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_12.png) +![回归系数与迭代次数的关系图](img/LR_12.png) 针对这个问题,我们改进了之前的随机梯度上升算法,如下: @@ -393,7 +393,7 @@ def stocGradAscent1(dataMatrix, classLabels, numIter=150): 程序运行之后能看到类似于下图的结果图。 -![改进随机梯度下降结果图](http://data.apachecn.org/img/AiLearning/ml/5.Logistic/LR_13.png) +![改进随机梯度下降结果图](img/LR_13.png) ### 项目案例2: 从疝气病症预测病马的死亡率 diff --git a/docs/ml/6.1.md b/docs/ml/6.1.md index 8d3acfff18d137d5f7b48d4eab0fd235d8e07ef8..7096a663bf3d41a3650affc3fdcf0f040d17858d 100644 --- a/docs/ml/6.1.md +++ b/docs/ml/6.1.md @@ -44,13 +44,13 @@ support vector (支持向量)的意思就是 数据集中的某些点 不通俗的理解: 在 maximum margin (最大间隔)上的这些点就叫 “支持向量”,我想补充的是为啥这些点就叫 “支持向量” ,因为最后的 classification machine (分类器)的表达式里只含有这些 “支持向量” 的信息,而与其他数据点无关: -![支持向量机公式](http://data.apachecn.org/img/AiLearning/ml/6.SVM/supportVector公式.jpg "supportVector公式") +![支持向量机公式](img/supportVector公式.jpg "supportVector公式") -在这个表达式中,只有支持向量的系数 ![alphai](http://data.apachecn.org/img/AiLearning/ml/6.SVM/alpha.png "alphai") 不等于 0 。 +在这个表达式中,只有支持向量的系数 ![alphai](img/alpha.png "alphai") 不等于 0 。 如果还是不怎么理解,不要紧,看下图: -![supportVector](http://data.apachecn.org/img/AiLearning/ml/6.SVM/supportVector.png "supportVector") +![supportVector](img/supportVector.png "supportVector") “支持向量” 就是图中用紫色框框圈出来的点... @@ -59,7 +59,7 @@ support vector (支持向量)的意思就是 数据集中的某些点 我们先看一张图 -![supportVectorMachine](http://data.apachecn.org/img/AiLearning/ml/6.SVM/svm_2.png "supportVectorMachine") +![supportVectorMachine](img/svm_2.png "supportVectorMachine") `linearly separable (线性可分)`: 如上图中的两组数据,它们之间已经分的足够开了,因此很容易就可以在图中画出一条直线将两组数据点分开。在这种情况下,这组数据就被称为线性可分数据。 @@ -87,35 +87,35 @@ support vector (支持向量)的意思就是 数据集中的某些点 魔鬼在桌子上似乎有规律放了两种颜色的球,说: “你用一根棍分开它们?要求: 尽量在放更多球之后,仍然适用。” -![story_1](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_1.png "story_1") +![story_1](img/story_1.png "story_1") 于是大侠这样放,干的不错? -![story_2](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_2.png "story_2") +![story_2](img/story_2.png "story_2") 然后魔鬼,又在桌上放了更多的球,似乎有一个球站错了阵营。 -![story_3](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_3.png "story_3") +![story_3](img/story_3.png "story_3") SVM 就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。 -![story_4](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_4.png "story_4") +![story_4](img/story_4.png "story_4") 现在即使魔鬼放了更多的球,棍仍然是一个好的分界线。 -![story_5](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_5.png "story_5") +![story_5](img/story_5.png "story_5") 然后,在 SVM 工具箱中有另一个更加重要的 trick。 魔鬼看到大侠已经学会了一个 trick ,于是魔鬼给了大侠一个新的挑战。 -![story_6](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_6.png "story_6") +![story_6](img/story_6.png "story_6") 现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠的轻功,大侠抓起一张纸,插到了两种球的中间。 -![story_7](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_7.png "story_7") +![story_7](img/story_7.png "story_7") 现在,从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。 -![story_8](http://data.apachecn.org/img/AiLearning/ml/6.SVM/story_8.png "story_8") +![story_8](img/story_8.png "story_8") 再之后,无聊的大人们,把这些球叫做 「data」,把棍子叫做 「classifier」, 最大间隙 trick 叫做「optimization」, 拍桌子叫做「kernelling」, 那张纸叫做「hyperplane」 。 @@ -162,11 +162,11 @@ d什么是 SVM ? Support Vector Machine, 一个普通的 SVM 就是一条直线罢了,用来完美划分 linearly separable 的两类。但这又不是一条普通的直线,这是无数条可以分类的直线当中最完美的,因为它恰好在两个类的中间,距离两个类的点都一样远。而所谓的 Support vector 就是这些离分界线最近的『点』。如果去掉这些点,直线多半是要改变位置的。可以说是这些 vectors (主,点点) support (谓,定义)了 machine (宾,分类器)... -![k_2](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_2.jpg "k_2") +![k_2](img/k_2.jpg "k_2") 所以谜底就在谜面上啊朋友们,只要找到了这些最靠近的点不就找到了 SVM 了嘛。 @@ -223,45 +223,45 @@ Support Vector Machine, 一个普通的 SVM 就是一条直线罢了,用来完 于是自然而然可以得到重要表达 I. direct representation -![k_7](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_7.png "k_7") +![k_7](img/k_7.png "k_7") (可以把 margin 看作是 boundary 的函数,并且想要找到使得是使得 margin 最大化的boundary,而 margin(*) 这个函数是: 输入一个 boundary ,计算(正确分类的)所有苹果和香蕉中,到 boundary 的最小距离。) 又有最大又有最小看起来好矛盾。实际上『最大』是对这个整体使用不同 boundary 层面的最大,『最小』是在比较『点』的层面上的最小。外层在比较 boundary 找最大的 margin ,内层在比较点点找最小的距离。 -其中距离,说白了就是点到直线的距离;只要定义带正负号的距离,是 {苹果+1} 面为正 {香蕉-1} 面为负的距离,互相乘上各自的 label ![k_8](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_8.png "k_8") ,就和谐统一民主富强了。 +其中距离,说白了就是点到直线的距离;只要定义带正负号的距离,是 {苹果+1} 面为正 {香蕉-1} 面为负的距离,互相乘上各自的 label ![k_8](img/k_8.png "k_8") ,就和谐统一民主富强了。 -![k_9](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_9.png "k_9") +![k_9](img/k_9.png "k_9") 到这里为止已经说完了所有关于SVM的直观了解,如果不想看求解,可以跳过下面一大段直接到 objective function 。 直接表达虽然清楚但是求解无从下手。做一些简单地等价变换(分母倒上来)可以得到 II. canonical representation (敲黑板) -![k_10](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_10.png "k_10") +![k_10](img/k_10.png "k_10") 要得到 III. dual representation 之前需要大概知道一下拉格朗日乘子法 (method of lagrange multiplier),它是用在有各种约束条件(各种 "subject to" )下的目标函数,也就是直接可以求导可以引出 dual representation(怎么还没完摔) -![k_11](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_11.png "k_11") +![k_11](img/k_11.png "k_11") 稍微借用刚刚数学表达里面的内容看个有趣的东西: 还记得我们怎么预测一个新的水果是苹果还是香蕉吗?我们代入到分界的直线里,然后通过符号来判断。 -刚刚w已经被表达出来了也就是说这个直线现在变成了: ![k_12](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_12.png "k_12") +刚刚w已经被表达出来了也就是说这个直线现在变成了: ![k_12](img/k_12.png "k_12") -看似仿佛用到了所有的训练水果,但是其中 ![k_13](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_13.png "k_13") 的水果都没有起到作用,剩下的就是小部分靠边边的 Support vectors 呀。 +看似仿佛用到了所有的训练水果,但是其中 ![k_13](img/k_13.png "k_13") 的水果都没有起到作用,剩下的就是小部分靠边边的 Support vectors 呀。 III. dual representation -![k_14](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_14.png "k_14") +![k_14](img/k_14.png "k_14") 如果香蕉和苹果不能用直线分割呢? -![k_3](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_3.jpg "k_3") +![k_3](img/k_3.jpg "k_3") Kernel trick. -其实用直线分割的时候我们已经使用了 kernel ,那就是线性 kernel , ![k_15](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_15.png "k_15") +其实用直线分割的时候我们已经使用了 kernel ,那就是线性 kernel , ![k_15](img/k_15.png "k_15") 如果要替换 kernel 那么把目标函数里面的内积全部替换成新的 kernel function 就好了,就是这么简单。 @@ -269,13 +269,13 @@ Kernel trick. 如果香蕉和苹果有交集呢? -![k_4](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_4.jpg "k_4") +![k_4](img/k_4.jpg "k_4") -![k_16](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_16.png "k_16") +![k_16](img/k_16.png "k_16") 如果还有梨呢? -![k_5](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_5.jpg "k_5") +![k_5](img/k_5.jpg "k_5") 可以每个类别做一次 SVM: 是苹果还是不是苹果?是香蕉还是不是香蕉?是梨子还是不是梨子?从中选出可能性最大的。这是 one-versus-the-rest approach。 @@ -289,7 +289,7 @@ Kernel trick.

最后送一张图我好爱哈哈哈 (Credit: Burr Settles)

-![k_6](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_6.png "k_6") +![k_6](img/k_6.png "k_6")

[1] Bishop C M. Pattern recognition[J]. Machine Learning, 2006, 128.

[2] Friedman J, Hastie T, Tibshirani R. The elements of statistical learning[M]. Springer, Berlin: Springer series in statistics, 2001.

@@ -311,7 +311,7 @@ Kernel trick. SVM 的基本原理基本上已经说的差不多了,下面咱们就来看看 SVM 在实际应用该如何使用了。幸运的是,在 python 下面,sklearn 提供了一个非常好用的机器学习算法,我们调用相关的包就好啦。 -![sklearn_map](http://data.apachecn.org/img/AiLearning/ml/6.SVM/ml_map.png "sklearn") +![sklearn_map](img/ml_map.png "sklearn") ## 小结 diff --git a/docs/ml/6.md b/docs/ml/6.md index a18c58075eb9e7ae598dc4bf128f6e2339ce2ffb..0f36fd6175791f2586b24791edd5c27e1ea6642f 100644 --- a/docs/ml/6.md +++ b/docs/ml/6.md @@ -1,7 +1,7 @@ # 第6章 支持向量机 -![支持向量机_首页](http://data.apachecn.org/img/AiLearning/ml/6.SVM/SVM_1.jpg) +![支持向量机_首页](img/SVM_1.jpg) ## 支持向量机 概述 @@ -14,14 +14,14 @@ * 要给左右两边的点进行分类 * 明显发现: 选择D会比B、C分隔的效果要好很多。 -![线性可分](http://data.apachecn.org/img/AiLearning/ml/6.SVM/SVM_3_linearly-separable.jpg) +![线性可分](img/SVM_3_linearly-separable.jpg) ## 支持向量机 原理 ### SVM 工作原理 -![k_2](http://data.apachecn.org/img/AiLearning/ml/6.SVM/k_2.jpg "k_2") +![k_2](img/k_2.jpg "k_2") 对于上述的苹果和香蕉,我们想象为2种水果类型的炸弹。(保证距离最近的炸弹,距离它们最远) @@ -32,7 +32,7 @@ * 数据可以通过画一条直线就可以将它们完全分开,这组数据叫`线性可分(linearly separable)`数据,而这条分隔直线称为`分隔超平面(separating hyperplane)`。 * 如果数据集上升到1024维呢?那么需要1023维来分隔数据集,也就说需要N-1维的对象来分隔,这个对象叫做`超平面(hyperlane)`,也就是分类的决策边界。 -![分隔超平面](http://data.apachecn.org/img/AiLearning/ml/6.SVM/SVM_2_separating-hyperplane.jpg) +![分隔超平面](img/SVM_2_separating-hyperplane.jpg) ### 寻找最大间隔 @@ -65,7 +65,7 @@ Support Vector Machines: Slide 12 Copyright © 2001, 2003, Andrew W. Moore Why M * 分类的结果: $$f(x)=sign(w^Tx+b)$$ (sign表示>0为1,<0为-1,=0为0) * 点到超平面的`几何间距`: $$d(x)=(w^Tx+b)/||w||$$ (||w||表示w矩阵的二范数=> $$\sqrt{w^T*w}$$, 点到超平面的距离也是类似的) -![点到直线的几何距离](http://data.apachecn.org/img/AiLearning/ml/6.SVM/SVM_4_point2line-distance.jpg) +![点到直线的几何距离](img/SVM_4_point2line-distance.jpg) > 拉格朗日乘子法 @@ -96,7 +96,7 @@ Support Vector Machines: Slide 12 Copyright © 2001, 2003, Andrew W. Moore Why M * 先求: $$min_{w, b} L(w,b,\alpha)=\frac{1}{2} * ||w||^2 + \sum_{i=1}^{n} \alpha_i * [1 - label * (w^Tx+b)]$$ * 就是求`L(w,b,a)`关于[w, b]的偏导数, 得到`w和b的值`,并化简为: `L和a的方程`。 * 参考: 如果公式推导还是不懂,也可以参考《统计学习方法》李航-P103<学习的对偶算法> - ![计算拉格朗日函数的对偶函数](http://data.apachecn.org/img/AiLearning/ml/6.SVM/SVM_5_Lagrangemultiplier.png) + ![计算拉格朗日函数的对偶函数](img/SVM_5_Lagrangemultiplier.png) * 终于得到课本上的公式: $$max_{\alpha} \left( \sum_{i=1}^{m} \alpha_i - \frac{1}{2} \sum_{i, j=1}^{m} label_i \ast label_j \ast \alpha_i \ast \alpha_j \ast \right) $$ * 约束条件: $$a>=0$$ 并且 $$\sum_{i=1}^{m} a_i \ast label_i=0$$ @@ -104,12 +104,12 @@ Support Vector Machines: Slide 12 Copyright © 2001, 2003, Andrew W. Moore Why M 参考地址: http://blog.csdn.net/wusecaiyun/article/details/49659183 -![松弛变量公式](http://data.apachecn.org/img/AiLearning/ml/6.SVM/SVM_松弛变量.jpg) +![松弛变量公式](img/SVM_松弛变量.jpg) * 我们知道几乎所有的数据都不那么干净, 通过引入松弛变量来 `允许数据点可以处于分隔面错误的一侧`。 * 约束条件: $$C>=a>=0$$ 并且 $$\sum_{i=1}^{m} a_i \ast label_i=0$$ * 总的来说: - * ![松弛变量](http://data.apachecn.org/img/AiLearning/ml/6.SVM/松弛变量.png) 表示 `松弛变量` + * ![松弛变量](img/松弛变量.png) 表示 `松弛变量` * 常量C是 `惩罚因子`, 表示离群点的权重(用于控制“最大化间隔”和“保证大部分点的函数间隔小于1.0” ) * $$label*(w^Tx+b) > 1$$ and alpha = 0 (在边界外,就是非支持向量) * $$label*(w^Tx+b) = 1$$ and 0< alpha < C (在分割超平面上,就支持向量) @@ -351,7 +351,7 @@ def smoSimple(dataMatIn, classLabels, C, toler, maxIter): * 核函数并不仅仅应用于支持向量机,很多其他的机器学习算法也都用到核函数。最流行的核函数: 径向基函数(radial basis function) * 径向基函数的高斯版本,其具体的公式为: -![径向基函数的高斯版本](http://data.apachecn.org/img/AiLearning/ml/6.SVM/SVM_6_radial-basis-function.jpg) +![径向基函数的高斯版本](img/SVM_6_radial-basis-function.jpg) ### 项目案例: 手写数字识别的优化(有核函数) diff --git a/docs/ml/7.md b/docs/ml/7.md index 2cc5ec1a28e24d6affdf711e3defe6f89af5dda8..fae1368b9106f5b7b3af86295dbba693925edf94 100644 --- a/docs/ml/7.md +++ b/docs/ml/7.md @@ -1,6 +1,6 @@ # 第7章 集成方法 ensemble method -![利用AdaBoost元算法提高分类](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/adaboost_headPage.jpg "利用AdaBoost元算法提高分类") +![利用AdaBoost元算法提高分类](img/adaboost_headPage.jpg "利用AdaBoost元算法提高分类") ## 集成方法: ensemble method(元算法: meta algorithm) 概述 @@ -52,7 +52,7 @@ 3. 然后统计子决策树的投票结果,得到最终的分类 就是 随机森林的输出结果。 4. 如下图,假设随机森林中有3棵子决策树,2棵子树的分类结果是A类,1棵子树的分类结果是B类,那么随机森林的分类结果就是A类。 -![数据重抽样](http://data.apachecn.org/img/AiLearning/ml/7.RandomForest/数据重抽样.jpg) +![数据重抽样](img/数据重抽样.jpg) > 待选特征的随机化 @@ -63,7 +63,7 @@ 左边是一棵决策树的特征选取过程,通过在待选特征中选取最优的分裂特征(别忘了前文提到的ID3算法,C4.5算法,CART算法等等),完成分裂。
右边是一个随机森林中的子树的特征选取过程。
-![特征重抽样](http://data.apachecn.org/img/AiLearning/ml/7.RandomForest/特征重抽样.jpg) +![特征重抽样](img/特征重抽样.jpg) > 随机森林 开发流程 @@ -317,7 +317,7 @@ def evaluate_algorithm(dataset, algorithm, n_folds, *args): > AdaBoost 工作原理 -![AdaBoost 工作原理](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/adaboost_illustration.png "AdaBoost 工作原理") +![AdaBoost 工作原理](img/adaboost_illustration.png "AdaBoost 工作原理") > AdaBoost 开发流程 @@ -344,7 +344,7 @@ def evaluate_algorithm(dataset, algorithm, n_folds, *args): > 项目流程图 -![AdaBoost代码流程图](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/adaboost_code-flow-chart.jpg "AdaBoost代码流程图") +![AdaBoost代码流程图](img/adaboost_code-flow-chart.jpg "AdaBoost代码流程图") 基于单层决策树构建弱分类器 * 单层决策树(decision stump, 也称决策树桩)是一种简单的决策树。 @@ -399,11 +399,11 @@ def loadDataSet(fileName): 过拟合(overfitting, 也称为过学习) * 发现测试错误率在达到一个最小值之后有开始上升,这种现象称为过拟合。 -![过拟合](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/过拟合.png) +![过拟合](img/过拟合.png) * 通俗来说: 就是把一些噪音数据也拟合进去的,如下图。 -![过拟合](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/过拟合图解.png) +![过拟合](img/过拟合图解.png) > 训练算法: 在数据上,利用 adaBoostTrainDS() 函数训练出一系列的分类器 @@ -466,7 +466,7 @@ D (样本权重)的目的是为了计算错误概率: weightedError = D.T*e 样本的权重值: 如果一个值误判的几率越小,那么 D 的样本权重越小 ``` -![AdaBoost算法权重计算公式](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/adaboost_alpha.png "AdaBoost算法权重计算公式") +![AdaBoost算法权重计算公式](img/adaboost_alpha.png "AdaBoost算法权重计算公式") > 测试算法: 我们拥有两个数据集。在不采用随机抽样的方法下,我们就会对 AdaBoost 和 Logistic 回归的结果进行完全对等的比较。 @@ -556,7 +556,7 @@ ROC Curves * ROC 曲线: 最佳的分类器应该尽可能地处于左上角 -![ROC曲线](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/ROC曲线.png) +![ROC曲线](img/ROC曲线.png) * 对不同的 ROC 曲线进行比较的一个指标是曲线下的面积(Area Unser the Curve, AUC). @@ -615,7 +615,7 @@ python实现可以查阅[UnbalancedDataset](https://github.com/scikit-learn-cont * 基于代价函数的分类器决策控制: `TP*(-5)+FN*1+FP*50+TN*0` -![代价函数](http://data.apachecn.org/img/AiLearning/ml/7.AdaBoost/代价函数.png) +![代价函数](img/代价函数.png) 这种方式叫做 cost sensitive learning,Weka 中相应的框架可以实现叫[CostSensitiveClassifier](http://weka.sourceforge.net/doc.dev/weka/classifiers/meta/CostSensitiveClassifier.html) diff --git a/docs/ml/8.md b/docs/ml/8.md index ff9c60f8c93855d25bfb672e739648047fb6888b..bf00245712f6814bbdb6bfba7953aa11cc672c70 100644 --- a/docs/ml/8.md +++ b/docs/ml/8.md @@ -1,7 +1,7 @@ # 第8章 预测数值型数据: 回归 -![预测数值型数据回归首页](http://data.apachecn.org/img/AiLearning/ml/8.Regression/预测数值型数据回归首页.png "回归Regression首页") +![预测数值型数据回归首页](img/预测数值型数据回归首页.png "回归Regression首页") ## 回归(Regression) 概述 @@ -30,11 +30,11 @@ HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio 平方误差可以写做(其实我们是使用这个函数作为 loss function): -![平方误差](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_18.png) +![平方误差](img/LinearR_18.png) -用矩阵表示还可以写做 ![平方误差_2](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_19.png) 。如果对 w 求导,得到 ![平方误差_3](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_20.png) ,令其等于零,解出 w 如下(具体求导过程为: http://blog.csdn.net/nomadlx53/article/details/50849941 ): +用矩阵表示还可以写做 ![平方误差_2](img/LinearR_19.png) 。如果对 w 求导,得到 ![平方误差_3](img/LinearR_20.png) ,令其等于零,解出 w 如下(具体求导过程为: http://blog.csdn.net/nomadlx53/article/details/50849941 ): -![回归系数的最佳估计计算公式](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_1.png) +![回归系数的最佳估计计算公式](img/LinearR_1.png) #### 1.1、线性回归 须知概念 @@ -42,7 +42,7 @@ HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio 因为我们在计算回归方程的回归系数时,用到的计算公式如下: -![回归系数的最佳估计计算公式](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_1.png) +![回归系数的最佳估计计算公式](img/LinearR_1.png) 需要对矩阵求逆,因此这个方程只在逆矩阵存在的时候适用,我们在程序代码中对此作出判断。 判断矩阵是否可逆的一个可选方案是: @@ -88,7 +88,7 @@ HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio 根据下图中的点,找出该数据的最佳拟合直线。 -![线性回归数据示例图](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_2.png "线性回归数据示例图") +![线性回归数据示例图](img/LinearR_2.png "线性回归数据示例图") 数据格式为: @@ -178,7 +178,7 @@ def regression1(): ##### 1.5.3、线性回归 拟合效果 -![线性回归数据效果图](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_3.png "线性回归数据效果图") +![线性回归数据效果图](img/LinearR_3.png "线性回归数据效果图") ### 2、局部加权线性回归 @@ -187,21 +187,21 @@ def regression1(): 一个方法是局部加权线性回归(Locally Weighted Linear Regression,LWLR)。在这个算法中,我们给预测点附近的每个点赋予一定的权重,然后与 线性回归 类似,在这个子集上基于最小均方误差来进行普通的回归。我们需要最小化的目标函数大致为: -![局部加权线性回归回归系数公式](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_21.png) +![局部加权线性回归回归系数公式](img/LinearR_21.png) 目标函数中 w 为权重,不是回归系数。与 kNN 一样,这种算法每次预测均需要事先选取出对应的数据子集。该算法解出回归系数 w 的形式如下: -![局部加权线性回归回归系数公式](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_4.png) +![局部加权线性回归回归系数公式](img/LinearR_4.png) 其中 W 是一个矩阵,用来给每个数据点赋予权重。$\hat{w}$ 则为回归系数。 这两个是不同的概念,请勿混用。 LWLR 使用 “核”(与支持向量机中的核类似)来对附近的点赋予更高的权重。核的类型可以自由选择,最常用的核就是高斯核,高斯核对应的权重如下: -![局部加权线性回归高斯核](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_23.png) +![局部加权线性回归高斯核](img/LinearR_23.png) 这样就构建了一个只含对角元素的权重矩阵 **w**,并且点 x 与 x(i) 越近,w(i) 将会越大。上述公式中包含一个需要用户指定的参数 k ,它决定了对附近的点赋予多大的权重,这也是使用 LWLR 时唯一需要考虑的参数,下面的图给出了参数 k 与权重的关系。 -![参数k与权重的关系](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_6.png) +![参数k与权重的关系](img/LinearR_6.png) 上面的图是 每个点的权重图(假定我们正预测的点是 x = 0.5),最上面的图是原始数据集,第二个图显示了当 k = 0.5 时,大部分的数据都用于训练回归模型;而最下面的图显示当 k=0.01 时,仅有很少的局部点被用于训练回归模型。 @@ -222,7 +222,7 @@ LWLR 使用 “核”(与支持向量机中的核类似)来对附近的点 我们仍然使用上面 线性回归 的数据集,对这些点进行一个 局部加权线性回归 的拟合。 -![局部加权线性回归数据示例图](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_2.png) +![局部加权线性回归数据示例图](img/LinearR_2.png) 数据格式为: @@ -340,7 +340,7 @@ def regression2(): ##### 2.2.3、局部加权线性回归 拟合效果 -![局部加权线性回归数据效果图](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_7.png) +![局部加权线性回归数据效果图](img/LinearR_7.png) 上图使用了 3 种不同平滑值绘出的局部加权线性回归的结果。上图中的平滑系数 k =1.0,中图 k = 0.01,下图 k = 0.003 。可以看到,k = 1.0 时的使所有数据等比重,其模型效果与基本的线性回归相同,k=0.01时该模型可以挖出数据的潜在规律,而 k=0.003时则考虑了太多的噪声,进而导致了过拟合现象。 @@ -452,7 +452,7 @@ def abaloneTest(): ### 4、缩减系数来 “理解” 数据 -如果数据的特征比样本点还多应该怎么办?是否还可以使用线性回归和之前的方法来做预测?答案是否定的,即我们不能再使用前面介绍的方法。这是因为在计算 ![矩阵求逆](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_8.png) 的时候会出错。 +如果数据的特征比样本点还多应该怎么办?是否还可以使用线性回归和之前的方法来做预测?答案是否定的,即我们不能再使用前面介绍的方法。这是因为在计算 ![矩阵求逆](img/LinearR_8.png) 的时候会出错。 如果特征比样本点还多(n > m),也就是说输入数据的矩阵 x 不是满秩矩阵。非满秩矩阵求逆时会出现问题。 @@ -460,14 +460,14 @@ def abaloneTest(): #### 4.1、岭回归 -简单来说,岭回归就是在矩阵 ![矩阵_1](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_9.png) 上加一个 λI 从而使得矩阵非奇异,进而能对 ![矩阵_2](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_10.png ) 求逆。其中矩阵I是一个 n * n (等于列数) 的单位矩阵, +简单来说,岭回归就是在矩阵 ![矩阵_1](img/LinearR_9.png) 上加一个 λI 从而使得矩阵非奇异,进而能对 ![矩阵_2](img/LinearR_10.png ) 求逆。其中矩阵I是一个 n * n (等于列数) 的单位矩阵, 对角线上元素全为1,其他元素全为0。而λ是一个用户定义的数值,后面会做介绍。在这种情况下,回归系数的计算公式将变成: -![岭回归的回归系数计算](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_11.png ) +![岭回归的回归系数计算](img/LinearR_11.png ) 岭回归最先用来处理特征数多于样本数的情况,现在也用于在估计中加入偏差,从而得到更好的估计。这里通过引入 λ 来限制了所有 w 之和,通过引入该惩罚项,能够减少不重要的参数,这个技术在统计学中也叫作 `缩减(shrinkage)`。 -![岭回归](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_22.png) +![岭回归](img/LinearR_22.png) 缩减方法可以去掉不重要的参数,因此能更好地理解数据。此外,与简单的线性回归相比,缩减法能取得更好的预测效果。 @@ -551,7 +551,7 @@ def regression3(): ##### 4.1.2、岭回归在鲍鱼数据集上的运行效果 -![岭回归的运行效果](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_12.png) +![岭回归的运行效果](img/LinearR_12.png) 上图绘制出了回归系数与 log(λ) 的关系。在最左边,即 λ 最小时,可以得到所有系数的原始值(与线性回归一致);而在右边,系数全部缩减为0;在中间部分的某值将可以取得最好的预测效果。为了定量地找到最佳参数值,还需要进行交叉验证。另外,要判断哪些变量对结果预测最具有影响力,在上图中观察它们对应的系数大小就可以了。 @@ -560,13 +560,13 @@ def regression3(): 在增加如下约束时,普通的最小二乘法回归会得到与岭回归一样的公式: -![lasso_1](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_13.png) +![lasso_1](img/LinearR_13.png) 上式限定了所有回归系数的平方和不能大于 λ 。使用普通的最小二乘法回归在当两个或更多的特征相关时,可能会得到一个很大的正系数和一个很大的负系数。正是因为上述限制条件的存在,使用岭回归可以避免这个问题。 与岭回归类似,另一个缩减方法lasso也对回归系数做了限定,对应的约束条件如下: -![lasso_2](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_14.png) +![lasso_2](img/LinearR_14.png) 唯一的不同点在于,这个约束条件使用绝对值取代了平方和。虽然约束形式只是稍作变化,结果却大相径庭: 在 λ 足够小的时候,一些系数会因此被迫缩减到 0.这个特性可以帮助我们更好地理解数据。 @@ -633,7 +633,7 @@ def regression4(): ##### 4.3.2、逐步线性回归在鲍鱼数据集上的运行效果 -![逐步线性回归运行效果](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_15.png) +![逐步线性回归运行效果](img/LinearR_15.png) 逐步线性回归算法的主要优点在于它可以帮助人们理解现有的模型并作出改进。当构建了一个模型后,可以运行该算法找出重要的特征,这样就有可能及时停止对那些不重要特征的收集。最后,如果用于测试,该算法每100次迭代后就可以构建出一个模型,可以使用类似于10折交叉验证的方法比较这些模型,最终选择使误差最小的模型。 @@ -646,13 +646,13 @@ def regression4(): 任何时候,一旦发现模型和测量值之间存在差异,就说出现了误差。当考虑模型中的 “噪声” 或者说误差时,必须考虑其来源。你可能会对复杂的过程进行简化,这将导致在模型和测量值之间出现 “噪声” 或误差,若无法理解数据的真实生成过程,也会导致差异的产生。另外,测量过程本身也可能产生 “噪声” 或者问题。下面我们举一个例子,我们使用 `线性回归` 和 `局部加权线性回归` 处理过一个从文件导入的二维数据。 -![生成公式](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_16.png) +![生成公式](img/LinearR_16.png) 其中的 N(0, 1) 是一个均值为 0、方差为 1 的正态分布。我们尝试过仅用一条直线来拟合上述数据。不难想到,直线所能得到的最佳拟合应该是 3.0+1.7x 这一部分。这样的话,误差部分就是 0.1sin(30x)+0.06N(0, 1) 。在上面,我们使用了局部加权线性回归来试图捕捉数据背后的结构。该结构拟合起来有一定的难度,因此我们测试了多组不同的局部权重来找到具有最小测试误差的解。 下图给出了训练误差和测试误差的曲线图,上面的曲面就是测试误差,下面的曲线是训练误差。我们根据 预测鲍鱼年龄 的实验知道: 如果降低核的大小,那么训练误差将变小。从下图开看,从左到右就表示了核逐渐减小的过程。 -![偏差方差图](http://data.apachecn.org/img/AiLearning/ml/8.Regression/LinearR_17.png) +![偏差方差图](img/LinearR_17.png) 一般认为,上述两种误差由三个部分组成: 偏差、测量误差和随机噪声。局部加权线性回归 和 预测鲍鱼年龄 中,我们通过引入了三个越来越小的核来不断增大模型的方差。 diff --git a/docs/ml/9.md b/docs/ml/9.md index 644022d1e6a5383e989c19f799a6975620168e46..de99b8af747c6ba086bb3b7e89a2c57fd54fbaf3 100644 --- a/docs/ml/9.md +++ b/docs/ml/9.md @@ -1,7 +1,7 @@ # 第9章 树回归 -![预测数值型数据回归首页](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/TreeRegression_headPage_xy.png "树回归首页") +![预测数值型数据回归首页](img/TreeRegression_headPage_xy.png "树回归首页") ## 树回归 概述 @@ -124,10 +124,10 @@ data1.txt 文件中存储的数据格式如下: > 分析数据: 绘出数据的二维可视化显示结果,以字典方式生成树 基于 CART 算法构建回归树的简单数据集 -![基于 CART 算法构建回归树的简单数据集](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/RegTree_1.png) +![基于 CART 算法构建回归树的简单数据集](img/RegTree_1.png) 用于测试回归树的分段常数数据集 -![用于测试回归树的分段常数数据集](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/RegTree_2.png) +![用于测试回归树的分段常数数据集](img/RegTree_2.png) > 训练算法: 构造树的数据结构 @@ -376,7 +376,7 @@ def prune(tree, testData): 决策树相比于其他机器学习算法的优势之一在于结果更易理解。很显然,两条直线比很多节点组成一棵大树更容易解释。模型树的可解释性是它优于回归树的特点之一。另外,模型树也具有更高的预测准确度。 -![分段线性数据](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/RegTree_3.png) +![分段线性数据](img/RegTree_3.png) 将之前的回归树的代码稍作修改,就可以在叶节点生成线性模型而不是常数值。下面将利用树生成算法对数据进行划分,且每份切分数据都能很容易被线性模型所表示。这个算法的关键在于误差的计算。 @@ -451,7 +451,7 @@ def linearSolve(dataSet): ### 3.3、模型树 运行结果 -![模型树运行结果](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/RegTree_4.png) +![模型树运行结果](img/RegTree_4.png) ## 4、树回归 项目案例 @@ -490,7 +490,7 @@ def linearSolve(dataSet): > 分析数据: 绘出数据的二维可视化显示结果,以字典方式生成树 -![骑自行车速度和智商之间的关系](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/RegTree_5.png) +![骑自行车速度和智商之间的关系](img/RegTree_5.png) > 训练算法: 模型树的构建 @@ -598,7 +598,7 @@ R^2 判定系数就是拟合优度判定系数,它体现了回归模型中自 如果能让用户不需要任何指令就可以按照他们自己的方式来分析数据,就不需要对数据做出过多解释。其中一个能同时支持数据呈现和用户交互的方式就是构建一个图形用户界面(GUI,Graphical User Interface),如图9-7所示。 -![GUI示例图](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/GUI示例图.png "GUI示例图") +![GUI示例图](img/GUI示例图.png "GUI示例图") ### 5.2、用 Tkinter 创建 GUI @@ -613,7 +613,7 @@ MatPlotlib 的构建程序包含一个前端,也就是面向用户的一些代 ### 5.4、用treeExplore 的GUI构建的模型树示例图 -![取得更好预测效果的GUI示例图](http://data.apachecn.org/img/AiLearning/ml/9.TreeRegression/GUI更好的示例图.png "取得更好预测效果的GUI示例图") +![取得更好预测效果的GUI示例图](img/GUI更好的示例图.png "取得更好预测效果的GUI示例图") [完整代码地址](https://github.com/apachecn/AiLearning/blob/master/src/py2.x/ml/9.RegTrees/treeExplore.py): diff --git "a/docs/ml/img/Apriori\346\265\201\347\250\213\345\233\276.png" "b/docs/ml/img/Apriori\346\265\201\347\250\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..73be79214b46e81ce22ce52c4bdf8b995b286014 Binary files /dev/null and "b/docs/ml/img/Apriori\346\265\201\347\250\213\345\233\276.png" differ diff --git "a/docs/ml/img/CART\346\236\204\345\273\272\346\225\260\346\215\256\351\233\206\345\233\236\345\275\222\346\240\221\347\232\204\347\256\200\345\215\225\346\225\260\346\215\256\351\233\206.png" "b/docs/ml/img/CART\346\236\204\345\273\272\346\225\260\346\215\256\351\233\206\345\233\236\345\275\222\346\240\221\347\232\204\347\256\200\345\215\225\346\225\260\346\215\256\351\233\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..e68263bf52385f060ae971b4255b0c482a176bd5 Binary files /dev/null and "b/docs/ml/img/CART\346\236\204\345\273\272\346\225\260\346\215\256\351\233\206\345\233\236\345\275\222\346\240\221\347\232\204\347\256\200\345\215\225\346\225\260\346\215\256\351\233\206.png" differ diff --git "a/docs/ml/img/DT_\346\265\267\346\264\213\347\224\237\347\211\251\346\225\260\346\215\256.png" "b/docs/ml/img/DT_\346\265\267\346\264\213\347\224\237\347\211\251\346\225\260\346\215\256.png" new file mode 100644 index 0000000000000000000000000000000000000000..bb60df7511a7faa60abc599f21c5417d514564da Binary files /dev/null and "b/docs/ml/img/DT_\346\265\267\346\264\213\347\224\237\347\211\251\346\225\260\346\215\256.png" differ diff --git a/docs/ml/img/DecisionTree_headPage_xy.png b/docs/ml/img/DecisionTree_headPage_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..07196bf9dad49808d4cf5886f96c4d7b14318988 Binary files /dev/null and b/docs/ml/img/DecisionTree_headPage_xy.png differ diff --git a/docs/ml/img/DecisionTree_headpage.jpg b/docs/ml/img/DecisionTree_headpage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..501ec538e2bff0c0d77a7821ec6e28bd8b1123df Binary files /dev/null and b/docs/ml/img/DecisionTree_headpage.jpg differ diff --git "a/docs/ml/img/GUI\346\233\264\345\245\275\347\232\204\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/GUI\346\233\264\345\245\275\347\232\204\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..83b3563f0be285cf1e201c6ba6dd8fec6a812036 Binary files /dev/null and "b/docs/ml/img/GUI\346\233\264\345\245\275\347\232\204\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/GUI\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/GUI\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..4ee5bd3ef13325eef089182112a4193441d10d2c Binary files /dev/null and "b/docs/ml/img/GUI\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/K-Means_\351\246\226\351\241\265.jpg" "b/docs/ml/img/K-Means_\351\246\226\351\241\265.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..5aae20148754ae33592e0e4f48266cba36f9088b Binary files /dev/null and "b/docs/ml/img/K-Means_\351\246\226\351\241\265.jpg" differ diff --git a/docs/ml/img/LR_1.png b/docs/ml/img/LR_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c0958400646651fcf19a1dad0a92e2092ebbcbf1 Binary files /dev/null and b/docs/ml/img/LR_1.png differ diff --git a/docs/ml/img/LR_10.png b/docs/ml/img/LR_10.png new file mode 100644 index 0000000000000000000000000000000000000000..36b1c926858ecbcd7cd2b370e3986d9fe243de92 Binary files /dev/null and b/docs/ml/img/LR_10.png differ diff --git a/docs/ml/img/LR_11.png b/docs/ml/img/LR_11.png new file mode 100644 index 0000000000000000000000000000000000000000..4daf37e488412d365da2db10b4d258477bbd36f9 Binary files /dev/null and b/docs/ml/img/LR_11.png differ diff --git a/docs/ml/img/LR_12.png b/docs/ml/img/LR_12.png new file mode 100644 index 0000000000000000000000000000000000000000..401d5bcc138033be5952c5e333717dc64294fddb Binary files /dev/null and b/docs/ml/img/LR_12.png differ diff --git a/docs/ml/img/LR_13.png b/docs/ml/img/LR_13.png new file mode 100644 index 0000000000000000000000000000000000000000..febdb0df7e8075b34dbaa474e18ee2241ccaae12 Binary files /dev/null and b/docs/ml/img/LR_13.png differ diff --git a/docs/ml/img/LR_14.png b/docs/ml/img/LR_14.png new file mode 100644 index 0000000000000000000000000000000000000000..b951acdfab316cf11d144a5dcbb439c818474782 Binary files /dev/null and b/docs/ml/img/LR_14.png differ diff --git a/docs/ml/img/LR_15.png b/docs/ml/img/LR_15.png new file mode 100644 index 0000000000000000000000000000000000000000..1f2fa21ca29fe5db7ba24a914fa57893db67cdbc Binary files /dev/null and b/docs/ml/img/LR_15.png differ diff --git a/docs/ml/img/LR_16.png b/docs/ml/img/LR_16.png new file mode 100644 index 0000000000000000000000000000000000000000..2b58d011895edddd09293ed2aa48d574719c9659 Binary files /dev/null and b/docs/ml/img/LR_16.png differ diff --git a/docs/ml/img/LR_17.png b/docs/ml/img/LR_17.png new file mode 100644 index 0000000000000000000000000000000000000000..c50c97a1753ae4dcaaf4f982d8fc97d14eececf4 Binary files /dev/null and b/docs/ml/img/LR_17.png differ diff --git a/docs/ml/img/LR_18.png b/docs/ml/img/LR_18.png new file mode 100644 index 0000000000000000000000000000000000000000..263d5dbaac1d95b6e88d26a5b903b7b08688c9ee Binary files /dev/null and b/docs/ml/img/LR_18.png differ diff --git a/docs/ml/img/LR_19.png b/docs/ml/img/LR_19.png new file mode 100644 index 0000000000000000000000000000000000000000..f3074396c493b3a91fa649a088af3d74bff0b1f9 Binary files /dev/null and b/docs/ml/img/LR_19.png differ diff --git a/docs/ml/img/LR_2.png b/docs/ml/img/LR_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e249e6ab1b1fa6b3fabaccace3c1368d507feb2b Binary files /dev/null and b/docs/ml/img/LR_2.png differ diff --git a/docs/ml/img/LR_20.png b/docs/ml/img/LR_20.png new file mode 100644 index 0000000000000000000000000000000000000000..4f2add059a3a18135d8110d52e32f3343caaad85 Binary files /dev/null and b/docs/ml/img/LR_20.png differ diff --git a/docs/ml/img/LR_21.png b/docs/ml/img/LR_21.png new file mode 100644 index 0000000000000000000000000000000000000000..2fd2b2d2836331960900de9bf39fb485b02edec6 Binary files /dev/null and b/docs/ml/img/LR_21.png differ diff --git a/docs/ml/img/LR_3.png b/docs/ml/img/LR_3.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1f3f1f0599643881bc1cbadf423ea961caf3e4 Binary files /dev/null and b/docs/ml/img/LR_3.png differ diff --git a/docs/ml/img/LR_4.png b/docs/ml/img/LR_4.png new file mode 100644 index 0000000000000000000000000000000000000000..4e60fc4a0e6e529c27cc0b32d36c01b59213d4d7 Binary files /dev/null and b/docs/ml/img/LR_4.png differ diff --git a/docs/ml/img/LR_5.png b/docs/ml/img/LR_5.png new file mode 100644 index 0000000000000000000000000000000000000000..1a56555601838a6a301ac2449ca0eb19a6390886 Binary files /dev/null and b/docs/ml/img/LR_5.png differ diff --git a/docs/ml/img/LR_6.png b/docs/ml/img/LR_6.png new file mode 100644 index 0000000000000000000000000000000000000000..7c96bf70ed4a45e5f217a32c2f58fdcc62e58370 Binary files /dev/null and b/docs/ml/img/LR_6.png differ diff --git a/docs/ml/img/LR_7.png b/docs/ml/img/LR_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6d033f80204f3ad3253fd016d0b388226b3eb9f4 Binary files /dev/null and b/docs/ml/img/LR_7.png differ diff --git a/docs/ml/img/LR_8.png b/docs/ml/img/LR_8.png new file mode 100644 index 0000000000000000000000000000000000000000..a0550894a9c7ea7fb05c07802cf15534fbd740e6 Binary files /dev/null and b/docs/ml/img/LR_8.png differ diff --git a/docs/ml/img/LR_9.png b/docs/ml/img/LR_9.png new file mode 100644 index 0000000000000000000000000000000000000000..6d3d951f4a7f32ccf9dec0901fa1224a90370841 Binary files /dev/null and b/docs/ml/img/LR_9.png differ diff --git a/docs/ml/img/LinearR_1.png b/docs/ml/img/LinearR_1.png new file mode 100644 index 0000000000000000000000000000000000000000..45f5f73b062bc2e38ed2fe163f03e8387dab5fc2 Binary files /dev/null and b/docs/ml/img/LinearR_1.png differ diff --git a/docs/ml/img/LinearR_10.png b/docs/ml/img/LinearR_10.png new file mode 100644 index 0000000000000000000000000000000000000000..5c697c3b991487bf0271e170e5ee2769b254a2e8 Binary files /dev/null and b/docs/ml/img/LinearR_10.png differ diff --git a/docs/ml/img/LinearR_11.png b/docs/ml/img/LinearR_11.png new file mode 100644 index 0000000000000000000000000000000000000000..8686aa8d506b888251c6f370d394b6db446d61ae Binary files /dev/null and b/docs/ml/img/LinearR_11.png differ diff --git a/docs/ml/img/LinearR_12.png b/docs/ml/img/LinearR_12.png new file mode 100644 index 0000000000000000000000000000000000000000..63112ac3765f28fa368bd997ca517d30683252fa Binary files /dev/null and b/docs/ml/img/LinearR_12.png differ diff --git a/docs/ml/img/LinearR_13.png b/docs/ml/img/LinearR_13.png new file mode 100644 index 0000000000000000000000000000000000000000..b8867b363d4dadd1efb8016a4e188d727c26b4a7 Binary files /dev/null and b/docs/ml/img/LinearR_13.png differ diff --git a/docs/ml/img/LinearR_14.png b/docs/ml/img/LinearR_14.png new file mode 100644 index 0000000000000000000000000000000000000000..4752e0b4ad8ff7edd066589ce73b48e7e4d3c5ef Binary files /dev/null and b/docs/ml/img/LinearR_14.png differ diff --git a/docs/ml/img/LinearR_15.png b/docs/ml/img/LinearR_15.png new file mode 100644 index 0000000000000000000000000000000000000000..ac76091e7813b8d1f1ff6bed672eac95624daa80 Binary files /dev/null and b/docs/ml/img/LinearR_15.png differ diff --git a/docs/ml/img/LinearR_16.png b/docs/ml/img/LinearR_16.png new file mode 100644 index 0000000000000000000000000000000000000000..c798ec7c41f822b225fd30d65ff39997ed39b07d Binary files /dev/null and b/docs/ml/img/LinearR_16.png differ diff --git a/docs/ml/img/LinearR_17.png b/docs/ml/img/LinearR_17.png new file mode 100644 index 0000000000000000000000000000000000000000..7573a4d2d93ba5e8c8d49f02f4fa25c0644e9cec Binary files /dev/null and b/docs/ml/img/LinearR_17.png differ diff --git a/docs/ml/img/LinearR_18.png b/docs/ml/img/LinearR_18.png new file mode 100644 index 0000000000000000000000000000000000000000..d1756b2b25d266b87b2b80951f859e08fb71c796 Binary files /dev/null and b/docs/ml/img/LinearR_18.png differ diff --git a/docs/ml/img/LinearR_19.png b/docs/ml/img/LinearR_19.png new file mode 100644 index 0000000000000000000000000000000000000000..40a2c9a1f294cf85d03597fd7f4e5cc52a2400f5 Binary files /dev/null and b/docs/ml/img/LinearR_19.png differ diff --git a/docs/ml/img/LinearR_2.png b/docs/ml/img/LinearR_2.png new file mode 100644 index 0000000000000000000000000000000000000000..71f63f3f518dd382ae07ff9876a1c8bbd65ce340 Binary files /dev/null and b/docs/ml/img/LinearR_2.png differ diff --git a/docs/ml/img/LinearR_20.png b/docs/ml/img/LinearR_20.png new file mode 100644 index 0000000000000000000000000000000000000000..5e7de24e55a6f5151cd59500b4078354d6fa8126 Binary files /dev/null and b/docs/ml/img/LinearR_20.png differ diff --git a/docs/ml/img/LinearR_21.png b/docs/ml/img/LinearR_21.png new file mode 100644 index 0000000000000000000000000000000000000000..6969dfdd9df5232b4fb61fa42443142c3e04a482 Binary files /dev/null and b/docs/ml/img/LinearR_21.png differ diff --git a/docs/ml/img/LinearR_22.png b/docs/ml/img/LinearR_22.png new file mode 100644 index 0000000000000000000000000000000000000000..3d92a2a603268d18461a1130d3a4f2269cfcf59f Binary files /dev/null and b/docs/ml/img/LinearR_22.png differ diff --git a/docs/ml/img/LinearR_23.png b/docs/ml/img/LinearR_23.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0b320398fdf2fe7bd7ca8f90c5c35edbe71f0b Binary files /dev/null and b/docs/ml/img/LinearR_23.png differ diff --git a/docs/ml/img/LinearR_3.png b/docs/ml/img/LinearR_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a2119a968c969e5ce4d0386ec2ee9e641b5d6e Binary files /dev/null and b/docs/ml/img/LinearR_3.png differ diff --git a/docs/ml/img/LinearR_4.png b/docs/ml/img/LinearR_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ffda2d38da2c3459091562f45bb2d87e7fad353c Binary files /dev/null and b/docs/ml/img/LinearR_4.png differ diff --git a/docs/ml/img/LinearR_5.png b/docs/ml/img/LinearR_5.png new file mode 100644 index 0000000000000000000000000000000000000000..4581e997600834597833fd77604b2aaf206c6a5c Binary files /dev/null and b/docs/ml/img/LinearR_5.png differ diff --git a/docs/ml/img/LinearR_6.png b/docs/ml/img/LinearR_6.png new file mode 100644 index 0000000000000000000000000000000000000000..35223a63bee0f04cd93ac1b337b8a38e0445c474 Binary files /dev/null and b/docs/ml/img/LinearR_6.png differ diff --git a/docs/ml/img/LinearR_7.png b/docs/ml/img/LinearR_7.png new file mode 100644 index 0000000000000000000000000000000000000000..7d6218117a872922a062bcf979941c4ece3f333b Binary files /dev/null and b/docs/ml/img/LinearR_7.png differ diff --git a/docs/ml/img/LinearR_8.png b/docs/ml/img/LinearR_8.png new file mode 100644 index 0000000000000000000000000000000000000000..a334c57cebb0d0ecf72a27c13ea4894e0bcee86c Binary files /dev/null and b/docs/ml/img/LinearR_8.png differ diff --git a/docs/ml/img/LinearR_9.png b/docs/ml/img/LinearR_9.png new file mode 100644 index 0000000000000000000000000000000000000000..fad03c16bba63aeadde37183b3f0c92ce4291a09 Binary files /dev/null and b/docs/ml/img/LinearR_9.png differ diff --git a/docs/ml/img/LogisticRegression_headPage_xy.png b/docs/ml/img/LogisticRegression_headPage_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..c919aab24261cf4fc6249ea3eb760a438310a22b Binary files /dev/null and b/docs/ml/img/LogisticRegression_headPage_xy.png differ diff --git "a/docs/ml/img/Logistic\345\233\236\345\275\222Sigmoid\345\207\275\346\225\260.png" "b/docs/ml/img/Logistic\345\233\236\345\275\222Sigmoid\345\207\275\346\225\260.png" new file mode 100644 index 0000000000000000000000000000000000000000..a7ef93a6ad5509ee6c85a3384c8711df88b442ea Binary files /dev/null and "b/docs/ml/img/Logistic\345\233\236\345\275\222Sigmoid\345\207\275\346\225\260.png" differ diff --git "a/docs/ml/img/Logistic\345\233\236\345\275\222\351\246\226\351\241\265.png" "b/docs/ml/img/Logistic\345\233\236\345\275\222\351\246\226\351\241\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..03ffd3032d9adc50281d62ceb0c3d26efe3de0f8 Binary files /dev/null and "b/docs/ml/img/Logistic\345\233\236\345\275\222\351\246\226\351\241\265.png" differ diff --git "a/docs/ml/img/Matplotlib\347\273\230\345\210\266\346\240\221\345\275\242\345\233\276.png" "b/docs/ml/img/Matplotlib\347\273\230\345\210\266\346\240\221\345\275\242\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..09141e776362f7d36e905fbabcae9fc8a6e99378 Binary files /dev/null and "b/docs/ml/img/Matplotlib\347\273\230\345\210\266\346\240\221\345\275\242\345\233\276.png" differ diff --git a/docs/ml/img/NB_2.png b/docs/ml/img/NB_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a9413f694692f83e02d2da7c01b8efc22270b2b Binary files /dev/null and b/docs/ml/img/NB_2.png differ diff --git a/docs/ml/img/NB_3.png b/docs/ml/img/NB_3.png new file mode 100644 index 0000000000000000000000000000000000000000..9088e937a1167c1acc5993afad69a70ccf43cf14 Binary files /dev/null and b/docs/ml/img/NB_3.png differ diff --git a/docs/ml/img/NB_4.png b/docs/ml/img/NB_4.png new file mode 100644 index 0000000000000000000000000000000000000000..84dac1f1e3fa5be7db3eb23b90a6fb7d889f756a Binary files /dev/null and b/docs/ml/img/NB_4.png differ diff --git a/docs/ml/img/NB_5.png b/docs/ml/img/NB_5.png new file mode 100644 index 0000000000000000000000000000000000000000..afaa84943322b07fdeebcc5cf3b3999dc892dbdf Binary files /dev/null and b/docs/ml/img/NB_5.png differ diff --git a/docs/ml/img/NB_6.png b/docs/ml/img/NB_6.png new file mode 100644 index 0000000000000000000000000000000000000000..1d70e10a5580902bedc0c0a2047330f20480af4b Binary files /dev/null and b/docs/ml/img/NB_6.png differ diff --git a/docs/ml/img/NB_7.png b/docs/ml/img/NB_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6e28fc4ad587022814c1507c562e0d2750283d95 Binary files /dev/null and b/docs/ml/img/NB_7.png differ diff --git a/docs/ml/img/NavieBayesian_headPage_xy.png b/docs/ml/img/NavieBayesian_headPage_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..91c8868601bae33416bfd90615fcd9a44ef75042 Binary files /dev/null and b/docs/ml/img/NavieBayesian_headPage_xy.png differ diff --git "a/docs/ml/img/PCA\345\210\206\346\236\220\346\225\260\346\215\256\350\277\207\347\250\213.jpg" "b/docs/ml/img/PCA\345\210\206\346\236\220\346\225\260\346\215\256\350\277\207\347\250\213.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..03013f57d9ccc1b28db168acc2aaf8e7bff8cc55 Binary files /dev/null and "b/docs/ml/img/PCA\345\210\206\346\236\220\346\225\260\346\215\256\350\277\207\347\250\213.jpg" differ diff --git "a/docs/ml/img/ROC\346\233\262\347\272\277.png" "b/docs/ml/img/ROC\346\233\262\347\272\277.png" new file mode 100644 index 0000000000000000000000000000000000000000..4edac10940214904aade6a3130e3bb0b28c25e27 Binary files /dev/null and "b/docs/ml/img/ROC\346\233\262\347\272\277.png" differ diff --git a/docs/ml/img/RegTree_1.png b/docs/ml/img/RegTree_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3a409b1d5159aafbbd8fd84c08850c355979a049 Binary files /dev/null and b/docs/ml/img/RegTree_1.png differ diff --git a/docs/ml/img/RegTree_2.png b/docs/ml/img/RegTree_2.png new file mode 100644 index 0000000000000000000000000000000000000000..041b763c6f81481ea5ad45dad85df796e105ec0c Binary files /dev/null and b/docs/ml/img/RegTree_2.png differ diff --git a/docs/ml/img/RegTree_3.png b/docs/ml/img/RegTree_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a721d2997f5675b1664d1e5aac7698391a524c Binary files /dev/null and b/docs/ml/img/RegTree_3.png differ diff --git a/docs/ml/img/RegTree_4.png b/docs/ml/img/RegTree_4.png new file mode 100644 index 0000000000000000000000000000000000000000..beb930af7b03c3a700289fdbee4dcfe5d755e38e Binary files /dev/null and b/docs/ml/img/RegTree_4.png differ diff --git a/docs/ml/img/RegTree_5.png b/docs/ml/img/RegTree_5.png new file mode 100644 index 0000000000000000000000000000000000000000..02031d2a3094beffbf4e8c3b506f27a3e51fe09a Binary files /dev/null and b/docs/ml/img/RegTree_5.png differ diff --git "a/docs/ml/img/SVD_\346\216\250\350\215\220\347\263\273\347\273\237_\344\270\273\351\242\230\347\251\272\351\227\264\346\241\210\344\276\2131.jpg" "b/docs/ml/img/SVD_\346\216\250\350\215\220\347\263\273\347\273\237_\344\270\273\351\242\230\347\251\272\351\227\264\346\241\210\344\276\2131.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..cdf42c8142632633d296f03e0b2dfd16a3ab3d2b Binary files /dev/null and "b/docs/ml/img/SVD_\346\216\250\350\215\220\347\263\273\347\273\237_\344\270\273\351\242\230\347\251\272\351\227\264\346\241\210\344\276\2131.jpg" differ diff --git "a/docs/ml/img/SVD\345\205\254\345\274\217\347\232\204\346\265\213\350\257\225\346\241\210\344\276\213.jpg" "b/docs/ml/img/SVD\345\205\254\345\274\217\347\232\204\346\265\213\350\257\225\346\241\210\344\276\213.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a67706031cd542ba00e872ab826053cf3ca04809 Binary files /dev/null and "b/docs/ml/img/SVD\345\205\254\345\274\217\347\232\204\346\265\213\350\257\225\346\241\210\344\276\213.jpg" differ diff --git a/docs/ml/img/SVM_1.jpg b/docs/ml/img/SVM_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..51f05868a869ced587a14a5328a39ef707907e1e Binary files /dev/null and b/docs/ml/img/SVM_1.jpg differ diff --git a/docs/ml/img/SVM_2_separating-hyperplane.jpg b/docs/ml/img/SVM_2_separating-hyperplane.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2dde57ebc2d6f5ae5f652581288a505d1e9aeb4 Binary files /dev/null and b/docs/ml/img/SVM_2_separating-hyperplane.jpg differ diff --git a/docs/ml/img/SVM_3_linearly-separable.jpg b/docs/ml/img/SVM_3_linearly-separable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f2fab60dc0a69db59b4ba57be688aee56ed42b0 Binary files /dev/null and b/docs/ml/img/SVM_3_linearly-separable.jpg differ diff --git a/docs/ml/img/SVM_4_point2line-distance.jpg b/docs/ml/img/SVM_4_point2line-distance.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ffb0de3522403a9ed81acdf480a205090d61843 Binary files /dev/null and b/docs/ml/img/SVM_4_point2line-distance.jpg differ diff --git a/docs/ml/img/SVM_4_point2line-distance.png b/docs/ml/img/SVM_4_point2line-distance.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0af21d59cef2ff8d1c671ab56dd9c4780a41ea Binary files /dev/null and b/docs/ml/img/SVM_4_point2line-distance.png differ diff --git a/docs/ml/img/SVM_5_Lagrangemultiplier.png b/docs/ml/img/SVM_5_Lagrangemultiplier.png new file mode 100644 index 0000000000000000000000000000000000000000..2fa6a36dc7537e850617d3fb6f517dd2968cf1fe Binary files /dev/null and b/docs/ml/img/SVM_5_Lagrangemultiplier.png differ diff --git a/docs/ml/img/SVM_6_radial-basis-function.jpg b/docs/ml/img/SVM_6_radial-basis-function.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8942e9ac85e8492b9f129018690bd05ef58f3ee Binary files /dev/null and b/docs/ml/img/SVM_6_radial-basis-function.jpg differ diff --git "a/docs/ml/img/SVM_\346\235\276\345\274\233\345\217\230\351\207\217.jpg" "b/docs/ml/img/SVM_\346\235\276\345\274\233\345\217\230\351\207\217.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..0065a19e11894a08dbb52b6c5ba42143a18103e7 Binary files /dev/null and "b/docs/ml/img/SVM_\346\235\276\345\274\233\345\217\230\351\207\217.jpg" differ diff --git a/docs/ml/img/Thumbs.db b/docs/ml/img/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..5997dcd59a1452d2ad6a10a763dc95d494de7c29 Binary files /dev/null and b/docs/ml/img/Thumbs.db differ diff --git a/docs/ml/img/TreeRegression_headPage_xy.png b/docs/ml/img/TreeRegression_headPage_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..9b853f1c725e5b56c9b760c8287efc55925e67d5 Binary files /dev/null and b/docs/ml/img/TreeRegression_headPage_xy.png differ diff --git a/docs/ml/img/adaboost_alpha.png b/docs/ml/img/adaboost_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..1e981eb488ce36dc25bd0dcbfc212a074e4a2f4e Binary files /dev/null and b/docs/ml/img/adaboost_alpha.png differ diff --git a/docs/ml/img/adaboost_code-flow-chart.jpg b/docs/ml/img/adaboost_code-flow-chart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dcf19e60d3aa904f177a3db7c079ae228ad991e4 Binary files /dev/null and b/docs/ml/img/adaboost_code-flow-chart.jpg differ diff --git a/docs/ml/img/adaboost_headPage.jpg b/docs/ml/img/adaboost_headPage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..22dadc910a392835c69965a4de03979a99e73918 Binary files /dev/null and b/docs/ml/img/adaboost_headPage.jpg differ diff --git a/docs/ml/img/adaboost_illustration.png b/docs/ml/img/adaboost_illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..a662f43d7eeba50f5a696301370743ea7a2ef40f Binary files /dev/null and b/docs/ml/img/adaboost_illustration.png differ diff --git a/docs/ml/img/alpha.png b/docs/ml/img/alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..891855daf7577a098365d27ab24a6910f06fa47b Binary files /dev/null and b/docs/ml/img/alpha.png differ diff --git a/docs/ml/img/apachecn-bikmeans-run-result-1.jpg b/docs/ml/img/apachecn-bikmeans-run-result-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1f3d6c417cce309c281d9597cd33f166acc1747 Binary files /dev/null and b/docs/ml/img/apachecn-bikmeans-run-result-1.jpg differ diff --git a/docs/ml/img/apachecn-k-means-run-result-1.jpg b/docs/ml/img/apachecn-k-means-run-result-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e8acdb546ee09ec62c0b57ec0e370921ab66ca83 Binary files /dev/null and b/docs/ml/img/apachecn-k-means-run-result-1.jpg differ diff --git a/docs/ml/img/apachecn-k-means-term-1.jpg b/docs/ml/img/apachecn-k-means-term-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0d7286e403e471d9fb28b45cc577dea558a23b14 Binary files /dev/null and b/docs/ml/img/apachecn-k-means-term-1.jpg differ diff --git a/docs/ml/img/apachecn-kmeans-partial-best-result-1.jpg b/docs/ml/img/apachecn-kmeans-partial-best-result-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58ac8c3092afbf152451df39170c71b82ad108e8 Binary files /dev/null and b/docs/ml/img/apachecn-kmeans-partial-best-result-1.jpg differ diff --git a/docs/ml/img/apachecn_apriori_association_demo_1.jpg b/docs/ml/img/apachecn_apriori_association_demo_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54649778695c86c22b2db05bb3798109a0a7b028 Binary files /dev/null and b/docs/ml/img/apachecn_apriori_association_demo_1.jpg differ diff --git a/docs/ml/img/apachecn_apriori_goods_all_1.jpg b/docs/ml/img/apachecn_apriori_goods_all_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..26710f6d9c6f5e350c683c9a74b305927a8981d6 Binary files /dev/null and b/docs/ml/img/apachecn_apriori_goods_all_1.jpg differ diff --git a/docs/ml/img/apachecn_apriori_homepage.jpg b/docs/ml/img/apachecn_apriori_homepage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b174922fed65a44741f68fb54732f3178c52448a Binary files /dev/null and b/docs/ml/img/apachecn_apriori_homepage.jpg differ diff --git a/docs/ml/img/apachecn_apriori_not_frequent_item_sets_demo_1.jpg b/docs/ml/img/apachecn_apriori_not_frequent_item_sets_demo_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da9a019f4310dc7b866a17b93d16f11583389c82 Binary files /dev/null and b/docs/ml/img/apachecn_apriori_not_frequent_item_sets_demo_1.jpg differ diff --git a/docs/ml/img/apachecn_association_rule_demo_1.jpg b/docs/ml/img/apachecn_association_rule_demo_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a7b7aa5e049c00ea5a3a92ec0d047870c3e4831 Binary files /dev/null and b/docs/ml/img/apachecn_association_rule_demo_1.jpg differ diff --git a/docs/ml/img/apachecn_fp_growth_homepage.png b/docs/ml/img/apachecn_fp_growth_homepage.png new file mode 100644 index 0000000000000000000000000000000000000000..6b43d7614e789f46b066e5482f1487aeb6078510 Binary files /dev/null and b/docs/ml/img/apachecn_fp_growth_homepage.png differ diff --git a/docs/ml/img/arctan_arccot.gif b/docs/ml/img/arctan_arccot.gif new file mode 100644 index 0000000000000000000000000000000000000000..139bf90b3969e382825fbba86fcc7f68061165b5 Binary files /dev/null and b/docs/ml/img/arctan_arccot.gif differ diff --git a/docs/ml/img/b.png b/docs/ml/img/b.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9fbe6f443155e74da39c88b3fc240a6041e4b1 Binary files /dev/null and b/docs/ml/img/b.png differ diff --git a/docs/ml/img/hu_1.jpg b/docs/ml/img/hu_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6fedd10dca49adbcbb883e5817376993dec71a45 Binary files /dev/null and b/docs/ml/img/hu_1.jpg differ diff --git a/docs/ml/img/hu_10.png b/docs/ml/img/hu_10.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bcd4b0541a953541e29c7db07acedb696055a2 Binary files /dev/null and b/docs/ml/img/hu_10.png differ diff --git a/docs/ml/img/hu_2.jpg b/docs/ml/img/hu_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f165471f28cd748247c3946fed5e83f3555f3ada Binary files /dev/null and b/docs/ml/img/hu_2.jpg differ diff --git a/docs/ml/img/hu_3.png b/docs/ml/img/hu_3.png new file mode 100644 index 0000000000000000000000000000000000000000..10c8ddc8ff5dba2a6a40abf1897cd2dccc37c8fd Binary files /dev/null and b/docs/ml/img/hu_3.png differ diff --git a/docs/ml/img/hu_4.png b/docs/ml/img/hu_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0a1ca779cd0cc75b6c81d30d86e836880878cd76 Binary files /dev/null and b/docs/ml/img/hu_4.png differ diff --git a/docs/ml/img/hu_5.png b/docs/ml/img/hu_5.png new file mode 100644 index 0000000000000000000000000000000000000000..9b8f959eead1ec2a41b578a4de8c03a485d3bd4a Binary files /dev/null and b/docs/ml/img/hu_5.png differ diff --git a/docs/ml/img/hu_6.png b/docs/ml/img/hu_6.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad78fa16fac435a1d48153bc66e4b9cd344b992 Binary files /dev/null and b/docs/ml/img/hu_6.png differ diff --git a/docs/ml/img/hu_7.png b/docs/ml/img/hu_7.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bcd4b0541a953541e29c7db07acedb696055a2 Binary files /dev/null and b/docs/ml/img/hu_7.png differ diff --git a/docs/ml/img/hu_8.png b/docs/ml/img/hu_8.png new file mode 100644 index 0000000000000000000000000000000000000000..01a7389647ffe4331fe8056f5c88d2006fdc0ddf Binary files /dev/null and b/docs/ml/img/hu_8.png differ diff --git a/docs/ml/img/hu_9.png b/docs/ml/img/hu_9.png new file mode 100644 index 0000000000000000000000000000000000000000..e3b8fe18852911fa63271d336df4a77a3ca879d9 Binary files /dev/null and b/docs/ml/img/hu_9.png differ diff --git a/docs/ml/img/k_1.jpg b/docs/ml/img/k_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3dfe09506ad430a8607c8bbb9abe7a7644f8bbd Binary files /dev/null and b/docs/ml/img/k_1.jpg differ diff --git a/docs/ml/img/k_10.png b/docs/ml/img/k_10.png new file mode 100644 index 0000000000000000000000000000000000000000..40d501f95663fba7b8cce13624864c9f32fcf95f Binary files /dev/null and b/docs/ml/img/k_10.png differ diff --git a/docs/ml/img/k_11.png b/docs/ml/img/k_11.png new file mode 100644 index 0000000000000000000000000000000000000000..897da3e411af7d57df033b60ee7f7f8a3b10a0fe Binary files /dev/null and b/docs/ml/img/k_11.png differ diff --git a/docs/ml/img/k_12.png b/docs/ml/img/k_12.png new file mode 100644 index 0000000000000000000000000000000000000000..68c11fed9ec2b3a6d445f769563230e59e8fa7c2 Binary files /dev/null and b/docs/ml/img/k_12.png differ diff --git a/docs/ml/img/k_13.png b/docs/ml/img/k_13.png new file mode 100644 index 0000000000000000000000000000000000000000..4fced2090c1cf480bfa3ffa123691b26e08c738c Binary files /dev/null and b/docs/ml/img/k_13.png differ diff --git a/docs/ml/img/k_14.png b/docs/ml/img/k_14.png new file mode 100644 index 0000000000000000000000000000000000000000..09e6c75656b38d729fdb689e488c2e26124f8dd2 Binary files /dev/null and b/docs/ml/img/k_14.png differ diff --git a/docs/ml/img/k_15.png b/docs/ml/img/k_15.png new file mode 100644 index 0000000000000000000000000000000000000000..33340d1d35638d30e430d7c0923e12e0ef5dc57d Binary files /dev/null and b/docs/ml/img/k_15.png differ diff --git a/docs/ml/img/k_16.png b/docs/ml/img/k_16.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd2d3ae2288345f84731bc7477e72fd4d1bc242 Binary files /dev/null and b/docs/ml/img/k_16.png differ diff --git a/docs/ml/img/k_2.jpg b/docs/ml/img/k_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e774fde63e7a5c28756cc8866dc0324820a95ef Binary files /dev/null and b/docs/ml/img/k_2.jpg differ diff --git a/docs/ml/img/k_3.jpg b/docs/ml/img/k_3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da582b41ba9247908c23f3f91a2799b7be3dfca3 Binary files /dev/null and b/docs/ml/img/k_3.jpg differ diff --git a/docs/ml/img/k_4.jpg b/docs/ml/img/k_4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d64300a9232fdd740d8bad57f4fd00f0ddc82904 Binary files /dev/null and b/docs/ml/img/k_4.jpg differ diff --git a/docs/ml/img/k_5.jpg b/docs/ml/img/k_5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5c44eef6e617454f60fb5a7edd776205baf1db7 Binary files /dev/null and b/docs/ml/img/k_5.jpg differ diff --git a/docs/ml/img/k_6.png b/docs/ml/img/k_6.png new file mode 100644 index 0000000000000000000000000000000000000000..3f0a4110486a741cc52d8de6b38db714c8b10002 Binary files /dev/null and b/docs/ml/img/k_6.png differ diff --git a/docs/ml/img/k_7.png b/docs/ml/img/k_7.png new file mode 100644 index 0000000000000000000000000000000000000000..361f1bd2b0077d00d726db0b4f014932dc795c0e Binary files /dev/null and b/docs/ml/img/k_7.png differ diff --git a/docs/ml/img/k_8.png b/docs/ml/img/k_8.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d6e5dd55e89778361ecaf2a786adc252ab4aca Binary files /dev/null and b/docs/ml/img/k_8.png differ diff --git a/docs/ml/img/k_9.png b/docs/ml/img/k_9.png new file mode 100644 index 0000000000000000000000000000000000000000..849b6345f90765ef1d2dae1e04fe22ec9c935924 Binary files /dev/null and b/docs/ml/img/k_9.png differ diff --git a/docs/ml/img/knn-0-headpage.jpg b/docs/ml/img/knn-0-headpage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28dc81f641f56e010c2269b4d0b9336ea65484c4 Binary files /dev/null and b/docs/ml/img/knn-0-headpage.jpg differ diff --git a/docs/ml/img/knn-1-movie.png b/docs/ml/img/knn-1-movie.png new file mode 100644 index 0000000000000000000000000000000000000000..dfef7275d5a86d57015bb1799eefa5502f7de8ce Binary files /dev/null and b/docs/ml/img/knn-1-movie.png differ diff --git a/docs/ml/img/knn_1.png b/docs/ml/img/knn_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6d481afc4d84f9ee95eae2235654bbcbd77c11 Binary files /dev/null and b/docs/ml/img/knn_1.png differ diff --git a/docs/ml/img/knn_2.jpg b/docs/ml/img/knn_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7caa8fe70b4ae620670f0c0b22ea362daa62c882 Binary files /dev/null and b/docs/ml/img/knn_2.jpg differ diff --git a/docs/ml/img/knn_2_handWriting.png b/docs/ml/img/knn_2_handWriting.png new file mode 100644 index 0000000000000000000000000000000000000000..9970f784059689542bbe6acfb7bc62d9c3d8d1ba Binary files /dev/null and b/docs/ml/img/knn_2_handWriting.png differ diff --git a/docs/ml/img/knn_3.png b/docs/ml/img/knn_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6d2605daf9da2f36da2bb1a706067bd6644b433d Binary files /dev/null and b/docs/ml/img/knn_3.png differ diff --git a/docs/ml/img/knn_4.png b/docs/ml/img/knn_4.png new file mode 100644 index 0000000000000000000000000000000000000000..509c886da2b752adb2589b78dccc36b98a26f2e8 Binary files /dev/null and b/docs/ml/img/knn_4.png differ diff --git a/docs/ml/img/knn_headPage_xy.png b/docs/ml/img/knn_headPage_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..2d486596ef66a2e90c635d496ff316a2baca6c1d Binary files /dev/null and b/docs/ml/img/knn_headPage_xy.png differ diff --git a/docs/ml/img/knn_later_1.png b/docs/ml/img/knn_later_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ad15ca05402fad3de8c27993fb2e620d25c2a8 Binary files /dev/null and b/docs/ml/img/knn_later_1.png differ diff --git a/docs/ml/img/knn_later_2.png b/docs/ml/img/knn_later_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8f33a82b0cdbac030d3e8fa4815b156b9683757b Binary files /dev/null and b/docs/ml/img/knn_later_2.png differ diff --git a/docs/ml/img/knn_later_3.png b/docs/ml/img/knn_later_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5644fb051492581e8fd8e58c0fb3cd401a389c71 Binary files /dev/null and b/docs/ml/img/knn_later_3.png differ diff --git a/docs/ml/img/knn_later_4.png b/docs/ml/img/knn_later_4.png new file mode 100644 index 0000000000000000000000000000000000000000..536ed76ac291709b0333b1ec8c83c37ff79f304b Binary files /dev/null and b/docs/ml/img/knn_later_4.png differ diff --git a/docs/ml/img/knn_matplotlib_2.png b/docs/ml/img/knn_matplotlib_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5981a99429fe03b45a11a11bb78041edbc6c544b Binary files /dev/null and b/docs/ml/img/knn_matplotlib_2.png differ diff --git a/docs/ml/img/ml_add_1.jpg b/docs/ml/img/ml_add_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa569f424a11e9d867e349c1cae4c47bbf9e9f7d Binary files /dev/null and b/docs/ml/img/ml_add_1.jpg differ diff --git a/docs/ml/img/ml_add_2.jpg b/docs/ml/img/ml_add_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..037a4bcba787379bd40178f007e409d45acc5e45 Binary files /dev/null and b/docs/ml/img/ml_add_2.jpg differ diff --git a/docs/ml/img/ml_algorithm.jpg b/docs/ml/img/ml_algorithm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec8ef79c3df0c6c665ee05522021238690fb1df5 Binary files /dev/null and b/docs/ml/img/ml_algorithm.jpg differ diff --git a/docs/ml/img/ml_map.png b/docs/ml/img/ml_map.png new file mode 100644 index 0000000000000000000000000000000000000000..974362fdf6c2b880b4cad96fa69b57bf0ee3c9d5 Binary files /dev/null and b/docs/ml/img/ml_map.png differ diff --git a/docs/ml/img/mr_1_cluster.jpg b/docs/ml/img/mr_1_cluster.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b66f36a733ae13a43b2e34a6dcfc26807cc23006 Binary files /dev/null and b/docs/ml/img/mr_1_cluster.jpg differ diff --git a/docs/ml/img/mr_headPage.jpg b/docs/ml/img/mr_headPage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb0984fedf4f4408aed19c8c27c3ef0572e2e875 Binary files /dev/null and b/docs/ml/img/mr_headPage.jpg differ diff --git a/docs/ml/img/story_1.png b/docs/ml/img/story_1.png new file mode 100644 index 0000000000000000000000000000000000000000..43528f4210d317480cb262cec23a6162bde1dd5d Binary files /dev/null and b/docs/ml/img/story_1.png differ diff --git a/docs/ml/img/story_2.png b/docs/ml/img/story_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f72a62da45f49ba9fe5fea9cb9a0f623db7ca9b6 Binary files /dev/null and b/docs/ml/img/story_2.png differ diff --git a/docs/ml/img/story_3.png b/docs/ml/img/story_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ea896b9d14c647febf9d9db2aa40663722489fb5 Binary files /dev/null and b/docs/ml/img/story_3.png differ diff --git a/docs/ml/img/story_4.png b/docs/ml/img/story_4.png new file mode 100644 index 0000000000000000000000000000000000000000..423a006f83812ba8a49af770a28d40a5ed33d86f Binary files /dev/null and b/docs/ml/img/story_4.png differ diff --git a/docs/ml/img/story_5.png b/docs/ml/img/story_5.png new file mode 100644 index 0000000000000000000000000000000000000000..348651f50a5a4179bd01547ab6a6a9ed68a870d5 Binary files /dev/null and b/docs/ml/img/story_5.png differ diff --git a/docs/ml/img/story_6.png b/docs/ml/img/story_6.png new file mode 100644 index 0000000000000000000000000000000000000000..37e3d6436bb2baa5060a0cae6d4d95b6d60e6206 Binary files /dev/null and b/docs/ml/img/story_6.png differ diff --git a/docs/ml/img/story_7.png b/docs/ml/img/story_7.png new file mode 100644 index 0000000000000000000000000000000000000000..b01ed46c6301a7f94337dfa270755dd09ef03f8e Binary files /dev/null and b/docs/ml/img/story_7.png differ diff --git a/docs/ml/img/story_8.png b/docs/ml/img/story_8.png new file mode 100644 index 0000000000000000000000000000000000000000..a4789a14c8a66156ab809c82e9c10a3d4e190de8 Binary files /dev/null and b/docs/ml/img/story_8.png differ diff --git a/docs/ml/img/supportVector.png b/docs/ml/img/supportVector.png new file mode 100644 index 0000000000000000000000000000000000000000..82d1bb752e6a26e51a7673c8b09b04d0f0299417 Binary files /dev/null and b/docs/ml/img/supportVector.png differ diff --git "a/docs/ml/img/supportVector\345\205\254\345\274\217.jpg" "b/docs/ml/img/supportVector\345\205\254\345\274\217.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..ffecc066d4fd2a380b2a296a9c1eafd22800ae27 Binary files /dev/null and "b/docs/ml/img/supportVector\345\205\254\345\274\217.jpg" differ diff --git a/docs/ml/img/svd_headPage.jpg b/docs/ml/img/svd_headPage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4fef2cb4c608044ab8151c8037e86160825144d9 Binary files /dev/null and b/docs/ml/img/svd_headPage.jpg differ diff --git a/docs/ml/img/svm_2.png b/docs/ml/img/svm_2.png new file mode 100644 index 0000000000000000000000000000000000000000..348651f50a5a4179bd01547ab6a6a9ed68a870d5 Binary files /dev/null and b/docs/ml/img/svm_2.png differ diff --git a/docs/ml/img/w.png b/docs/ml/img/w.png new file mode 100644 index 0000000000000000000000000000000000000000..d5297fe024face256fdafb87a3fad700691bbca5 Binary files /dev/null and b/docs/ml/img/w.png differ diff --git "a/docs/ml/img/\344\272\244\346\230\223\346\270\205\345\215\225.png" "b/docs/ml/img/\344\272\244\346\230\223\346\270\205\345\215\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..b6022abbc901ce14abf28798166bc55f4f7e5775 Binary files /dev/null and "b/docs/ml/img/\344\272\244\346\230\223\346\270\205\345\215\225.png" differ diff --git "a/docs/ml/img/\344\273\243\344\273\267\345\207\275\346\225\260.png" "b/docs/ml/img/\344\273\243\344\273\267\345\207\275\346\225\260.png" new file mode 100644 index 0000000000000000000000000000000000000000..c0211a4016eaad527aca790447fcad58bd3ce68c Binary files /dev/null and "b/docs/ml/img/\344\273\243\344\273\267\345\207\275\346\225\260.png" differ diff --git "a/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-LSI\344\270\276\344\276\213.png" "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-LSI\344\270\276\344\276\213.png" new file mode 100644 index 0000000000000000000000000000000000000000..a24b56872219446de787e6d7ac698c83efede0db Binary files /dev/null and "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-LSI\344\270\276\344\276\213.png" differ diff --git "a/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-SVD\345\205\254\345\274\217.jpg" "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-SVD\345\205\254\345\274\217.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a572d76699e4edb76092d64cce6dc03acdd3b3bd Binary files /dev/null and "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-SVD\345\205\254\345\274\217.jpg" differ diff --git "a/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-\345\237\272\344\272\216\347\211\251\345\223\201\347\233\270\344\274\274\345\272\246.png" "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-\345\237\272\344\272\216\347\211\251\345\223\201\347\233\270\344\274\274\345\272\246.png" new file mode 100644 index 0000000000000000000000000000000000000000..0c2e6095891eb825cd5eb6f87addf91fc747eeec Binary files /dev/null and "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-\345\237\272\344\272\216\347\211\251\345\223\201\347\233\270\344\274\274\345\272\246.png" differ diff --git "a/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-\345\237\272\344\272\216\347\224\250\346\210\267\347\233\270\344\274\274\345\272\246.png" "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-\345\237\272\344\272\216\347\224\250\346\210\267\347\233\270\344\274\274\345\272\246.png" new file mode 100644 index 0000000000000000000000000000000000000000..46d558b10a5bd0135a55736fe563b9297980a84c Binary files /dev/null and "b/docs/ml/img/\344\275\277\347\224\250SVD\347\256\200\345\214\226\346\225\260\346\215\256-\345\237\272\344\272\216\347\224\250\346\210\267\347\233\270\344\274\274\345\272\246.png" differ diff --git "a/docs/ml/img/\345\206\263\347\255\226\346\240\221-\346\265\201\347\250\213\345\233\276.jpg" "b/docs/ml/img/\345\206\263\347\255\226\346\240\221-\346\265\201\347\250\213\345\233\276.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..b02297761bb14480c7b83e242f5c57de9496f29a Binary files /dev/null and "b/docs/ml/img/\345\206\263\347\255\226\346\240\221-\346\265\201\347\250\213\345\233\276.jpg" differ diff --git "a/docs/ml/img/\345\206\263\347\255\226\346\240\221\345\210\222\345\210\206\346\225\260\346\215\256\351\233\206\346\227\266\347\232\204\346\225\260\346\215\256\350\267\257\345\276\204.png" "b/docs/ml/img/\345\206\263\347\255\226\346\240\221\345\210\222\345\210\206\346\225\260\346\215\256\351\233\206\346\227\266\347\232\204\346\225\260\346\215\256\350\267\257\345\276\204.png" new file mode 100644 index 0000000000000000000000000000000000000000..1747cca7de497d953ed009452edfd11b59df0f06 Binary files /dev/null and "b/docs/ml/img/\345\206\263\347\255\226\346\240\221\345\210\222\345\210\206\346\225\260\346\215\256\351\233\206\346\227\266\347\232\204\346\225\260\346\215\256\350\267\257\345\276\204.png" differ diff --git "a/docs/ml/img/\345\206\263\347\255\226\346\240\221\346\265\201\347\250\213\344\273\213\347\273\215\345\233\276.jpg" "b/docs/ml/img/\345\206\263\347\255\226\346\240\221\346\265\201\347\250\213\344\273\213\347\273\215\345\233\276.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a946e224831258777e11b51ab957dc60739986ad Binary files /dev/null and "b/docs/ml/img/\345\206\263\347\255\226\346\240\221\346\265\201\347\250\213\344\273\213\347\273\215\345\233\276.jpg" differ diff --git "a/docs/ml/img/\345\210\251\347\224\250PCA\347\256\200\345\214\226\346\225\260\346\215\256_\351\246\226\351\241\265.jpg" "b/docs/ml/img/\345\210\251\347\224\250PCA\347\256\200\345\214\226\346\225\260\346\215\256_\351\246\226\351\241\265.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..85b7ad79ac68bd6853a1596530a3f041774a9845 Binary files /dev/null and "b/docs/ml/img/\345\210\251\347\224\250PCA\347\256\200\345\214\226\346\225\260\346\215\256_\351\246\226\351\241\265.jpg" differ diff --git "a/docs/ml/img/\345\237\272\344\272\216SVD.png" "b/docs/ml/img/\345\237\272\344\272\216SVD.png" new file mode 100644 index 0000000000000000000000000000000000000000..e6d671ddeb3347e148e0ca6876279a123dae174b Binary files /dev/null and "b/docs/ml/img/\345\237\272\344\272\216SVD.png" differ diff --git "a/docs/ml/img/\345\237\272\344\272\216\347\211\251\345\223\201\347\233\270\344\274\274\345\272\246.jpg" "b/docs/ml/img/\345\237\272\344\272\216\347\211\251\345\223\201\347\233\270\344\274\274\345\272\246.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..efa39c41dac9611cf6696289c8239214ee73aaca Binary files /dev/null and "b/docs/ml/img/\345\237\272\344\272\216\347\211\251\345\223\201\347\233\270\344\274\274\345\272\246.jpg" differ diff --git "a/docs/ml/img/\345\237\272\344\272\216\347\237\245\350\257\206\347\232\204\346\216\250\350\215\220.jpg" "b/docs/ml/img/\345\237\272\344\272\216\347\237\245\350\257\206\347\232\204\346\216\250\350\215\220.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..60a820e1185ca3e239e03cd64bd62173a5210945 Binary files /dev/null and "b/docs/ml/img/\345\237\272\344\272\216\347\237\245\350\257\206\347\232\204\346\216\250\350\215\220.jpg" differ diff --git "a/docs/ml/img/\345\261\200\351\203\250\345\212\240\346\235\203\347\272\277\346\200\247\345\233\236\345\275\222\346\225\210\346\236\234\345\233\276.png" "b/docs/ml/img/\345\261\200\351\203\250\345\212\240\346\235\203\347\272\277\346\200\247\345\233\236\345\275\222\346\225\210\346\236\234\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..06c64aef3c7cfdd14e84c5ab94d8d25385fd25b9 Binary files /dev/null and "b/docs/ml/img/\345\261\200\351\203\250\345\212\240\346\235\203\347\272\277\346\200\247\345\233\236\345\275\222\346\225\210\346\236\234\345\233\276.png" differ diff --git "a/docs/ml/img/\345\262\255\345\233\236\345\275\222\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/\345\262\255\345\233\236\345\275\222\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..bb31719f496f50d52297b4679957d9f95a9654a2 Binary files /dev/null and "b/docs/ml/img/\345\262\255\345\233\236\345\275\222\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/\345\272\224\347\224\250PCA\351\231\215\347\273\264.png" "b/docs/ml/img/\345\272\224\347\224\250PCA\351\231\215\347\273\264.png" new file mode 100644 index 0000000000000000000000000000000000000000..f00db0ca17373eb698a0eb3531e63ade40fbef76 Binary files /dev/null and "b/docs/ml/img/\345\272\224\347\224\250PCA\351\231\215\347\273\264.png" differ diff --git "a/docs/ml/img/\346\211\200\346\234\211\345\217\257\350\203\275\347\232\204\351\241\271\351\233\206\347\273\204\345\220\210.png" "b/docs/ml/img/\346\211\200\346\234\211\345\217\257\350\203\275\347\232\204\351\241\271\351\233\206\347\273\204\345\220\210.png" new file mode 100644 index 0000000000000000000000000000000000000000..75b7770f7663d7cacbe82672f52ed9725258f9da Binary files /dev/null and "b/docs/ml/img/\346\211\200\346\234\211\345\217\257\350\203\275\347\232\204\351\241\271\351\233\206\347\273\204\345\220\210.png" differ diff --git "a/docs/ml/img/\346\213\237\345\220\210\347\250\213\345\272\246\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/\346\213\237\345\220\210\347\250\213\345\272\246\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..c790432d4ce4970ad8590765179c9f8c41b80203 Binary files /dev/null and "b/docs/ml/img/\346\213\237\345\220\210\347\250\213\345\272\246\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/\346\213\237\345\220\210\347\250\213\345\272\246\350\276\203\345\245\275\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/\346\213\237\345\220\210\347\250\213\345\272\246\350\276\203\345\245\275\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..9aae0a0f24d70cfa5726875418edec88b20c522b Binary files /dev/null and "b/docs/ml/img/\346\213\237\345\220\210\347\250\213\345\272\246\350\276\203\345\245\275\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/\346\216\250\350\215\220\346\226\271\346\263\225\345\257\271\346\257\224.png" "b/docs/ml/img/\346\216\250\350\215\220\346\226\271\346\263\225\345\257\271\346\257\224.png" new file mode 100644 index 0000000000000000000000000000000000000000..78ef76f09cbdfaae3ecf1410161d2184719f6f45 Binary files /dev/null and "b/docs/ml/img/\346\216\250\350\215\220\346\226\271\346\263\225\345\257\271\346\257\224.png" differ diff --git "a/docs/ml/img/\346\225\260\346\215\256\351\207\215\346\212\275\346\240\267.jpg" "b/docs/ml/img/\346\225\260\346\215\256\351\207\215\346\212\275\346\240\267.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..615a49ed5c5bf18f61f4896da306e686354b4c7d Binary files /dev/null and "b/docs/ml/img/\346\225\260\346\215\256\351\207\215\346\212\275\346\240\267.jpg" differ diff --git "a/docs/ml/img/\346\226\271\345\220\221\345\257\274\346\225\260\345\222\214\346\242\257\345\272\246.png" "b/docs/ml/img/\346\226\271\345\220\221\345\257\274\346\225\260\345\222\214\346\242\257\345\272\246.png" new file mode 100644 index 0000000000000000000000000000000000000000..7d8d7407d0e827c9b6dd88edd6b7c57e814fb5f2 Binary files /dev/null and "b/docs/ml/img/\346\226\271\345\220\221\345\257\274\346\225\260\345\222\214\346\242\257\345\272\246.png" differ diff --git "a/docs/ml/img/\346\234\264\347\264\240\350\264\235\345\217\266\346\226\257_\351\246\226\351\241\265.png" "b/docs/ml/img/\346\234\264\347\264\240\350\264\235\345\217\266\346\226\257_\351\246\226\351\241\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..0044ce214f40f6dfce871e52a7b5913d8babd112 Binary files /dev/null and "b/docs/ml/img/\346\234\264\347\264\240\350\264\235\345\217\266\346\226\257_\351\246\226\351\241\265.png" differ diff --git "a/docs/ml/img/\346\234\264\347\264\240\350\264\235\345\217\266\346\226\257\347\244\272\344\276\213\346\225\260\346\215\256\345\210\206\345\270\203.png" "b/docs/ml/img/\346\234\264\347\264\240\350\264\235\345\217\266\346\226\257\347\244\272\344\276\213\346\225\260\346\215\256\345\210\206\345\270\203.png" new file mode 100644 index 0000000000000000000000000000000000000000..61a301df8394c5c85135d455f35cf5950d23c593 Binary files /dev/null and "b/docs/ml/img/\346\234\264\347\264\240\350\264\235\345\217\266\346\226\257\347\244\272\344\276\213\346\225\260\346\215\256\345\210\206\345\270\203.png" differ diff --git "a/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200-\351\200\211\346\213\251\347\256\227\346\263\225.jpg" "b/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200-\351\200\211\346\213\251\347\256\227\346\263\225.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..0fd04bbf5b4034f081690fdf28fd4e4f67200c94 Binary files /dev/null and "b/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200-\351\200\211\346\213\251\347\256\227\346\263\225.jpg" differ diff --git "a/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200-\351\246\226\351\241\265.jpg" "b/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200-\351\246\226\351\241\265.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..02fe17d9e9c4111ba0225d2d4afd32dac8c214d0 Binary files /dev/null and "b/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200-\351\246\226\351\241\265.jpg" differ diff --git "a/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200\350\256\255\347\273\203\350\277\207\347\250\213.jpg" "b/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200\350\256\255\347\273\203\350\277\207\347\250\213.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..1002802f5be1a1331e755e13853548af530c395a Binary files /dev/null and "b/docs/ml/img/\346\234\272\345\231\250\345\255\246\344\271\240\345\237\272\347\241\200\350\256\255\347\273\203\350\277\207\347\250\213.jpg" differ diff --git "a/docs/ml/img/\346\235\276\345\274\233\345\217\230\351\207\217.png" "b/docs/ml/img/\346\235\276\345\274\233\345\217\230\351\207\217.png" new file mode 100644 index 0000000000000000000000000000000000000000..e2acd4f23b25c34a432f19da3f264c68a97074b6 Binary files /dev/null and "b/docs/ml/img/\346\235\276\345\274\233\345\217\230\351\207\217.png" differ diff --git "a/docs/ml/img/\346\240\221\345\233\236\345\275\222\351\246\226\351\241\265.png" "b/docs/ml/img/\346\240\221\345\233\236\345\275\222\351\246\226\351\241\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..665ea309451ac6dd998a405d907df0f3b797b134 Binary files /dev/null and "b/docs/ml/img/\346\240\221\345\233\236\345\275\222\351\246\226\351\241\265.png" differ diff --git "a/docs/ml/img/\346\242\257\345\272\246\344\270\212\345\215\207\347\256\227\346\263\225.png" "b/docs/ml/img/\346\242\257\345\272\246\344\270\212\345\215\207\347\256\227\346\263\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..7083c1eb698bd8966ce700211eb45b29ba8f1db2 Binary files /dev/null and "b/docs/ml/img/\346\242\257\345\272\246\344\270\212\345\215\207\347\256\227\346\263\225.png" differ diff --git "a/docs/ml/img/\346\250\241\345\236\213\346\240\221\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/\346\250\241\345\236\213\346\240\221\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..0b916da332811bb669c3038045d5d568b17ee6ca Binary files /dev/null and "b/docs/ml/img/\346\250\241\345\236\213\346\240\221\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/\346\254\240\346\213\237\345\220\210\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/\346\254\240\346\213\237\345\220\210\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..49bc052a27b602ee246cb4dd56aa7b2c34c7637c Binary files /dev/null and "b/docs/ml/img/\346\254\240\346\213\237\345\220\210\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/\346\254\247\345\274\217\350\267\235\347\246\273\347\232\204\350\256\241\347\256\227\346\226\271\345\274\217.jpg" "b/docs/ml/img/\346\254\247\345\274\217\350\267\235\347\246\273\347\232\204\350\256\241\347\256\227\346\226\271\345\274\217.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..724e8ad16d3e94e8e75943adacd2a0986f69b93e Binary files /dev/null and "b/docs/ml/img/\346\254\247\345\274\217\350\267\235\347\246\273\347\232\204\350\256\241\347\256\227\346\226\271\345\274\217.jpg" differ diff --git "a/docs/ml/img/\346\255\245\351\252\2441-3.png" "b/docs/ml/img/\346\255\245\351\252\2441-3.png" new file mode 100644 index 0000000000000000000000000000000000000000..3f4167df716a05c8be128f126939a2849ae28382 Binary files /dev/null and "b/docs/ml/img/\346\255\245\351\252\2441-3.png" differ diff --git "a/docs/ml/img/\346\255\245\351\252\2444-5.png" "b/docs/ml/img/\346\255\245\351\252\2444-5.png" new file mode 100644 index 0000000000000000000000000000000000000000..58baee1a8eaaecd03ef194c63e7fda257b994f82 Binary files /dev/null and "b/docs/ml/img/\346\255\245\351\252\2444-5.png" differ diff --git "a/docs/ml/img/\346\255\245\351\252\2446-1.png" "b/docs/ml/img/\346\255\245\351\252\2446-1.png" new file mode 100644 index 0000000000000000000000000000000000000000..2e9021269a165885dff7f2b88d3e9ca3e7b5b1e9 Binary files /dev/null and "b/docs/ml/img/\346\255\245\351\252\2446-1.png" differ diff --git "a/docs/ml/img/\346\255\245\351\252\2446-2.png" "b/docs/ml/img/\346\255\245\351\252\2446-2.png" new file mode 100644 index 0000000000000000000000000000000000000000..243b983ac978a1f657ecfc5e7c12c015b7f6abbd Binary files /dev/null and "b/docs/ml/img/\346\255\245\351\252\2446-2.png" differ diff --git "a/docs/ml/img/\346\255\245\351\252\2447-1.png" "b/docs/ml/img/\346\255\245\351\252\2447-1.png" new file mode 100644 index 0000000000000000000000000000000000000000..b3439d4357ef8584ab27d6d60e7c6ce82ef1ad68 Binary files /dev/null and "b/docs/ml/img/\346\255\245\351\252\2447-1.png" differ diff --git "a/docs/ml/img/\346\255\245\351\252\2447-2.png" "b/docs/ml/img/\346\255\245\351\252\2447-2.png" new file mode 100644 index 0000000000000000000000000000000000000000..b48f6738078c03c7ef35d270ea2b429dd35088de Binary files /dev/null and "b/docs/ml/img/\346\255\245\351\252\2447-2.png" differ diff --git "a/docs/ml/img/\346\265\213\350\257\225\345\233\236\345\275\222\346\240\221\347\232\204\345\210\206\346\256\265\345\270\270\346\225\260\346\225\260\346\215\256\351\233\206.png" "b/docs/ml/img/\346\265\213\350\257\225\345\233\236\345\275\222\346\240\221\347\232\204\345\210\206\346\256\265\345\270\270\346\225\260\346\225\260\346\215\256\351\233\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..25eead1f8aa9a6b918493d1f07dd26bc96bf41a6 Binary files /dev/null and "b/docs/ml/img/\346\265\213\350\257\225\345\233\236\345\275\222\346\240\221\347\232\204\345\210\206\346\256\265\345\270\270\346\225\260\346\225\260\346\215\256\351\233\206.png" differ diff --git "a/docs/ml/img/\347\206\265\347\232\204\350\256\241\347\256\227\345\205\254\345\274\217.jpg" "b/docs/ml/img/\347\206\265\347\232\204\350\256\241\347\256\227\345\205\254\345\274\217.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..efe187ae7012d074fdec57306ae1b8d933e1a9a0 Binary files /dev/null and "b/docs/ml/img/\347\206\265\347\232\204\350\256\241\347\256\227\345\205\254\345\274\217.jpg" differ diff --git "a/docs/ml/img/\347\211\271\345\276\201\351\207\215\346\212\275\346\240\267.jpg" "b/docs/ml/img/\347\211\271\345\276\201\351\207\215\346\212\275\346\240\267.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..7f417eb940cfe0b5266eb21448e90482cce652ba Binary files /dev/null and "b/docs/ml/img/\347\211\271\345\276\201\351\207\215\346\212\275\346\240\267.jpg" differ diff --git "a/docs/ml/img/\347\254\254\345\215\201\344\270\200\347\253\240--Apriori\347\256\227\346\263\225\350\277\233\350\241\214\345\205\263\350\201\224\345\210\206\346\236\220.xlsx" "b/docs/ml/img/\347\254\254\345\215\201\344\270\200\347\253\240--Apriori\347\256\227\346\263\225\350\277\233\350\241\214\345\205\263\350\201\224\345\210\206\346\236\220.xlsx" new file mode 100644 index 0000000000000000000000000000000000000000..ae21a0b6ce69b9a55f8c782e93fb40b5fb7e2ee6 Binary files /dev/null and "b/docs/ml/img/\347\254\254\345\215\201\344\270\200\347\253\240--Apriori\347\256\227\346\263\225\350\277\233\350\241\214\345\205\263\350\201\224\345\210\206\346\236\220.xlsx" differ diff --git "a/docs/ml/img/\347\272\277\346\200\247\345\233\236\345\275\222\346\225\210\346\236\234\345\233\276.png" "b/docs/ml/img/\347\272\277\346\200\247\345\233\236\345\275\222\346\225\210\346\236\234\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..20ade76a22360447ff62dd13eb2e3a373da57a76 Binary files /dev/null and "b/docs/ml/img/\347\272\277\346\200\247\345\233\236\345\275\222\346\225\210\346\236\234\345\233\276.png" differ diff --git "a/docs/ml/img/\350\264\235\345\217\266\346\226\257\346\235\241\344\273\266\346\246\202\347\216\207.png" "b/docs/ml/img/\350\264\235\345\217\266\346\226\257\346\235\241\344\273\266\346\246\202\347\216\207.png" new file mode 100644 index 0000000000000000000000000000000000000000..b3951adab99ec0ac1cdd118ae7e0211f3533a9ee Binary files /dev/null and "b/docs/ml/img/\350\264\235\345\217\266\346\226\257\346\235\241\344\273\266\346\246\202\347\216\207.png" differ diff --git "a/docs/ml/img/\350\277\207\346\213\237\345\220\210.png" "b/docs/ml/img/\350\277\207\346\213\237\345\220\210.png" new file mode 100644 index 0000000000000000000000000000000000000000..071bc30911f22b07037d7f84d8c9f4d89b864f81 Binary files /dev/null and "b/docs/ml/img/\350\277\207\346\213\237\345\220\210.png" differ diff --git "a/docs/ml/img/\350\277\207\346\213\237\345\220\210\345\233\276\350\247\243.png" "b/docs/ml/img/\350\277\207\346\213\237\345\220\210\345\233\276\350\247\243.png" new file mode 100644 index 0000000000000000000000000000000000000000..2daf742249c2dc938d07910d75f563d7f6599bbd Binary files /dev/null and "b/docs/ml/img/\350\277\207\346\213\237\345\220\210\345\233\276\350\247\243.png" differ diff --git "a/docs/ml/img/\350\277\207\346\213\237\345\220\210\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/\350\277\207\346\213\237\345\220\210\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..b882d838ded385813236efc4ba838eff9424ff2e Binary files /dev/null and "b/docs/ml/img/\350\277\207\346\213\237\345\220\210\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/\351\200\220\346\255\245\347\272\277\346\200\247\345\233\236\345\275\222\347\244\272\344\276\213\345\233\276.png" "b/docs/ml/img/\351\200\220\346\255\245\347\272\277\346\200\247\345\233\236\345\275\222\347\244\272\344\276\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..a9fb0bdfeaea376d74df4ebc24fa4fd837392a3f Binary files /dev/null and "b/docs/ml/img/\351\200\220\346\255\245\347\272\277\346\200\247\345\233\236\345\275\222\347\244\272\344\276\213\345\233\276.png" differ diff --git "a/docs/ml/img/\351\235\236\351\242\221\347\271\201\351\241\271\351\233\206.png" "b/docs/ml/img/\351\235\236\351\242\221\347\271\201\351\241\271\351\233\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..e84065ea1727441ebae8b27792751053fb2bb3f6 Binary files /dev/null and "b/docs/ml/img/\351\235\236\351\242\221\347\271\201\351\241\271\351\233\206.png" differ diff --git "a/docs/ml/img/\351\241\271\347\233\256\346\225\260\346\215\256\345\257\274\345\205\245.jpg" "b/docs/ml/img/\351\241\271\347\233\256\346\225\260\346\215\256\345\257\274\345\205\245.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..2c16e9a6751af4e0110b898e1ee6741d1c105aa7 Binary files /dev/null and "b/docs/ml/img/\351\241\271\347\233\256\346\225\260\346\215\256\345\257\274\345\205\245.jpg" differ diff --git "a/docs/ml/img/\351\242\204\346\265\213\346\225\260\345\200\274\345\236\213\346\225\260\346\215\256\345\233\236\345\275\222\351\246\226\351\241\265.png" "b/docs/ml/img/\351\242\204\346\265\213\346\225\260\345\200\274\345\236\213\346\225\260\346\215\256\345\233\236\345\275\222\351\246\226\351\241\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..90f0f4134116eff932abac2301bf27754fc05630 Binary files /dev/null and "b/docs/ml/img/\351\242\204\346\265\213\346\225\260\345\200\274\345\236\213\346\225\260\346\215\256\345\233\236\345\275\222\351\246\226\351\241\265.png" differ