当前位置:首页 期刊杂志

计算机软件工程中的数据挖掘技术应用研究

时间:2024-05-04

阿迪娅·扎曼别克

(新疆应用职业技术学院 新疆维吾尔自治区奎屯市 833200)

数据挖掘是从庞杂数据中提取、采集所需信息,对于计算机软件的开发、管理均十分重要。在电子产品充斥着人们生活、工作的当下,网络上充斥着海量的信息,为提供更优质服务,需要在软件的开发、管理等阶段基于数据挖掘技术对复杂数据进行深层次挖掘、处理。数据挖掘技术应用于软件工程的时间并不长,但相关的理论分析和实践结果,表明其在软件工程上的应用具有重要的作用,无论是在银行、保险、零售等领域软件中的应用具有重要作用,在医疗、教育、装备制造等领域相关软件的应用中也具有重要作用,数据挖掘可应用于首软件的开发、运维等各个阶段,如软件开发阶段应用数据挖掘技术对软件质量进行分析和控制,合理应用各项数据资源,进行预测以避免存在较大安全漏洞。

1 决策树

决策树是数据挖掘中常用的技术,直观运用了概率分析,作为图解法,该技术由一系列具有树状结构的数据集组成,决策树包括树根、树枝、树叶和内部节点等易于实现和被理解,能在较短时间内针对较多数据做出预期的挖掘结效果。该技术一般基于最大熵减少量、基尼系数、样本统计量X2等算法实现数据的自动收集,判定当前决策点信息的属性,制定相应的判别规则,形成决策集树形结构。相比神经网络等技术,决策树技术能更好生成规则,给定模型后决策树能快速推理出逻辑表达公式,因此当需要进行决策且需要相应规则时,可应用决策树,但该技术难以对连续性字段进行预测,数据类别太多可能存在一定的错误率。目前该技术在教育、医疗、贷款申请等领域的软件工程中已得到较为广泛的应用。

决策树通过统计学方法来度量和分析信息,通过自定义的符号来描绘信息量,符号概念一般包括自信息量、信息熵、条件熵、平均互相信息等,自信息量只对连续的不确定信号进行信号标识,并标记信号发出概率等信息,信息熵用来度量信号源的不确定性,由于信号源不相互独立,用条件熵来度量信息不确定性,而平均互信息量是用来描述不同信号源间的关系,为使下一步的数据分类等工作量尽量减小,一般将信息增益最大的属性作为决策树节点,然后根据属性建立分枝,根据该思路收集和划分数据。具体的算法有CART、ID3、C4.5 等。

以ID3 算法为例。建立决策树模型时,首先需要采用AllElectronics 等数据库进行数据的训练,然后基于训练所的数据集利用ID3 算法建立决策树模型,实现对数据的分类。具体计算过程为:首先计算给定样本的信息熵,然后计算每一个属性信息增益情况,具体应需要确定income、age 等属性的每个样本值及分布情况,最终生成决策树的根及各个分枝、节点,并基于算法原理依对整全部训练数据进行分解、属性判定、归类,建成完整的决策树模型。

再以C4.5 算法为例,由于ID3 算法决策树分支由信息增益值决定,因此分类数据时分类结果可能向分类结果较多的属性倾斜。而C4.5 算法利用信息增益率选择决策属性,从而一定程度上减少了ID3 算法存在的分类误差率。设X是包含n 个数据的集合,该集合仅有单个属性,C4.5 算法步骤为:基于属性占比等参数计算该属性总熵,然后计算每个子集属性的信息期望,计算每个数据集的信息增益和计算分裂信息,基于这两个值推导信息增益率,并选出信息增益值最大的属性,构建决策树的结点,最后根据属性分类子集,重复推导出信息增益值最大的属性的相关步骤,直至建构出叶子、结点,由上而下递归构建完整的决策。

