在行业设备大数据平台建设中,势必要用到大数据技术,而大数据技术中,机器学习与数据挖掘算法是重要的一环,我们通过这些算法与模型对设备的故障进行监控与预测,对设备技改需求进行预测,对设备采购需求进行预测以及创建各种模型与算法设备标签。下面我们对一些常用的算法与模型进行简要介绍。 h+ r. _5 O- Z7 @
在进行数据挖掘时,首先要进行商业理解,即我们需要达到什么目的,解决什么问题;其次需要进行数据理解,我们需要哪些数据以及需要什么样的数据;接着需要进行数据准备,即进行相关数据采集与读取,并进行数据预处理;继而建立相关模型,即使用什么算法与模型去解决这个问题;进而进行模型评估,即采用一些指标评价模型的好坏程度;然后,进行模型发布,即当模型的效果达到设定值之后,我们将模型进行上线发布;最后,进行模型更新,即使用后面的新生数据对模型进行更新,以达到更好的效果。 a6 U" B& B* t' W* c e- Y) W9 y; B
" u$ {) r7 `6 @6 s
数据预处理:: [9 P+ |5 V: Y B' v
现实的数据一般是不完整的、带有随机性的、有噪声的、与不一致的脏数据,数据质量不高,无法直接进行数据挖掘,或者挖掘的效果差强人意。为了以后的处理更加方便以及模型具有更好的效果,往往在使用模型之前需要对数据进行预处理。数据预处理包括:数据清理、数据集成、数据变换、数据归约。数据清理一般包括对数据纪录的缺失属性进行填充、对数据的噪声进行光滑操作、识别并删除数据中的异常或者离群点(在有些挖掘任务中则不需要处理,如欺诈行为识别)等。简而言之,包括数据缺失值处理、数据标准化、异常数据清除、数据错误纠正、重复数据删除等;数据集成是解决多个数据源可能带来的数据不一致问题,通过相关技术(如 ID Mapping)将多个数据源中的数据结合并统一存储,即建立数据仓库;数据变换,即将数据的各个属性通过平滑聚集、数据概化、数据规范化等方式将数据转换成适用于数据挖掘的形式;数据归约是指在数据挖掘中,往往数据量非常大,在少量数据上进行挖掘分析需要很长的时候,用来得到数据集的归约表示,它小得多,但仍然近于保持原数据的完整性,并结果与归约前的结果相同或者几乎相同。 3 ~4 m. Q2 C+ H' D' K
常用的数据挖掘与机器学习模型包括分类模型、回归模型、聚类模型、预测模型、关联挖掘模型等。它们分别解决不同的任务以及不同的数据处理方式,并且每种模型中有着众多不同的算法,每种算法都适应不同的场景。, \( A( y9 f0 s" z' a7 G
" @( _6 U( l f. k分类模型:3 A) S* r' O# N! y
分类是指,存在一些实例,我们不知道它所属的离散类别,每个实例是一个特征向量,并且类别空间已知,分类即将这些未标注类别的实例映射到所属的类别上。分类模型是监督式学习模型,即分类需要使用一些已知类别的样本集去学习一个模式,用学习得到的模型来标注那些未知类别的实例。在构建分类模型的时候,需要用到训练集与测试集,训练集用来对模型的参数进行训练,而测试集则用来验证训练出来的模型的效果的好坏,即用来评价模型的好坏程度,常用的评价指标有准确率与召回率。针对不同的分类任务、不同的数据以及不同的适应场景,分类中有着不同的分类算法。常见的分类方法包括:决策树、贝叶斯、K近邻、支持向量机、基于关联规则、集成学习、人工神经网络。 1 D" D0 e" ]4 E( a: T3 L+ V# @- [% \* e# @, ^! H' _
1. 决策树 $ G; q4 W& P( H9 x. n R0 J9 ? 决策树是进行分类与预测的常见方法之一,决策树学习方法是从训练集中每个样本的属性进行构建一棵属性树,它按照一定的规则选择不同的属性作为树中的节点来构建属性和类别之间的关系,常用的属性选择方法有信息增益、信息增益率以及基尼系数等。它采用自顶而下递归构建这颗属性类别关系树,树的叶子节点便是每个类别,非叶子节点便是属性,节点之间的连线便是节点属性的不同取值范围。决策树构建后,便从决策树根节点开始从上到下对需要进行类别标注的实例进行属性值的比较,最后到达某个叶子节点,该叶子节点所对应的类别便是该实例的类别。常用的决策树算法有ID3、C4.5/C5.0、CART等。这些算法的区别主要在于属性选择的策略、决策树的结构(如决策树中出现重复属性)、是否采用剪枝以及剪枝的方法、是否处理大数据集(即算法的复杂度,包括时间与空间复杂度)等。 J( P U7 ~/ x. ~5 T) B/ W
. o/ K g4 ~& H$ @
2. 贝叶斯分类器3 J( V B6 t3 J' O% A e
贝叶斯分类算法是基于概率论中的贝叶斯公式对实例进行分类的算法,它使用贝叶斯公式计算实例特征向量下每个类别的条件概率,选择条件概率最大所对应的类别作为其类别。常见的贝叶斯分类算法包括朴素贝叶斯、贝叶斯网络等,区别在于假设属性之间是否条件独立。朴素贝叶斯是假设属性之间是条件独立的,但是这种假设往往是不成立的。而贝叶斯网络是假设部分属性之间是有关联的,从而构建一个属性有向网络。 2 ~4 S. B+ J/ ?- O) C: g 8 y" {" `# N1 a2 p) e9 A% i3. K近邻; d( j- r- c$ k" F9 q
K近邻算法是基于实例的分类算法。该算法首先定义一个邻居范围,即设定邻居的个数,然后采用投票的方式来决定自己所属的类别,即多数战胜少数的策略,自己的类别为邻居中大部分所对应的类别。一般都是采用欧式距离,即选取欧式距离最近的K个已标注类别的样本作为自己的邻居,既可以采取邻居平等投票的方式,也可以采取邻居权值的方式进行投票,即不同的邻居的意见有着不同的权重,一般距离越近的邻居权重越大。该方法有个缺点就在于对每一个未知类别的实例都需要计算其与样本空间中所有样本的距离,因此复杂度过高,无法满足那些实时性要求较高的分类场景。$ d7 b4 G" r" r4 P& x
( X, p! W0 \3 w; L# a
4. 支持向量机$ E5 J! d; w5 ]
支持向量机(SVM)是一种统计机器学习分类算法,它是建立在由Vapnik和Chervonenkis提出的统计学习理论的VC维理论和结构风险最小化原理的基础上。结构化风险等于经验风险加上置信风险,而经验风险为分类器在给定训练样本上的误差,置信风险为分类器在未知类别的实例集上的分类误差。给定的训练样本的数量越多,泛化能力越有可能越好,则学习效果越有可能更好,此时置信风险越小。以前的学习算法目标是降低经验风险,要降低经验风险,则需要增加模型对训练样本的拟合度,即提高分类模型的复杂度,此时会导致VC维很高,泛化能力就差,置信风险就高,所以结构风险也高。而SVM算法则是以最小化结构风险为目标,这便是SVM的优势。SVM是最大化分类几何间隔来构建最优分类超平面来提高模型的泛化能力的。并且引入核函数来降低VC维的。支持向量机在对未知类别的实例进行分类时使用该实例落在超平面哪个区域所对应的类别作为该实例的类别的。 ~7 I( B! O+ f) x8 m