首页 > 编程知识 正文

机器学习,机器学习算法

时间:2023-05-04 07:45:19 阅读:185011 作者:4267

本文首先介绍机器学习的基本流程,然后针对机器学习涉及的数据、算法和评估这三个方面用到的基础概念进行介绍。

1.机器学习流程 

机器学习是一个数据流转、分析以及得到结果的过程,它的整个流程大致可以分为六个步骤,按照数据流自上而下的顺序排列分别是:场景解析、数据预处理、特征工程、模型训练、模型评估、离线/在线服务。如下图所示:

(1)场景解析:就是先把整个业务逻辑想清楚,把自己的业务场景进行一个抽象;这里的场景抽象就是把业务逻辑和算法进行匹配。

(2)数据预处理:主要进行数据的清洗工作,该阶段的主要目标是减少量纲和噪音数据对于训练数据集的影响。

(3)特征工程:是机器学习中最重要的一个步骤,算法质量并不一定是决定结果的最关键因素,特征工程的效果从某种意义上决定了最终模型的优劣;也就是说,在算法相对固定的情况下,可以说好特征决定了好结果。

(4)模型训练:如下图所示的“逻辑回归二分类”组件表示的是算法训练过程,训练数据经过了数据预处理和特征工程之后进入算法训练模块,并且生成模型。

(5)模型评估:机器学习算法的计算结果一般是一个模型,模型的质量直接影响接下来的数据业务;对于模型的成熟度的评估,其实就是对整套机器学习流程的评估。

(6)离线/在线服务:在实际的业务运用过程中,机器学习通常需要配合调度系统来使用;具体架构如下图所示:

2.数据源结构 

如果把机器学习算法比作一个数据加工场,那么进入工厂的数据就是被算法用来加工的原材料,机器学习算法需要的数据分为三类:结构化数据、非结构化数据和半结构化数据。

(1)结构化数据:是指我们在日常数据库处理中经常看到的日志类数据结构,是以矩阵结构存储在数据库中的数据,可以通过二维表结构来显示;结构化数据主要由两个部分组成,一个部分是每个字段的含义,另一个部分是每个字段的具体数值。

一般说来,机器学习算法处理的数据都是结构化的数据,因为机器学习需要把数据带入矩阵去做一些数学运算,结构化数据原生是以矩阵形态存储的,所以机器学习算法通常是只支持结构化数据的。

结构化数据中还有两个非常重要的概念:特征(Feature)和目标列 (Label);其中特征表示的是数据所描述对象的属性,在结构化数据集中,每一列数据通常就对应一个特征;目标列表示的是每一份数据的打标结果。

(2)半结构化数据:是指按照一定的结构存储,但不是二维的数据库行存储形态的数据;另一种半结构化数据就是在数据表中,某些字段是文本型的,某些字段是数值型的。

半结构化数据常用于一些数据的传递,但是在机器学习算法相关的应用方面还有一定距离,需要把半结构化数据转为结构化数据来进行操作。

(3)非结构化数据:典型的非结构化数据就是图像、文本或者是语音文件,这些数据不能以矩阵的结构存储,目前的做法也是通过把非结构化数据转为二进制存储格式,然后通过算法来挖掘其中的信息。

3.算法分类

将机器学习分为四种,分别是监督学习、无监督学习、半监督学习和增强学习。

(1)监督学习(Supervised Learning):是指每个进入算法的训练数据样本都有对应的期望值也就是目标值,进行机器学习的过程实际上就是特征值和目标队列映射的过程;通过过往的一些数据的特征以及最终结果来进行训练的方式就是监督学习法;监督学习算法的训练数据源需要由特征值以及目标队列两部分组成。

因为监督学习依赖于每个样本的打标,可以得到每个特征序列映射到的确切的目标值是什么,所以常用于回归以及分类场景。常见的监督学习算法如下表所示:

算法

具体包括

分类算法