另外,决策树的剪枝工作也十分重要,由于特征描述不准确、事例存在大量噪声、类噪声,因这两个原因构建的叶、结点极为分散,不仅发生的可能性很低,还会使决策树存在庞大的分支,而剪枝是为例消除决策树过适应等问题,实质是消除训练集存在的异常、不可靠的噪声,减少破碎的过多的叶和结点,分为预剪枝、后剪枝两种。这样的叶结点比拥有许多事例的叶更易出现分类错误,更易受噪声影响。而牺牲部分枝叶并不会对决策树精确度产生影响,反而可能一定程度增加数据分类的精确度和简易性。

2 神经网络

受生物学启发,神经网络技术通过模仿人脑神经元结构与功能,基于非线性动力学,具有初步自适应能力、自组织能力及学习能力的数据挖掘技术,分为前馈神经网络、反馈式神经网络、自组织神经网络等多种类型,常用于指标体系的建立,通过合理设置体系和指标权重,来进行数据的分类与结果的预测,一般适用于庞大的数据处理。BP 神经网络是一种应用广泛且十分成功的神经网络技术,该技术具有高度并行性,能完成相应模式的抽取及趋势分析,因此在许多行业中被应用于构建智能化的控制系统,如食品检验、机械检修等领域。神经网络技术具有黑箱性,运行方式、运行过程较难理解,因此在实际应用中,需要针对不同应用需求和挖掘背景,优化神经网络算法,获得更好适应能力。神经网络利用大量多维属性实现自动学习,将已知分类数据作为输入的参数,在初始阈值、权值等作用下,算出输出结果,和实际结果进行比较分析误差,然后不断修改阈值、权值,从而不断降低误差,将最终参数作为训练完成的模型保存,再次接收输入数据时基于该模型准确的预测输出结果。

神经网络的特点与优势,主要体现在三方面:

(1)自学习功能。如实现图像的识别过程中,先识别不同图像样板,添加对应识别结果,当输入类似图象时,网络就可以基于自学习功能进行自动识别,推导出结果。基于自学习功能,神经网络技术在经济预测、效益预测、风险预测等方面具有远大前途。

(2)联想存储的功能。人类大脑也有记忆、联想等功能,神经网络主要基于数据库、数据反馈等实现记忆和联想。

(3)高速搜寻优化解的性能。在解决一个复杂的数据挖掘问题时,由于计算量庞大,优化解,往往需要很大的计算量,利用一个针对某问题而设计利用运算反馈和计算机的运算能力,以高速的寻可找到优化解。

以其在食品检验管理软件中的应用为例,数据挖掘实验设计。首先,需要进行任务描述,以食品检定研究院中各类食品安全的监督与检验等相关工作为例,需要采样人员依照抽检计划获取食品样品,检测样品各类属性信息,将信息传至安全检测的计算机数据管理软件平台中,检测人员需选择食品分类、检验项目等信息,系统将检验信息与标准值相比对得出检测结论。然后以抽检产生的数据作为文本挖掘的基础基础,训练BP 神经网络形成反映食品安全属性与检验结果的分析模型。数据选择方面,数据结构、特点将影响BP神经网络的学习效果,因此在训练时需选择合适且样本量充足的数据;结果分类方面,BP 神经网络以输出节点描述分类结果,如一项食品的抽检数据包含多个检测项,检测结论非为合格、不合格,分类结果即为检测项与结论的组合,如A 项合格,B 项不合格,根据排列组合计算分类的结果,实际应用中挖掘结果十分多,因此数据可读性差、软件要经过大量训练,因此在神经网络的训练中对不同的项目进行单独的训练,最终得到的结果只有两种,这样以来结果更为清晰明、训练更有针对性。

食品检验包含的检测项十分多,而选择特征属性,并非一所有属性均适合作为训练的输入数据,如一些有用信息没有具体取值范围,可能影响训练的效率,因此在综合分析检测项后应选取合适的特征属性和相应的训练数据集,设定分类较少的输出结果。

