1. 基本概念
(X, y):样本点,有k维特征:(x1, x2, x3......xk),通常我们认为这些样本点散落在k维的特征空间内,对应类别标签或者回归值为y,一般情况下y只有一维。以一个简单的二分类问题为例:
样本集:包含n个样本点的集合,可以划分成两部分,一部分为训练集,另一部分为验证集
训练集/建模集:用于建立模型,计算模型参数的训练样本,假设本系列文中的训练集为B,B中共有Bn个样本点
验证集/测试集:投入模型中验证模型稳定性,假设验证集为T,T中有Tn个样本点
2. 分类与回归
这是机器学习讨论的核心问题,其实概括起来就是一个数学问题。
假设我们有一个已知的样本集S,我们知道这个样本集中每个样本点的特征值(x1, x2, x3......xk),和这一组特征对应的真实值;还有一个未知的样本集U,我们只知道这个样本集中每个样本点的特征值(x1, x2, x3......xk),却不知道其对应的真实值。
我们希望通过S的样本点建立一个模型,使得根据U中每个样本点的特征值计算得到的预测值能够尽量接近对应的真实值。
分类问题的y值一般是离散值,而回归问题的y值一般是连续值。
3. 评价方法
我们已经建立了模型,那如何评价这个模型的好坏呢?也就是说我们如何衡量预测值是足够接近真实值的呢?
首先U集合中的真实值我们不可能得知,所以不可能用U中的样本点来评价,但S中的我们都知道,因此我们通常会将S集合的样本划分一部分出去(也就是T),T不参与建模,这部分样本点用于评价模型的好坏。
分类与回归用的是不一样的衡量标准。
4.降维
通常k个维数的特征并不都是对于建立模型有用的,维数过多会造成维数灾难,模型的精度不升反降,而且非常消耗资源,因此可以通过算法挑选出一些对模型建立比较关键的维数。
5. 需要的基础
每个人已有的基础不同,但最基础需要你是一个学过高数、线代、概率论这三门课程的,不需要精通,只要学过即可,外加学习过一门编程课程,c最佳,其他也可。
说实在话,学机器学习还是需要一些门槛的,不过好在入门的经典算法的门槛要求不高,不需要啃完高数、线代、概率论全本,只需要在某一个算法涉及到某一个知识点时,将该知识点吃透即可。
6.本系列介绍的算法
从最简单的Kmeans开始;介绍同样以距离为分类依据的KNN;
讲一个最简单也是最广为人知的PCA降维算法。
然后介绍最简单的线性回归算法,和在此基础之上加入了正则项的岭回归与Lasso回归;趁热打铁,介绍同样与岭回归lasso回归同样基础知识的支持向量机SVM;
接下来进入我们最常用的森林家族。从最简单的树算法开始讲起;然后介绍这些树如何组成了强分类的随机森林算法;在此之上介绍Adboost;最后是应用最广泛的GBR算法。
再最后是经典且重要的二分类算法Logistic回归;和以Logistic回归为基础的简单神经网络MLP及其后向转播算法。
到这里,基本上对经典机器学习算法原理就能有一个比较基础的了解了,其实也不需要了解特别多,如果是做数分入门,树算法好好学习一下;如果是神经网络,那水就更多更深了,毕竟现在早就是神经网络的天下了,机器学习已经是时代的眼泪了。
但在收到设备限制或者样本点比较少比较特殊的时候,机器学习还是很有用的,毕竟有句话说的好,在做模型的时候,模型精度的上限是由特征决定的,再优秀的模型再精准的调参也只能无限接近这个上限而已。