K近邻、朴素贝叶斯、决策树、随机森林、GBDT和支持向量机等

回归算法

逻辑回归、线性回归等

 

监督学习的一个问题就是获得目标值的成本比较高。

(2)无监督学习(Unsupervised Learning):就是指训练样本不依赖于打标数据的机器学习算法,它主要是用来解决一些聚类场景的问题。常见的无监督学习算法如下表所示:

算法

具体包括

聚类算法

K-Means、DBSCAN等

推荐算法

协同过滤等

相较于监督学习,无监督学习的一大好处就是不依赖于打标数据。

(3)半监督学习(Semi-supervised Learning):通过对样本的部分打标来进行机器学习算法的使用,很多半监督学习算法都是监督学习算法的变形。

(4)强化学习(Reinforcement Learning):是一种比较复杂的机器学习种类, 强调的是系统与外界不断地交互,获得外界的反馈,然后决定自身的行为。

综上,监督学习主要解决的是分类和回归的场景,无监督学习主要解决聚类场景,半监督学习解决的是一些打标数据比较难获得的分类场景,强化学习主要是针对流程中不断需要推理的场景。具体的分类如下表所示:

算法

具体包括

监督学习

逻辑回归、K 近邻、朴素贝叶斯、随机森林、支持向量机

无监督学习

K-means、DBSCAN、协同过滤、LDA

半监督学习

标签传播

强化学习

隐马尔可夫

4.过拟合问题

过拟合(Over-fitting),从字面的意义上理解就是过度拟合的意思,常发生在线性分类器或者线性模型的训练和预测当中。过拟合的原理就是机器学习算法过度学习了训练集数据。 

如果在针对训练集做曲线拟合的时候做得过于“完美”,那么当我们针对于其他预测集进行预测的时候,这套模型很有可能会失准,因为这套模型在训练的时候过度地接近于训练集的特征,缺乏鲁棒性;所以在机器学习训练过程中,100%的拟合训练集数据并不一定是好的。

导致过拟合问题的原因可以总结为以下几种:

1)训练数据集样本单一;

2)训练样本噪音数据干扰过大;

3)模型过于复杂。

针对过拟合这样的预防和解决的办法如下:

1)在训练和建立模型的时候,一定要从相对简单的模型开始,不要一上来就把模型调得非常复杂、特征非常多,这样很容易造成过拟合现象的发生;

2)数据的采样,一定要尽可能地覆盖全部数据种类;

3)在模型的训练过程中,我们也可以利用数学手段预防过拟合现象的发生,可以在算法中添加惩罚函数来预防过拟合。

5.结果评估

常用到的概念包括精确率、召回率、F1值、ROC和AUC几种:

(1)精确率(Precision)、召回率(Recall)和F1(F-Measure)值:先了解下TP、TN、FP和FN这4个指标的含义:

1)TP(True Positive):本来是正样本,被模型预测为正样本。 

2)TN(True Negative):本来是负样本,被模型预测为负样本。 

3)FP(False Positive):本来是负样本,被模型预测为正样本。 
4)FN(False Negative):本来是正样本,被模型预测为负样本。 
精确率=TP/(TP+FP),召回率=TP/(TP+FN),F1=2X精确率X召回率/(精确率+召回率)。

精确率是模型在预测的时候正确的比例,召回率表示的是在预测到的正样例占全部正样例的比例;前者评估的是准确性,后者评估的是覆盖率。

(2)ROC和AUC:ROC(Receiver Operating Characteristic Curve)曲线是常用的二分类场景的模型评估算法曲线,这个曲线的横轴为FP值,TP值是纵轴,只要是模型曲线越接近于左上角就说明模型的效果越好;通过AUC值来表示ROC曲线与横轴围起来的面积,这个AUC值越大表示模型的效果越好。

 

(本文选自本人公众号“周氏逻辑”,欢迎扫码关注!)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。