机器学习的专业术语定义


1、 定义

人的“经验”对应计算机中的“数据”,让计算机来学习这些经验数据,生成一个算法模型,在面对新的情况中,计算机便能作出有效的判断,这便是机器学习。输入一个数据,通过计算机中的算法,给出假设。

2、机器学习全过程

2.1、数据的获取与储存

基于业务理解,尽可能找出对因变量有影响的所有自变量。
比如:我现在要预测用户对商品的下单情况,或者我要给 用户做商品推荐,那我需要采集什么信息呢? 可以分为三个方向去采集

  1. 店家:店家的类别,店家评分,店家所用快递等
  2. 商品:商品的类别,评分,购买人数,颜色等
  3. 用户:历史购买信息,消费能力,购物车转换比,商品停留时间,用户年龄,所在地址等

然后,我们针对我们所需要的数据,需要进行可用性评估

  1. 获取难度,数据我们能够采集到吗? 比如对于用户年龄来说,就比较难于获取,并不是每个人都在注册时都会去填写年龄
  2. 覆盖率,有些数据并不是每个对象都有的,比如对于历史购买信息,对于新用户来说,是没有的
  3. 准确率, 像用户年龄,店家评分,也都会有准确率的问题,因为店家可能刷单,用户也可能不写真实年龄
  4. 线上实时计算的时候获取是否快捷?

在确定好我们需要的特征之后,接下来就要进行考虑特征的获取和存储,主要分为离线特征获取和在线特征获取
1 离线特征获取方案
离线可以使用海量的数据,借助于分布式文件存储平台,例如HDFS等,使用例如MapReduce,Spark等处理工具来处理海量的数据等。
2 在线特征获取方案
在线特征比较注重获取数据的延时,由于是在线服务,需要在非常短的时间内获取到相应的数据,对查找性能要求非常高,可以将数据存储在索引、kv存储等。而查找性能与数据的数据量会有矛盾,需要折衷处理。

2.2、特征工程

特征工程做的好能发挥原始数据的最大效力,往往能够使得算法的效果和性能得到显著的提升,有时能使简单的模型的效果比复杂的模型效果好。
机器学习的大部分时间就花在特征工程上面,是机器学习非常基础而又必备的步骤。数据预处理、数据清洗、筛选显著特征、摒弃非显著特征等等都非常重要。
特征工程基本步骤:

  1. 特征清洗
  2. 特征预处理
  3. 数据降维
  4. 特征选择

    2.3、选择模型

    研究人员和数据科学家多年来创造了许多模型。有些非常适合图像数据,有些非常适合于序列(如文本或音乐),有些用于数字数据,有些用于基于文本的数据。

    2.4、训练模型、诊断、调优

    模型诊断中至关重要的是判断过拟合、欠拟合,常见的方法是绘制学习曲线,交叉验证。通过增加训练的数据量、降低模型复杂度来降低过拟合的风险,提高特征的数量和质量、增加模型复杂来防止欠拟合。诊断后的模型需要进行进一步调优,调优后的新模型需要重新诊断,这是一个反复迭代不断逼近的过程,需要不断的尝试,进而达到最优的状态。

    2.5、模型验证、误差分析

    通过测试数据,验证模型的有效性,观察误差样本,分析误差产生的原因,往往能使得我们找到提升算法性能的突破点。误差分析主要是分析出误差来源与数据、特征、算法。

    2.6、模型融合(集成学习)

    提升算法的准确度主要方法是模型的前端(特征工程、清洗、预处理、采样)和后端的模型融合。在机器学习比赛中模型融合非常常见,基本都能使得效果有一定的提升。
    模型融合就是训练多个模型,然后按照一定的方法集成过个模型,应为它容易理解、实现也简单,同时效果也很好,在工业界的很多应用,在天池、kaggle比赛中也经常拿来做模型集成。

    2.7、上线运行

    这一部分内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。 不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。

    3、 基本术语

    假设我们收集了一批西瓜的数据,例如:(色泽=青绿;根蒂=蜷缩;敲声=浊响), (色泽=乌黑;根蒂=稍蜷;敲声=沉闷), (色泽=浅自;根蒂=硬挺;敲声=清脆)……每对括号内是一个西瓜的记录,定义:
  • 数据集:所有记录的集合。
  • 实例(instance)或样本(sample):每一条记录。
  • 单个样本的特点为特征(feature)或属性(attribute),例如:色泽或敲声,。
  • 对于一条记录,如果在坐标轴上表示,每个西瓜都可以用坐标轴中的一个点表示,一个点也是一个向量,例如(青绿,蜷缩,浊响),即每个西瓜为:一个特征向量(feature vector)。
  • 一个样本的特征数为:维数(dimensionality),该西瓜的例子维数为3(青绿,蜷缩,浊响)。
  • 输入空间:所有输入的数据的集合
  • 输出空间:所有输出的数据的集合
  • 机器学习出来的模型适用于新样本的能力为:泛化能力(generalization)

  • 预测值为离散值的问题为:分类(classification)。

  • 预测值为连续值的问题为:回归(regression)。

  • 训练数据有标记信息的学习任务为:监督学习(supervised learning),容易知道上面所描述的分类和回归都是监督学习的范畴。

  • 训练数据没有标记信息的学习任务为:无监督学习(unsupervised learning),常见的有聚类和关联规则。

