本发明涉及大数据运维技术领域,尤其涉及一种基于pca的海量linux系统运维数据降维方法。
背景技术:
随着云时代的来临和数据挖掘技术的快速发展,大数据应用不断普及,在各领域占据着越来越重要的位置。海量运维数据作为一项重要的数据资源,不仅包含了各业务当前的运行状态、资源占用情况、可能存在的问题,还能从中推断出业务之间的潜在关联、引发问题的根源以及数据发展的趋势,结合深度神经网络对其进行更深层次的分析,能够在很大程度上提高数据资源的利用率并进行性能、故障等相关方面的预测,实现高效率主动运维。
当前数据分析技术虽然已经能够通过运维数据高效地判断各项业务的运行情况,并找出存在的问题,但对于海量数据而言,不加精简而直接对其进行处理不仅会增加很多额外的资源消耗,还可能对数据分析的效率和结果造成负面影响。
技术实现要素:
本发明的目的在于提供一种基于pca的海量linux系统运维数据降维方法,能够对海量的运维数据进行降维简化。
为实现上述目的,本发明提供了一种基于pca的海量linux系统运维数据降维方法,包括以下步骤:
基于采样周期采集多项数据,构建运维数据集;
基于三种降维标准,对所述运维数据集进行主成分确定,其中,三种降维标准包括:kaiser-harris准则、cattell碎石检验准则和平行分析准则;
对所述运维数据集进行数据中心化处理,同时计算出对应的协方差矩阵;
根据确定出的所述主成分,将所述协方差矩阵做特征值分解,并利用得到的投影矩阵进行数据降维。
其中,基于采样周期采集多项数据,构建运维数据集,包括:
以5分钟为周期,对对应的脚本进行采样,并将每个周期内得到的多项数据组成一条记录,然后将得到的所有记录构建运维数据集。
其中,对所述运维数据集进行数据中心化处理,同时计算出对应的协方差矩阵,包括:
将所述运维数据集的原始坐标系远点平移到数据中心,对所述运维数据集进行数据中心化处理。
其中,根据确定出的所述主成分,将所述协方差矩阵做特征值分解,并利用得到的投影矩阵进行数据降维,包括:
根据确定出的多个主成分对应的特征向量对所述协方差矩阵进行特征值分解,组成投影矩阵。
其中,根据确定出的所述主成分,将所述协方差矩阵做特征值分解,并利用得到的投影矩阵进行数据降维,还包括:
将获取的原始运维数据集投影到所述投影矩阵上,并将所述投影矩阵中的左侧矩阵中的每一列列向量变换到右侧矩阵中的每一行行向量为基的空间中,完成数据的降维。
本发明的一种基于pca的海量linux系统运维数据降维方法,以5分钟为周期,对对应的脚本进行采样,并将每个周期内得到所有记录构建运维数据集;然后,基于kaiser-harris准则、cattell碎石检验准则和平行分析准则对所述运维数据集进行主成分确定分析;接着进行数据中心化处理和协方差矩阵的计算;并对所述协方差矩阵进行特征值分解,并利用得到的投影矩阵进行数据降维,能够对海量运维数据进行降维化简。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于pca的海量linux系统运维数据降维方法的步骤示意图。
图2是本发明提供的一种基于pca的海量linux系统运维数据降维方法的流程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
请参阅图1和图2,本发明提供一种基于pca的海量linux系统运维数据降维方法,包括以下步骤:
s101、基于采样周期采集多项数据,构建运维数据集。
具体的,linux系统运维数据采集,采集linux系统运维数据,针对影响到系统整体性能的运行参数,通过对应的脚本以5分钟为周期进行采样,主要包括系统最大进程数、当前运行进程数、系统最大打开文件数、当前打开文件数、系统内存大小、当前内存占用率、总交换空间大小、可用交换空间大小、系统正常运行时间、处理器负载、登录用户数、密码校验和、每秒中断数、cpu使用率、磁盘使用率、当前网络流量等16项数据,以这16项数据为列,每个周期采集到的各项数据组成一条记录,整个采样周期采集的linux系统运维数据可用一个m×n的矩阵表示,其中,m为记录条数,n为每条记录的参数个数,初始为16,可根据实际需要增加或者减少。整个采样周期采集的数据矩阵如式(1)所示:
x={x1,x2,...,xm}t(1)
其中,xi表示第i条具有n个参数的记录,矩阵x共由m条记录组成。
s102、基于三种降维标准,对所述运维数据集进行主成分确定。
具体的,根据n维采样数据集x={x1,x2,...,xm}t确定低维空间的维数d。降维后的目标维数使用以下三种常见的标准来综合判断:
1)kaiser-harris准则。每个主成分都与相关系数矩阵的特征值相关联,第一主成分与最大的特征值关联,第二主成分与第二大的特征值关联,依此类推。kaiser-harris准则建议保留特征值大于1的主成分,特征值小于1的主成分所解释的方差比包含在单个变量中的方法还要少。
2)cattell碎石检验。碎石图绘制了特征值与主成分数的关系图形,该图能够清晰地展示特征值与主成分数的相关变化情况,当某个特征根较前一特征根的值出现较大的下降,而该特征根的值较小,其后特征根的变化也不大,说明添加该特征根对应的因素能获得的信息增益很少,而之前的特征根则对应其主要作用的主成分。
3)平行分析。采用一定次数的模拟实验,依据与初始矩阵大小相同的随机数矩阵来判断要提取的特征值,若基于真实数据的某特征值大于一组随机数据的平均特征值,那么该成分可以保留。
综上,满足约束条件
s103、对所述运维数据集进行数据中心化处理,同时计算出对应的协方差矩阵。
具体的,对n维采样数据集x={x1,x2,...,xm}t进行数据中心化,将数据原本所在坐标系的原点平移到数据中心,使表面不相关的数据在新坐标系中显现出相关性且不改变数据的相对分布。数据中心化过程由下式定义:
计算数据的协方差矩阵。pca的最终目的是将一组n维数据降到d维,且d个特征之间尽可能两两不相关,当协方差为0时,表示两个特征完全独立。协方差矩阵中每个元素是各个向量元素之间的协方差,其计算公式如下:
s104、根据确定出的所述主成分,将所述协方差矩阵做特征值分解,并利用得到的投影矩阵进行数据降维。
具体的,对协方差矩阵做特征值分解,根据s102的结果取d个特征值对应的特征向量组成投影矩阵w*。pca将原始的n维数据转换到d维空间中而达到简化数据的效果,而d个最能代表原始数据的特征向量组成的投影矩阵即为d维空间的基,是低维数据空间的基础架构。
利用投影矩阵得到降维后的数据。将原始数据投影到得到的投影矩阵上,结果即为降维后的数据,计算流程如下:
上式表示将左侧矩阵中的每一列列向量变换到右侧矩阵中每一行行向量为基的空间中去,可记作w×x=c,其中,c为d×m维矩阵,d表示降维后的维度,m表示记录数。当d<xi的维度n时,该操作即为降维操作,提取关键数据,减少了每条记录数据的维度,但数据的记录总数不变。
本发明的一种基于pca的海量linux系统运维数据降维方法,以5分钟为周期,对对应的脚本进行采样,并将每个周期内得到所有记录构建运维数据集;然后,基于kaiser-harris准则、cattell碎石检验准则和平行分析准则对所述运维数据集进行主成分确定分析;接着进行数据中心化处理和协方差矩阵的计算;并对所述协方差矩阵进行特征值分解,并利用得到的投影矩阵进行数据降维,能够对海量运维数据进行降维化简。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
1.一种基于pca的海量linux系统运维数据降维方法,其特征在于,包括以下步骤:
基于采样周期采集多项数据,构建运维数据集;
基于三种降维标准,对所述运维数据集进行主成分确定,其中,三种降维标准包括:kaiser-harris准则、cattell碎石检验准则和平行分析准则;
对所述运维数据集进行数据中心化处理,同时计算出对应的协方差矩阵;
根据确定出的所述主成分,将所述协方差矩阵做特征值分解,并利用得到的投影矩阵进行数据降维。
2.如权利要求1所述的基于pca的海量linux系统运维数据降维方法,其特征在于,基于采样周期采集多项数据,构建运维数据集,包括:
以5分钟为周期,对对应的脚本进行采样,并将每个周期内得到的多项数据组成一条记录,然后将得到的所有记录构建运维数据集。
3.如权利要求1所述的基于pca的海量linux系统运维数据降维方法,其特征在于,对所述运维数据集进行数据中心化处理,同时计算出对应的协方差矩阵,包括:
将所述运维数据集的原始坐标系远点平移到数据中心,对所述运维数据集进行数据中心化处理。
4.如权利要求3所述的基于pca的海量linux系统运维数据降维方法,其特征在于,根据确定出的所述主成分,将所述协方差矩阵做特征值分解,并利用得到的投影矩阵进行数据降维,包括:
根据确定出的多个主成分对应的特征向量对所述协方差矩阵进行特征值分解,组成投影矩阵。
5.如权利要求4所述的基于pca的海量linux系统运维数据降维方法,其特征在于,根据确定出的所述主成分,将所述协方差矩阵做特征值分解,并利用得到的投影矩阵进行数据降维,还包括:
将获取的原始运维数据集投影到所述投影矩阵上,并将所述投影矩阵中的左侧矩阵中的每一列列向量变换到右侧矩阵中的每一行行向量为基的空间中,完成数据的降维。
技术总结