1、什么是机器学习?
个人理解:把机器学习看成是一种数据建模。本质为借助数学模型理解数据,给模型装上可以适应观测数据的可调参数时,学习就开始了,一旦模型开始拟合旧的观测数据,就可以预测并解释新的观测数据。
2、机器学习的分类
- 有监督学习
对数据的若干特征与若干标签(类型)之间的关联性进行建模的过程,只要模型被确定就可以应用到新的未知数据上,这类学习过程可进一步分为分类(classification)任务与回归(regression)任务。
在分类任务中标签是离散值
在回归任务中标签是连续值 - 无监督学习
指对不带任何标签的数据特征进行建模,通常被看成是一种“让数据自己介绍自己的过程”。这类学习过程包括聚类(clustering)任务和降维(dimensionality reduction)任务。
聚类可以将数据分成不同的组别
降维可以用更简洁的方式表现数据
3、机器学习的流程
(1)数据收集与预处理
(2)特征选择与模型构建
(3)评估与预测
机器学习算法的一般步骤:
(1)对于一个问题,用数据模型来描述,huz例如回归模型或者分类模型
(2)通过最大似然、最大后验概率或者最小化分类误差构建模型代价函数
(3)求解代价函数,找到最优解,存在以下情况:
- 代价函数存在解析解,例如对代价函数求导,找到倒数为0的点则可以直接找到最优的参数
- 代价函数难以找到最优解,可通过梯度下降等算法不断迭代以实现代价函数收敛从而找到最优解
4、模型验证
模型验证就是选择模型和超参数后,通过对训练数据进行学习,对比模型对已知数据的预测值和实际值之间的差异。
- 留出集
先从训练模型的数据中留出一部分,然后用这部分留出来的数据对模型进行检验
缺陷:模型训练失去了一部分数据训练机会,留出集部分数据并没有为模型训练做出贡献。在数据集规模较小时可能还会产生验证不准确的问题。 - 交叉验证
让训练数据的每个子集既是训练集又是验证集。
例如:将数据分成五组,每一轮实验用其中的四组数据进行模型训练,再用第五组数据来评估模型的准确率。依次进行多轮实验。
什么时候使用交叉验证?
- 对于小规模的数据集而言,交叉验证产生的额外计算负担不是事儿,适用交叉验证
- 低于大规模数据集而言,单一的验证集就已足够,如果为了减少代码运行时间成本,可不进行交叉验证