我们将学习器对样本的实际预测结果与样本的真实值之间的差异成为:误差(error)。

  • 在训练集上的误差称为训练误差(training error)或经验误差(empirical error)。
  • 在测试集上的误差称为测试误差(test error)。
  • 学习器在所有新样本上的误差称为泛化误差(generalization error)。

  • 学习能力过强,以至于把训练样本所包含的不太一般的特性都学到了,称为:过拟合(overfitting)。

  • 学习能太差,训练样本的一般性质尚未学好,称为:欠拟合(underfitting)。

可以得知:在过拟合问题中,训练误差十分小,但测试误差教大;在欠拟合问题中,训练误差和测试误差都比较大。目前,欠拟合问题比较容易克服,例如增加迭代次数等,但过拟合问题还没有十分好的解决方案,过拟合是机器学习面临的关键障碍。

4、机器学习三要素

机器学习方法=模型+策略+算法

4.1、模型

输入空间到输出空间的映射关系。学习的过程就是从假设空间选择最适合的假设
分析当前的解决问题,选定模型:分类,回归,聚类,检测异常等

4.2、数据

基于业务的理解,收集必要的数据并进行筛选。
要去弄清楚我们要做的事(业务常识)、这件事的现状(现有资源)以及要达成的目标(业务目标)等。对于信用卡欺诈检测项目而言,除了项目准备、资源准备等前期工作外,首先需要做的就是深入理解信用卡业务,知道什么是信用卡申请欺诈、为什么容易出现信用卡申请欺诈、我们拥有哪些可用的数据资源,以及信用卡欺诈检测系统要达成的目标,等等,然后才去思考如何做信用卡申请欺诈检测。
业务理解的过程,往往需要业务专家的深度介入,需要算法建模人员与业务专家的密切配合。在理解了业务需求后,对数据的获取、分析及处理就成为了无法绕过的重要步骤。数据的获取相对容易理解,简单点说就是在合法合规的前提下,尽可能多地收集到与业务问题密切关联的数据,比如信用卡申请人在申请信用卡过程中填写的个人信息、人行征信报告、第三方机构的信用分析报告等等,均可作为信用卡申请欺诈检测系统的输入数据。
数据分析的主要目的是认识数据并从数据中提取有用信息,这又是一个一言难尽的大范畴,工具五花八门,手段也多种多样,甚至贯穿着整个 AI 项目构建过程。一般而言,从不同渠道获取到的数据,其质量良莠不齐,充斥着大量的冗余、重复、缺失、异常以及不一致的数据,很难直接用于 AI 模型的构建过程。冗余数据的判定需要结合业务分析、相关性分析等手段,通常包括在业务上无效的数据,或与别的数据高度相关的数据等,这类数据与重复数据的处理方法很简单,简单粗暴地删除即可;缺失数据的处理方式有很多种,通常有简单删除、特殊值填补、相关数据衍生等常规方法,以及热卡填充、聚类填充、基于简单机器学习模型预测的高阶方法等;而异常值的处理,需要采用箱型图、三西格玛准则、DBSCAN 聚类及孤立森林等方法进行分析,识别出数据中的异常值后,按照缺失值的处理方式进行处理;不一致数据主要指那些意义相同但表示方式不一致的数据,比如大小写混用、日期格式不规则、地址不规范以及单位不统一等,这类数据只需要结合数据规则进行统一规整即可。数据规整后,通常需要对数据集进行切分。当数据量比较大的时候,可以切分出训练集、验证集与测试集,直接使用训练集训练模型,用验证集确定最佳的模型参数,用测试集评估模型性能;当数据量较小的时候,通常不切割出专门的验证集,而采用交叉验证的方式确定模型参数,以确保模型得到充分的训练。信用卡申请欺诈检测数据,往往总量特别大,但其中真正发生了欺诈行为的数据却很少,即存在非常严重的数据不均衡问题。因此,在数据集切分过程中,要确保欺诈类的数据能够以一定比例进入到各个数据集中。下面这张截图包含数据分割算子的平台。image.gif数据处理完成后,便进入了复杂精巧的特征工程阶段。在传统的机器学习类项目中,数据处理和特征工程具有极高的地位,甚至有人提出数据和特征决定了机器学习的上限,而算法和模型不过是逼近这一上限而已。在我们的实践中,数据处理和特征工程的整个过程至少占据了整个项目的百分之七十以上的开发人力,通常还需要在建模过程中回过头对特征进行反复打磨。

4.3、算法

学习模型的具体的计算方法,通常是求解最优化问题

从假设空间众多假设中选择到最优的模型的学习标准或规则。根据不同的问题选择不同的策略
要从假设空间选择一个最合适的模型,需要解决以下问题:

  • 评估某个模型对单个训练样本的效果
  • 评估某个模型对训练集的整体效果
  • 评估某个模型对包括训练集,预测集在内的所有数据的整体效果

定义几个指标用来衡量上述的问题

  • 损失函数:真实数和预测值之间的差距

常用:0-1损失函数;平安损失函数;绝对损失函数;对数损失函数

  • 风险函数:对损失函数累加,表达对整体的训练集的预测。又叫期望风险,期望损失。

常用:经验风险;期望风险;结构风险