综述
刚硕士毕业了,趁着对所学知识还有记忆,赶快把之前笔记整理下,写成博客也方便整理。机器学习真是一门诡异的课程啊,感觉学了什么又感觉什么也没学=_=。
目录:
主要内容:
-
机器学习分为:
-
监督学习:
- 分类
1.1 决策树
1.2 KNN
1.3 SVM
1.4 人工神经网络(非DNN) - 回归
2.1 线性回归
2.2 非线性回归
- 分类
-
无监督学习:
- 聚类
- 层次聚类
-
深度学习(既有监督也有无监督所以单独摘出来说):
- CNN
- RNN
比较常用的机器学习的算法和结构就是如上面所示。
机器学习的基本过程
**
评估机器学习算法
**
- 准确性
- 速度
- 健壮性
- 可规模化
- 可解释性
只有从这五个方面去评估才能评价出机器学习算法的优劣。
交叉检验:
在拿到数据即数据集的时候,要把数据集,分成训练集和测试集。
一种最常用的方法是平分,或者是取10分之一的数据来作为测试集合。剩下的都是训练集。这样有一个弊端,是在数据量不是特别大的时候浪费数据。 那用来作为测试用的数据基本算是浪费了。因为算法并没有学习到这些数据中蕴含的规律。而且评估结果还容易产生误差。但如果把测试集也用作训练,则会使算法过度拟合。所以一个常用的方法就诞生了k-fold。比较常用的是10-fold。
算法:10-fold
1. 把数据分成10份
2. 取出其中一份为test set
3. 其他的9份都是training set
4. 用training set, training 算法
5. 用test set 测试出其中的 准确率,或者 R方 什么的来评估,得到结果 xi
6. 再从10份中选取从来没又作为Test set的一份来作为test set.
7. 重复2-6的过程,直到每份都作为test set 使用过。
8. 把10个评估结果取平均值。