├── README.md
└── 高扬 - 白话机器学习 - 资料
└── 白话大数据与机器学习_高扬.pdf
/README.md:
--------------------------------------------------------------------------------
1 | # 大鱼AI🐟 :《白话机器学习》- MachineLearning - GaoYang
2 |
3 |
4 | ## 1. 课程概述
5 | 本课程主要围绕书籍《白话大数据与机器学习》,提取了其中的机器学习部分,从数据统计、数据指标理解、数据模型、聚类/分类与机器学习、数据应用,以及扩展讨论这样的角度来层层深入,十分适合小白入门,让尤其是不擅长数学的学习者降低对机器学习算法的恐惧感。另外参考书中,为了调节阅读气氛,帮助大家理解,结合大量案例与漫画,将抽象的数学、算法与应用,与现实生活中的案例和事件一一做了关联。
6 |
7 | **学习人群定位**:小白入门
8 | **现有资料**:《白话大数据与机器学习》高扬
9 | **就业方向**:算法工程师、数据挖掘工程师、数据分析师、大数据工程师、软件工程师
10 |
11 | ## 2. 整体安排
12 | ### 2.1 学习时间安排
13 | 本课程需要8周, 每周有3~5门课。课程时间安排如下:
14 |
15 | |课程|时间|
16 | |---|---|
17 | |第01-02课|周一、周二|
18 | |第03课及之后|周四、周五|
19 | |自由学习时间|周三、周六|
20 | |本周作业|本周任何空余时间|
21 | |提交作业的学习链接|周日晚20:00前|
22 |
23 | ★ 作业学习链接的形式:博客/Github/其他形式
24 |
25 | ### 2.2 学习大纲安排
26 | #### Week1:开学和绪论
27 | **第01课:课程引导&机器学习介绍**
28 | - 课程引导 - 学员手册
29 | - 机器学习介绍:斯坦福CS229
30 | - [什么是机器学习?](https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1049050791&courseId=1004570029)
31 | - [欢迎参加机器学习](https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1049052745&courseId=1004570029)
32 |
33 | > **本周作业:**
34 | >
35 | > 制定自己的学习计划,开通自己的学习博客,注册自己的Github。参考资料:
36 | >
37 | > [如何申请CSDN博客?](https://blog.csdn.net/sxhelijian/article/details/7752987)
38 | >
39 | > [最新GitHub账号注册(详细图解)](https://blog.csdn.net/qq_41782425/article/details/85179912)
40 | >
41 | > [12分钟教你如何使用Markdown](https://www.bilibili.com/video/av8819726?from=search&seid=6223599217224903501)
42 | >
43 | > [LaTeX公式编辑](https://uploader.shimo.im/f/QYs3JhlxaS0W2K3e.pdf)
44 |
45 | #### Week2:回归
46 | > Chapter8(P87)
47 |
48 | **第01课:基本概念**
49 | - 回归的概念
50 | - 线性回归的基本表达形式
51 | - 拟合(打点计时器计算重力加速度→积分)
52 | - 代码实现并画图
53 |
54 | 其他资料:[CS 229 - 特征和多项式回归_8 min](https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1050509889&courseId=1004570029)
55 |
56 | **第02课:残差分析**
57 | - 对打点计时器所画图形进行残差分析
58 | - 最小二乘法的原理(其他资料:[最小二乘法理论、推导、算法](https://blog.csdn.net/lql0716/article/details/70165695))
59 | - 对残差平方和求极值(斜率、截距 的推导及含义)
60 |
61 | **第03课:过拟合**
62 | - 什么是过拟合(拟合的函数完美的匹配训练集数据)
63 | - 出现过拟合的原因(样本少,力求完美)
64 | - 举例说明过拟合的危害(描述复杂,失去泛化能力)
65 | - 过拟合的解决办法(减少特征维度,正则化)
66 |
67 | 其他资料:[CS 229 - 过拟合问题_10 min](https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1051270933&courseId=1004570029)
68 |
69 | **第04课:欠拟合**
70 | - 什么是欠拟合(拟合的函数和训练集误差较大)
71 | - 欠拟合的原因(参数过少,拟合方法不对)
72 | - 欠拟合的危害
73 | - 欠拟合的解决办法(增加特征维度来解决)
74 |
75 | **第05课:曲线拟合转化为线性拟合**
76 | - 当数据之间不是线性关系时,转换为线性关系
77 | - 转换的方式([对数变换](https://baike.baidu.com/item/%E5%AF%B9%E6%95%B0%E5%8F%98%E6%8D%A2/5133459?fr=aladdin)[法](https://baike.baidu.com/item/%E5%AF%B9%E6%95%B0%E5%8F%98%E6%8D%A2/5133459?fr=aladdin),广义最小二乘法)
78 | - 代码实现(世界人口状况的预测)
79 |
80 | > **本周作业:**
81 | >
82 | >用博客或Github整理
83 | >- 代码实现线性回归算法(尝试使用对数变换法)
84 | >- 代码实现最小二乘法的线性拟合
85 | >- 整理过拟合及欠拟合的解决办法,并分别采用1-2种办法代码实现
86 |
87 | ### Week3:聚类
88 | >Chapter9(P105)
89 |
90 | **第01课:数学基础**
91 | - 概率分布:平均值(P29)、期望(加权均值P32)、标准差(P30)和方差-标准差的平方
92 | - 距离:欧式距离(P37)、曼哈顿距离(P39)、[余弦相似度](https://www.cnblogs.com/bymo/p/8489037.html)
93 | - 机器学习的[归一化和标准化](https://blog.csdn.net/pipisorry/article/details/52247379)(P116)
94 |
95 | **第02课:聚类概述和K-Means算法**
96 | - 聚类现象:归纳和总结相似事物(P105-106)(其他资料:[CS 229 - 无监督学习_3 min](https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1052194132&courseId=1004570029))
97 | - K-Means算法:算法步骤和代码实现(P106-109)(其他资料:[CS 229 - KMeans算法_12 min](https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1052194133&courseId=1004570029))
98 | - 有趣模式:Kmeans算法将数据分组的划分方法(P109-110)
99 | - 孤立点:产生原因和应用(P110)
100 |
101 | **第03课:层次聚类**
102 | - 层次聚类:自底向上的层级模式(P110-113)
103 | - 思路1:分裂的层次聚类方法
104 | - 思路2:凝聚的层次聚类方法
105 | - 聚类的3种度量策略 及 Ward策略的代码实现
106 |
107 | **第04课:密度聚类**
108 | * 密度聚类的应用场景:聚类形状不规则 / 与K-Means聚类对比(P113)
109 | * sklearn中密度分类的算法库 - 例子代码实现(P114-116)
110 | * DBSCAN的参数解释:eps、min_samples(P116)
111 |
112 | **第05课:聚类评估 - 判断聚类的质量**
113 | * 聚类质量评估概述:3个方面(P116-124)
114 | * 1 - 聚类趋势:算法步骤和代码
115 | * 2 - 簇数确定:经验法和肘方法、肘方法的代码实现(其他资料: [CS229 - 选取聚类数量_8 min](https://study.163.com/course/courseLearn.htm?courseId=1004570029#/learn/video?lessonId=1052192165&courseId=1004570029))
116 | * 3 - 测定聚类质量:外在方法(参考类簇标准)和内在方法(轮廓系数)、内在方法code
117 |
118 | > **本周作业:**
119 | >
120 | >用博客或Github整理
121 | >* K-Means:算法步骤及代码实现
122 | >* 凝聚的层次聚类:算法步骤及代码实现(P111例子用Maximum策略)
123 | >* 密度聚类:算法步骤和代码实现
124 |
125 | ### Week4:分类(一)
126 | >Chapter10.1 — 10.4
127 |
128 | **第01课:数学基础**
129 | * [概率密度和后验概率](https://blog.csdn.net/fjssharpsword/article/details/72356277)
130 | * 高斯分布(P45)
131 | * 伯努利分布(P52)
132 | * 信息熵(P70)、[信息增益、基尼指数](https://www.cnblogs.com/muzixi/p/6566803.html)
133 |
134 | **第02课:朴素贝叶斯**
135 | * 基本思想:先验概率转化为后验概率,然后根据后验概率的大小进行决策分类
136 | * 贝叶斯公式
137 | * 高斯朴素贝叶斯(一般用于连续型特征进行分类)
138 | * 多项式朴素贝叶斯(一般用于高纬度向量分类)
139 | * 伯努利朴素贝叶斯(一般用于bool类型特征进行分类)
140 |
141 | **第03课:决策树**
142 | * 举个约会的栗子
143 | * 连续性变量找最佳切分点(先排序,尝试所有的切分点,找到信息增益最大的一个)
144 | * 决策树的构造方式
145 |
146 | **第04课:随机森林**
147 | * 集成学习概念
148 | * 个体学习器概念
149 | * boosting、bagging的相关概念
150 | * 结合策略:平均法,投票法,学习法
151 | * 随机森林思想
152 |
153 | **第05课:隐马尔科夫链**
154 | * 已知隐藏状态数量,转换概率、可见状态链,求隐含状态链
155 | * 思路:最大释然状态路径(一串序列,概率最大)
156 | * 算法:维特比算法
157 | * 举个例子:输入法中隐藏序列是想要输入的字符,可见序列是已经输入显示的字符
158 | * 已知隐藏状态数量,转换概率、可见状态链,求隐含状态链
159 | * 前向算法
160 | * 已知隐藏状态数量,不知转换概率、有很多可见状态链,求转换概率(最常见)
161 | * 代码实现对输出词汇的预测
162 |
163 | >**本周作业:**
164 | >
165 | >用博客或Github整理
166 | >* 朴素贝叶斯:算法步骤及代码实现高斯朴素贝叶斯对疾病的预测
167 | >* 随机森林:算法步骤及代码实现随机森林对相亲的预测
168 | >* 决策树:算法步骤及代码实现决策树对相亲的预测
169 | >* 隐马尔科夫链:算法步骤和代码实现隐马尔科夫链对词汇输出的预测
170 |
171 | ### Week5:分类(二)
172 | >Chapter10.5 — 10.6
173 |
174 | **第01课:数学基础**
175 | * 点到直线的距离公式(P159)
176 | * 高斯分布(P45)
177 | * 多元函数求偏导([求偏导1](https://www.bilibili.com/video/av23439412?from=search&seid=2949593306198848234),[求偏导2](https://www.bilibili.com/video/av23448626?from=search&seid=2949593306198848234))
178 |
179 | **第02课:支持向量机SVM**
180 | * 由案例 "年龄和好坏" 引入基本概念
181 | * 超平面:一维空间的点 → 二维空间的线 → 三维空间的面
182 | * 过拟合问题
183 | * 不纯度:权衡精确度和不纯度
184 | * 线性可分模型:间隔最大化的分类超平面(P160)
185 | * 线性不可分问题
186 | * 非线性变换映射到高维空间
187 | * 核函数:替代样本内积
188 | * sklearn中的类SVC - 案例的代码实现(P163)
189 | * SVM算法小结
190 |
191 | **第03课:遗传算法**
192 | * 借鉴进化论的随机搜索方法:进化过程
193 | * 遗传算法的关键步骤:基因编码、设计初始群体、适应度计算和产生下一代和迭代计算
194 | * 实例1 - 背包问题
195 | * 穷举法
196 | * 遗传算法的求解过程
197 | * 遗传算法的注意事项(P169)
198 | * 可调整的地方:初始群体、适应度函数、基因重组和迭代结束
199 | * 背包问题采用遗传算法求解的代码实现(P170)
200 | * 实例2 - 极值问题
201 | * 微积分领域的解法
202 | * 遗传算法的求解过程
203 | * 极值问题采用遗传算法求解的代码实现(P177)
204 | * 执行代码时的问题:再播撒不均匀(P180)
205 | * 解决方法:初始种群扩大化 和 每一代遴选增加名额
206 |
207 | >**本周作业:**
208 | >
209 | >用博客或Github整理
210 | >* SVM:算法步骤及代码实现(P163例子尝试4种核函数)
211 | >* 遗传算法:代码实现 - 求函数z = ysin(x) + xcos(y)在x位于[-10,10] 和 y位于[10,10]之间的最大值。(P177)
212 |
213 | ### Week6:关联分析+用户画像
214 | >Chapter11 & 12
215 |
216 | **第01课:数学基础**
217 | * 支持度(P185)
218 | * 置信度(P185)
219 | * 笛卡儿积(P189)
220 | * 提升度(P192)
221 |
222 | **第02课:关联分析**
223 | * 频繁模式:高频率的模式
224 | * Apriori算法:找出数据值中频繁出现的数据集合
225 | * 关联分析相关性分析:提升度
226 | * 稀有模式&负模式
227 | * 支持度远低于设定支持度的模式:稀有模式
228 | * 至少是很少一起出现的频繁模式:负模式
229 |
230 | **第03课:用户画像**
231 | * 画像的方法:打标签
232 | * 结构化标签:表一样
233 | * 丰富度有限
234 | * 信息正确性高
235 | * 非结构化标签:属性无明显区分
236 | * 举例子:广告的运作流程
237 | * 画画看:通过软件列表,使用记录,浏览器访问记录等画像
238 | * 给标签不同的权重
239 | * 利用用户画像
240 | * 割裂型用户画像
241 | * 紧密型用户画像
242 | * 到底“像不像”
243 | * 跟谁比
244 | * 信息反馈
245 |
246 | >**本周作业:**
247 | >
248 | >用博客或Github整理
249 | >* SQL实现啤酒=>香烟的支持度与置信度计算
250 | >* Apriori算法的步骤并用代码实现
251 |
252 | ### Week7:推荐算法&文本挖掘
253 | >Chapter13 & 14
254 |
255 | **第01课:数学基础**
256 | * 余弦相似度(P210&P217)
257 | * 精确度和召回率(P219)
258 |
259 | **第02课:推荐算法**
260 | * 推荐系统的现象和目的:提高转化率
261 | * 推荐思路1 - 朴素贝叶斯分类:例子
262 | * 推荐思路2 - 协同过滤(基于搜索记录)
263 | * 基于邻域的推荐算法(邻居方法)
264 | * 基于用户的协同过滤
265 | * 算法步骤:用户偏好列表 → 设计相似向量 → 选取超过相似阈值的用户
266 | * 基于商品的协同过滤
267 | * 核心思路:通过分析用户行为,计算物品间的相似度
268 | * 计算步骤:计算物品相似度 → 根据物品相似度和用户偏好给用户生成推荐列表
269 | * 例子 - 文娱用品商店销售记录:构造物品的邻接矩阵 → 叠加邻接矩阵 → ...
270 | * 基于模型的推荐算法("Matrix factorization techniques for recommender systems")
271 | * 优化问题
272 | * 规模和效率:例子 & 解决措施
273 | * 覆盖率和多样性
274 | * 例子
275 | * 解决措施:归一化物品相似度
276 |
277 | **第03课:文本挖掘**
278 | * 文本挖掘的概述:结构化数据挖掘(自然语言分析)和 非结构化数据挖掘
279 | * 文本挖掘的7个主要领域
280 | * 文本分类
281 | * 分词:词典式检索 → 基于统计语言模型(SLM)etc.
282 | * 文本表示(向量化):词频 → TFIDF
283 | * 分类标记:描述分词和分类标签的映射关系
284 | * Rocchio算法:原型向量 & 代码(P222) & 两大假设(缺点)
285 | * 朴素贝叶斯算法:例子的计算步骤 & 代码(P225)
286 | * K近邻算法:算法流程 & 优缺点 & 代码(P226)
287 | * 支持向量机算法:算法思路 & 优缺点 & 代码(P227)
288 |
289 | >**本周作业:**
290 | >
291 | >用博客或Github整理
292 | >* 基于商品的协同过滤:算法流程,参照例子 - 文娱用品商店销售记录(P212)
293 | >* 分类标记:下述算法的算法流程、优缺点和代码: Rocchio算法(代码 - P222)、朴素贝叶斯算法(代码 - P225)、K近邻算法( 代码 - P226)和 支持向量机算法(代码 - P227)
294 |
295 | ### Week8:人工神经网络
296 | >Chapter15
297 |
298 | **第01课:数学基础**
299 | * 卷积(P248)
300 |
301 | **第02课:人工神经网络**
302 | * 起源:大脑、人体神经元 → 由神经元模拟电子信息处理系统
303 | * 人工神经网络
304 | * 训练过程:初始化权重、训练
305 | * 与回归、SVM对比
306 | * 常见的神经网络模型
307 | * 感知机
308 | * BP神经网络
309 | * 结构和原理:两层BP为例,激活函数Logisitic函数
310 | * ☆训练过程:误差计算、反向传播和权值修正
311 | * 例子 - 手写数字识别:BP神经网络的流程 和 代码(P243)
312 | * 卷积神经网络
313 | * 概述:特征提取层、特征映射层
314 | * 例子 - 青苹果图片:CNN的流程
315 |
316 | >**第03课:小节作业**
317 | >
318 | >用博客或Github整理
319 | >* BP神经网络的算法流程
320 | >* CNN的算法流程
321 |
322 | **第04课:期末考试**
--------------------------------------------------------------------------------
/高扬 - 白话机器学习 - 资料/白话大数据与机器学习_高扬.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dafish-ai/MachineLearning-GaoYang/74b9c7f35c036429d3f6739c6511dcebac165cb5/高扬 - 白话机器学习 - 资料/白话大数据与机器学习_高扬.pdf
--------------------------------------------------------------------------------