在数据预处理阶段,为保证输入信息的质量,需要人工进行精确的处理,对选定的食品抽检项目及数据中的各种缺失值、混乱项、错误项进行清洗、转换与删减按,保证神经网络的模型可以正确处理所有样本。然后根据检测数据的特点,处理训练数据集进,如对所有空值、未提供等项目设置为空,神经网络在处理此类值时就不需要做替换、删除等处理,生产日期等属性非常重要,但取值的范围十分广,因此可以将日期以年度、季度的形式进行概括,而销售额等属性的单位等信息是多样的,因此需统一单位后删除文本信息,以纯数值的形式来描述。

将预处理的数据集导入WEKA 等数据挖掘软件,进行数据训练。对数据量较大、特征多的属性,需耗费较多时间构建较具体的复杂模型,应确定模型中各个节点的阈值及节点间的权值,提升输出结果的准确性。最后进行预测实验,在检测数据软件上随机选取检验项和抽取的样本进行预处理、分类预测,最终给出预测结果,然后基于预实验结果预测的准确度对系统进行优化。

3 遗传算法

遗传算法是模拟生物遗传方式的智能算法,由J.H.Holland 提出的,是当前计算研究的重要分支。在数据挖掘领域,相比传统方法,遗传算法具有多种优势,如群体搜索不需要推到目标函数导数,遗传算法基于生物进化理论,结合遗传、变异、自然选择等方式优化算法,还可与神经网络等算法结合,以搜索最优解,还可基于其在处理组合优化问题上的优势,评估算法的适合性。遗传算法的一般运算过程为:初始化、个体评价、选择运算、交叉运算、变异运算、终止条件判断。由于遗传算法的自组织、自适应、自学习等能力较好,使其在多种领域被广泛应用,在求解图形划分、旅行商、背包、装箱等问题中具有较好效果。由于基础的遗传算法存在易过早收敛、效率低、算法复杂等问题,使其在算法精度、计算效率等方面有待提高,难以适应对图与网络等复杂序列数据的处理。

应用遗传算法时,首先需设计总体的运行流程,运行前将所有有待挖掘的数据视做训练样本集,将已判定的规则列表设置为空。运行时,每执行一次条件循坏后得到一个数据分类规则,将这个规则加入到规则列表中,并对训练样本集进行判定,剔除其中符合当前规则的数据,反复执行条件循环,直至训练样本集数目小于设定的阈值。

染色体编码的方式。基于达尔文的生物进化论,遗传算法在演化过程中,对适应度较低的规则将逐渐将其淘汰,而那些适应度较高的规则将会被保留下来。在获得目标函数最优值的过程中,需要对分类规则进行优化,基于规则包含的特定属性、分类取值、规则范围内的某个取值及二者的关系运算规则等参数,将每个分类边界用一个三元组进行表示,对单个分类规则中的染色体编码方式进行优化,用一个数组表示对应单个分类规则中的某个染色体。

构建评价函数。可基于待挖掘样本数目、满足给定规则某条件的样本数目;满足给定规则某结果的样本数目及某给定规则的支持度、置信度、覆盖度等参数,来清晰表述评价函数。其中,置信度可表明某规则前提下导致结论的可信程度,反映在不完全规则下推理结论的不确定性,置信度越大,表明条件为真时能较准确产生相应结论,基于规则表述的不确定性、不完备性,需要给予前项、后项一定的置信度值,推理时该值将以某种预定方式处理结论,使最后每个结论均具有对应的置信度;覆盖度用以描述结论包含于规则的正确程度,覆盖度越大,表明该规则据越完备。在设计评价函数时,还应综合考虑规则与样本的特征属性、类别属性及二者的匹配情况。进化过程中规则依靠评价度函数进行相互竞争,最终支持度、置信度、覆盖度均较高的规则得以保存。

