05c4084db490ced2af52852402b02205
白话机器学习系列

<center>白话系列-机器学习相关名词</center>

 开篇我们就先认清一下机器学习的面貌,所谓名不正言不顺,这篇详细介绍机器学习里经常出现的名词。

一、有关数据的名词

 之前在介绍【在线授信产品风控模型】一文里提到机器学习领域有句用滥了但绝对真理的话:数据决定模型的上限,算法只是为了逼近这个上限。那么数据是什么,数据是用户行为的承载,更准确的说数据是客观世界中的对象、行为、关系在计算机世界里的表达,而机器学习就是学习这些表达,透过这千姿百态的表达,抽丝剥茧,发现隐藏在后面的规律。
- 数据集(实例、特征、目标特征)
下面是婚恋网站对男性择偶标准的一张调查问卷结果

<font size=2>这是大家最熟悉的数据表达方式,类似excel的表格,这类形式最受数据库人士的欢迎,传统关系型数据库存储的数据基本都是这种形式,目前很多常用的机器学习算法输入数据要求格式基本也是这种。</font>
 整张表格数据汇总称数据集,每一行都是对一个女性的基本信息的描述,最后是男性对该女性满意或不满意的评价,我们会利用该男性之前对女性的评价来预测一个新的女性会员是否符合该男性的选择标准,进而做出推荐或不推荐。这里每一行就是一个实例样本,其中像编号、年龄……我们称为列属性(或特征),具体的值如编号001、002称为属性值(或特征值),其中最后一列是否满意是我们关心的问题称为标签属性(或目标特征)
- 数据集划分(训练集、验证集、测试集)
 介绍完实例、特征、特征值、目标特征等基本概念,再介绍一下数据集的划分,通常机器学习领域数据集会被划分为训练集、测试集,在样本数据集充裕的情况下还会有验证集。
训练集:用于训练模型的数据集
验证集:用于验证模型的效果,选择模型
测试集:用于评估模型的效果
 验证集和测试集的区别就在数据是否参与了模型优化选择的过程,很多时候我们样本数据集数量有限,数据集只划分为训练集和测试集(收集样本数据有时候是很费人民币的,有时候有钱也收集不到更多数据~~~~)
 数据集在划分为训练集和测试集的方法也很多,原则上要保证训练集和测试集的样本数据分布和原来数据集保持一致,机器学习模型之所以有未仆先知的能力是有个假设:我们认为未来新的数据和样本数据集的分布是一致的。
 在样本数据有限情况下,为了充分利用样本数据信息,我们会采用N折交叉验证,最常用的就是5折或10折交叉验证,以其中的每一折作为测试集,其余数据作为训练集,得到N个测试结果,最后以这N个测试结果的平均值来评估模型的性能,另外为了保证模型结果的稳定性,通常我们还会随机划分R次,也就是R次N折交叉验证。
以上面数据集为例,五折交叉验证的示意图如下
 <iframe frameborder="0" scrolling="no" src="https://thumbnail0.baidupcs.com/thumbnail/4684fce667909cfe1ee126578305b412?fid=4093919610-250528-755435108595456&time=1526356800&rt=sh&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-swBluZpZ4pBskb%2B9OMuaTlHWJZU%3D&expires=8h&chkv=0&chkbd=0&chkpc=&dp-logid=8884878593590939662&dp-callid=0&size=c710_u400&quality=100&vuk=-&ft=video"></iframe>

二、有关算法的术语

  • 有监督学习和无监督学习  有监督学习可能是我们实际中用到的最多的一类机器学习算法,是在有指导下的一种学习,怎么理解呢?机器学习都是基于数据的(训练样本),从数据(训练样本)中发掘规律,用发现的规律去预测新的样本,根据训练样本里是否提供了输出特征,我们把机器学习分位有监督学习和无监督学习,分类和回归就是监督学习,而聚类是无监督学习。  回到上面婚恋网站的调查问卷  如果我们的任务是根据调查问卷里某个男性会员对已有女性会员的评价,来预测该男性对其他女性的评价,那么应该采用有监督还是无监督的学习算法?  很显然,调查问卷样本里(训练样本)已经给出了我们需要预测的目标变量(是否满意),所以是一种监督学习任务,监督学习类的算法很多,如常见的决策树模型、SVM、线性回归、逻辑回归等,后面系列会结合案例介绍这些算法。  如果我们的任务是对所有登记的女性会员进行分类,显然样本里是没有目标变量的,是一种无监督学习任务,无监督算法如典型的聚类算法。
  • 假设空间  假设X轴表示房子面积,Y轴表示房价,现在平面内有6个点(训练样本),我们需要根据这6个点来建立一个模型预测其他房子的价格,如果假设是一次线性函数关系的,那么平面内可以有无数的直线来拟合这6个点,所有可能的直线(直线其实就是所有X的系数A,和Y轴的截距B确定,这里A和B就是该线性模型的参数,B也称为偏差)集合就是假设空间,假设空间包含了所有可能的参数组合。
  • 目标函数(损失函数)  我们需要从假设空间里选择一个最优的参数组合,所以我们需要设计一个评估不同参数组合性能优劣的指标(即模型性能),这就是模型的目标函数。  上面预测房价的例子里很显然我们预测的房价和真实房价越接近越好,所以针对这个问题我们可以定义评价指标为房价的误差,当然我们想要的是所有样本(平面上6个点)的误差和最小,为了避免正负误差的相互抵消,和样本数量带来的影响,一般我们采用均方误差(MSE)或均方根误差(RMSE)  上面我们假设用一次线性函数来拟合平面上这6个点,学过平面几何的都知道,平面内任意的点都可以用任意的曲线拟合,如下图虚线完全通过6个点,在6个样本上误差就是0,是不是这就是最优的模型,我们会觉得这曲线也太复杂了?通过这6个点也许是个巧合吧?要是来个新房子可能就预测不准了吧?所有我们这些担心的,其实涉及到模型里2个重要的概念,模型的复杂度模型的泛化能力  模型的复杂度指什么,不同的模型复杂度定义不一样,像上面例子显然曲线比直线复杂,X的次数和项数决定了模型的复杂度,模型越复杂在训练样本上的拟合效果越好,但随着复杂度增加,模型在新样本的表现上性能越来越差(如下图所示)。  我们关心的是模型在预测新房子(测试样本)的房价上性能如何,这也是为什么前面提到要把数据集分为训练和测试集,在新的独立的数据上模型的预测能力就是模型的泛化能力。  基于模型复杂度带来的影响,我们在设计损失函数的时候会加入对模型复杂度的惩罚项,通常一个模型参数越多往往这个模型越复杂,所以常用的惩罚项包括L1正则和L2正则,L1表示参数的模,L2表示参数的模平方。  上面房价的例子是典型的回归问题,采用MSE或RMSE作为损失函数,另外像分类问题一般采用0-1损失、交叉熵等。损失函数、求解损失函数的最大(最小)值即优化算法是机器学习最重要的部分、以及模型的评估指标如AUC、P-R、KS等在下篇继续介绍。

最后感谢各位的花费时间阅读,也请各位多多指教
问题交流群:737184824

© 著作权归作者所有
这个作品真棒,我要支持一下!
机器学习、深度学习、大数据、数据科学爱好者集结地,分享 在各自领域里的工程实践经验和应用 让我们每天进步一点点...
0条评论
top Created with Sketch.