产生初始种群。初始种群有多种形成方式,如产生一个空白染色体,然后按设定的规则依次向某染色体内添加基因,反复执行以上两步操作,直至成功产生初始种群。该方法中添加基因的操作十分重要,首先需基于特征属性、取值等假设一个表示某规则下的一个条件,用X 值表示基因被选择加入当前染色体的几率,该值越大表明基于与当前规则相关性越大,具有较高概率被添入当前染色体;被添加的概率受限于当前染色体内包含的属性条件、支持该规则样本数目的阈值等限制条件,若规则内已包含此属性条件,则该基因不能被再次添加,若样本数目低于用户的阈值,则无法添加。在成功构建某染色体的条件部分后,遗传算法将选择一个最优的分类值以作为该规则的结果部分,并对于可以被添入当前规则的基因,进行质量评估,计算其启发值,条件的启发值一般与该条件信息数量等因素有关,每个条件的熵能描述类别属性、类别数目及某条件成立时分类属性成立的概率值,该值越大,表明该条件在样本内分布较为平均,其被添加与当前染色体的概率比较低。为提升计算时间,熵值等固定值一般在预处理阶段计算。

交叉操作。指将两个父代的染色体进行基因重组,操作时首先随机选取父代染色体中的两个基因点,提取两点之间的部分,放在子代空白软色体相同的位置,然后从另一个父代中提取另一部分位置的基于,将其填入子代染色体对应的空白部分,最终子代软色体通过交叉操作得到包含两个父代染色体的部分基因。

变异操作与规则简化。为防止交叉操作产生的染色体均收敛于局部的最优点,需要通过变异操作使当前染色体的某个基因发生基因变异,一般在多次变异后取优值,然后进行规则简化,以剔除包含在规则内但与规则相关性较弱的条件,增强规则的结果预测能力,同时避免了规则与样本过饱和匹配的情况,提升规则的简易程度,使规则更易被用户理解与接受。简化规则时,首先需要针对当前的规则进行整体操作,根据顺序依次的剔除规则中多余的条件,每次只从整体的规则整体内剔除一个条件,在每次剔除操作后都按评价函数计算每次剔除后所得规则的适应程度,然后根据评价情况选择一个最优的规则,重复执行以上步骤,直至将规则进行了一遍完整的简化,将所有需被剔除的条件都剔除为止。

4 关联规则

关联规则能够发现各数据子集间的联系,或发现一些数据之间存在的派生关系,是目前数据挖掘中非常成熟和应用广泛的技术之一。关联规则,根据一个给定的数据库,对某种事物与另一事物间未知的联系或存在的规则进行探寻,如寻找“啤酒”、“纸尿裤”两种事物间的联系,然后根据二者间的关系采取了相应的促销手段,使两项商品销量大幅上升,可见这一技术对于商业决断具有很大价值。而在计算机软件工程的数据挖掘中,关联规则也具有很强适用性及实用价值,通过分析目标用户各项行为规律,发现各行为间的潜在关联,从而为商业决策提供依据,为客户关系的管理提供科学建议。

数据挖掘中首要的工作便是发现事物间关系,然后构建相应的规则,如今在计算机软件工程的数据库审计、隐私保护等工作中发挥着重要作用,如在数据库审计中,关联规则分析用户操作行为中用户名、目标对象、操作时间、主机IP等属性间的相关关系,实现对数据库可能遭受的安全风险行为进行预警,从而保护数据资产的完整性。

支持度、置信度用于度量关联规则合理性,支持度与置信度作为描述作为描述具体规则的重要阈值,支持度主要反应数据库中某项关联规则的重要性及某个数据集出现的频率,最小支持率作为支持度中的重要参数,指定了某参数所关注用户的感兴趣项集及相关项集间的规则,而置信度用以衡量某关联规则的可信程度,也被称为关联发生的概率,而最小置信度这一阈值参数对项集几乎没有影响,只对规则出现概率产生一定限制作用,若此值为l,则表明描述的两个项集间是相互独立的,若此值小于l,表明两个项集成负相关,两项事务伴随发生的概率较低,值越小,二者相伴发生的概率越小,若此值大于1,表明两个项集存在正相关关系,两项事务伴随发生的概率十分大,值越大,二者相伴发生的概率越大,若此值为O,表明两个项集不存在任何关联。关联规则在数据挖掘过程中一般有两个阶段:第一阶段是找出全部频繁项集,第二阶段是分析频繁项集形成强关联规则。关联规则的一般数据挖掘步骤如图1 所示,挖掘算法基于支持度等参数对待分析数据进行挖掘,然后基于置信度发现强关联关系。

图1: 关联规则的数据挖掘步骤图

常用关联算法有基于采样的算法,基于划分的算法、哈希算法、Apriori 算法等。关联规则在市场营销相关的计算机软件工程中能发挥巨大的数据挖掘作用,一方面为顾客提供一定的购买建议,另一方面帮助企业分析顾客购买行为、购买习惯,从而制定利于产品捆绑销售的策略,该技术通过分析用户普遍行为间的规律,能在识别保险中异常事件等方面发挥重要作用,因此能应用于保险、银行贷款等领域的软件工程中,发挥重要的风险预警作用。

5 聚类分析

聚类用于从大量数据集内找出相似数据,组成不同组,组成组的原则为组内数据相似性程度较高,而组间数据的特征差别极大。聚类是在无监督的模式下进行学习,在聚类分析前,被挖掘数据是没有标定的记录,只按照一定原则进行数据分类。聚类分析可应用于大量数据的分组,对用户数据展开个性化管理,为用户提供高质量数据服务,从而加强与用户的关系。聚类分析可判定数据相似性,因此也可用于离群数据的检测,如检测信用卡欺、电子商务等活动中的犯罪行为。根据聚类划依据的原理,可将聚类分析分为基于层次、密度、网格等的聚类方法。

聚类分析所划分的组能增强了对客观数据的认识,因此是进行概念描、和偏差分析的重要条件,在划分对象时,需要考虑对象间存在的差别,还要在探寻对象间深度关系的基础上划分出具有某种内涵描述的组,避免聚类的片面性。

根据监督情况还可将聚类算法分为无监督分类、有监督分类两种,前者指在无先验知识的分类前提下进行的分类,需要在分析事物间存在的特定规律、关系的基础上进行分类,后者只对有足够先验知识的相关事务进行分类,或在有指导的情况下,根据事物属性或某种分类标准对样本进行分类和训练,进而使己知样本在该分类体系下被正确分类,用学习训练成功的分类系统分类未知数据。

聚类算法具有典型的要求:

(1)可扩展性,数据库数据庞杂,应用聚类算法时可能出现无法承受巨大数据压力、分析结果偏差大等情况,进而造成系统崩溃、数据挖掘价值低等后果;

(2)处理不同属性的能力。对象属性具有很强的多样性,如符号类型、图像类型、顺序类型或各类型的组合,为提升聚类的有效性,需要算法能够针对多种特定属性进行处理;

(3)发现多样形状的聚类。随着数据扩大或改变,可能生成类似、大小、密度多样的圆形、球形等形状的聚类形状,因此需要算法能适应任意形状;

(4)处理噪声的能力,为提升数据处理质量,需要对不明数据、存在异常、丢失的数据及噪声数据进行处理;对输入顺序的不敏感性。输入数据顺序不一会导致不同聚类结果,因此需降低算法对数据输入顺序的敏感性,提升聚类准确性。

(5)聚类约束性。现实中应用聚类分析需要在一定的约束条件下进行,这是由于数据挖掘时需要考虑隐私保护等工作,如处理包含用户隐私数据时,需要基于相应的隐私保护规则和算法,在隐藏相关敏感数据的基础上开展算法研究,从而使聚类算法能满足该约束条件的数据挖掘要求。

6 结束语

综上所述,数据挖掘技术在软件工程中的应用越来越多,为提升计算机软件的安全性和服务水平,软件开发和运维人员需要与时俱进,合理的利用各类数据挖掘技术,开发出高质量的软件,并进行及时有效的升级优化,为用户和企业提供更优质的数据服务。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!