CN117971685A - 投产准入判断方法、装置和计算机设备 - Google Patents
投产准入判断方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN117971685A CN117971685A CN202410175096.9A CN202410175096A CN117971685A CN 117971685 A CN117971685 A CN 117971685A CN 202410175096 A CN202410175096 A CN 202410175096A CN 117971685 A CN117971685 A CN 117971685A
- Authority
- CN
- China
- Prior art keywords
- risk
- data
- code
- production
- index data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000003066 decision tree Methods 0.000 claims abstract description 39
- 230000002159 abnormal effect Effects 0.000 claims description 33
- 230000008859 change Effects 0.000 claims description 14
- 238000011161 development Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000000875 corresponding effect Effects 0.000 description 39
- 238000004590 computer program Methods 0.000 description 14
- 230000007547 defect Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000012827 research and development Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012502 risk assessment Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Factory Administration (AREA)
Abstract
本说明书涉及金融科技技术领域,尤其涉及一种投产准入判断方法、装置和计算机设备。其中投产准入判断方法,包括:获取待投产的目标代码;根据目标代码的技术数据,确定多种风险维度下的风险指标数据;根据多种风险指标数据,在决策树模型中匹配相应的叶子节点;根据匹配到的叶子节点,判断目标代码是否允许投产。本说明书实施例可以提高代码投产准入判断的全面程度和准确程度。
Description
技术领域
本说明书涉及金融科技技术领域,尤其涉及一种投产准入判断方法、装置和计算机设备。
背景技术
软件代码在投入生产环境之前,需要经过一系列的审查和验证,确保软件代码达到一定的质量标准和规范要求,以保证其能够在生产环境中稳定运行。
已有技术中,针对待投产软件代码的准入识别,往往基于经验和人工判断。运维人员可以参考一定的规定标准,通过经验来判断软件代码是否合规,以及是否存在潜在风险。这种方法容易受主观因素和个人经验的影响,缺乏客观性和一致性,判断结果不够全面和准确。
发明内容
本说明书实施例提供一种投产准入判断方法、装置和计算机设备,用于提高代码投产准入判断的全面程度和准确程度。
本说明书实施例提了供一种投产准入判断方法,包括:
获取待投产的目标代码;
根据目标代码的技术数据,确定多种风险维度下的风险指标数据;
根据多种风险指标数据,在决策树模型中匹配相应的叶子节点;
根据匹配到的叶子节点,判断目标代码是否允许投产。
本说明书实施例还提供了一种投产准入判断装置,包括:
获取单元,用于获取待投产的目标代码;
确定单元,用于根据目标代码的技术数据,确定多种风险维度下的风险指标数据;
匹配单元,用于根据所述多种风险指标数据,在决策树模型中匹配相应的叶子节点;
判断单元,用于根据匹配到的叶子节点,判断目标代码是否允许投产。
本说明书实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述投产准入判断方法。
本说明书实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述投产准入判断方法。
本说明书实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述投产准入判断方法。
本说明书实施例的投产准入判断方法,可以获取待投产的目标代码;可以根据目标代码的技术数据,确定多种风险维度下的风险指标数据;可以根据多种风险指标数据,在决策树模型中匹配相应的叶子节点;可以根据匹配到的叶子节点,判断目标代码是否允许投产。这样可以通过量化的多种指标,借助决策树模型来评估代码的投产风险,减少了主观因素的影响,提高了代码投产准入判断的全面程度和准确程度,便于代码投产的风险管理和决策。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中投产准入判断方法的流程示意图;
图2为本说明书实施例中决策树的示意图;
图3为本说明书实施例中投产准入判断装置的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。基于所描述的本公开的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。另外,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
软件变更是指对软件代码进行修改的过程。所述变更可以包括功能增加、缺陷修复、性能优化等方面。变更代码在投产前需要进行投产准入的判断。所述投产是指将变更代码投入生产环境。所述投产准入,是指变更代码在投入生产环境之前,需要经过一系列的审查和验证,确保达到一定的质量标准和规范要求,以保证其能够在生产环境中稳定运行。已有技术中,针对变更代码的投产准入判断,往往基于经验和人工进行。运维人员参考一定的规定标准,通过过往经验来判断变更改造是否合规,以及是否存在潜在风险。这种方法容易受主观因素和个人经验的影响,缺乏客观性和一致性。具体地,这种方法存在以下两个典型问题:第一,对于研发人员提交的变更代码,缺少全面分析能力和一致的风险评估能力,运维人员和开发人员可能给出不同的风险评估结果,导致评估结果不一致;第二,对于变更代码产生的影响,更多地依赖运维人员的经验积累,没有客观地、可量化的直观判断指标。
本说明书实施例提供一种投产准入判断方法。所述方法可以应用于服务器。
请参阅图1。所述方法可以包括以下步骤。
步骤11:获取待投产的目标代码。
在一些实施例中,所述目标代码包括待投入生产环境的代码。所述生产环境是指用于生成、部署和运行实际应用程序的环境。所述目标代码可以包括新应用程序的代码。所述目标代码也可以包括已有应用程序的变更代码。所述变更代码可以仅包括所述已有应用程序改造部分的代码,例如功能增加、缺陷修复、性能优化等改造部分的代码。所述变更代码也可以包括所述已有应用程序的全部代码。从而变更代码可以理解为所述已有程序的新版本代码。
在一些实施例中,所述服务器可以接收终端设备发送的目标代码。所述终端设备可以包括面向研发人员的设备,包括但不限于智能手机、台式机、笔记本电脑、服务器等。具体地,研发人员可以在终端设备输入编写的目标代码,可以在终端设备输入投产指令。所述终端设备可以接收研发人员输入的目标代码;响应于接收到的投产指令,可以向所述服务器发送投产请求。所述投产请求中可以包括所述目标代码。当然,研发人员还可以在终端设备中输入其他信息,所述投产请求中可以包括所述其他信息。所述其他信息可以包括投产日期等。
步骤12:根据目标代码的技术数据,确定多种风险维度下的风险指标数据。
在一些实施例中,所述技术数据可以包括与目标代码开发相关的数据。目标代码的开发流程可以包括一个或多个阶段,例如研发阶段、测试阶段、应用阶段等。所述技术数据可以包括与所述一个或多个阶段相关的技术数据。例如,所述技术数据可以包括与代码研发相关的第一技术数据、与代码测试相关的第二技术数据、与代码应用相关的第三技术数据等。所述第一技术数据可以包括研发阶段对应的数据,例如改造代码数量、研发投入的人力资源数据、代码质量数据等。所述改造代码数量包括改造的代码行数或者文件数量。在研发阶段可以通过静态字节码分析技术对目标代码的质量进行评估,得到代码质量数据。所述静态字节码分析技术是一种分析Java字节码的技术。它通过静态分析字节码中的指令序列和操作数栈,推断程序执行时的行为,可以用于检测代码质量。所述第二技术数据可以包括测试阶段对应的数据,例如测试出的缺陷数量、目标代码所对应开发团队的代码质量等。所述第三技术数据可以包括应用时的数据,例如变动的网络和设备数量、涉及服务群组数量、交易量等。
所述服务器可以从业务平台获取目标代码的技术数据。例如,所述服务器可以从一个业务平台获取第一技术数据、第二技术数据和第三技术数据。再比如,所述服务器也可以从不同的业务平台获取不同的技术数据。例如,所述服务器可以从一个业务平台获取第一技术数据,可以从另一个业务平台获取第二技术数据,可以从另一个业务平台获取第三技术数据。
在一些实施例中,所述多种风险指标数据用于从多种风险维度表征目标代码的投产风险。所述多种风险指标数据可以包括第一风险指标数据、第二风险指标数据、第三风险指标数据。例如,所述服务器可以对第一技术数据、第二技术数据和第三技术数据中的至少一个进行分析,从而得到所述第一风险指标数据、所述第二风险指标数据和所述第三风险指标数据。
所述第一风险指标数据用于从体量维度表征目标代码的投产风险。不同的代码体量可能面临不同程度的风险。代码体量越大,投产风险越大。所述第一风险指标数据具体可以包括一个或多个风险指标数据。具体地,例如,所述第一风险指标数据可以包括改造代码数量等。所述改造代码数量包括改造的代码行数或者文件数量。
所述第二风险指标数据用于从质量维度表征目标代码的投产风险。不同的代码质量可能面临不同程度的风险。代码质量越低,则投产风险越大。所述第二风险指标数据可以包括一个或多个风险指标数据。具体地,例如,所述第二风险指标数据可以包括缺陷密度、代码质量数据、目标代码所对应开发团队的平均代码质量等。其中,所述缺陷密度为目标代码的缺陷数量与目标代码的代码数量之间的比值。缺陷密度越大,代码质量越低。所述代码质量数据可以通过静态字节码分析技术对目标代码的质量进行评估得到。所述静态字节码分析技术是一种分析Java字节码的技术。它通过静态分析字节码中的指令序列和操作数栈,来推断程序执行时的行为,从而可以用于检测代码质量。代码质量数据越小,代码质量越低。
所述第三风险指标数据用于从业务价值维度表征目标代码的投产风险。目标代码的使用可以产生一定的业务价值。不同的业务价值表明代码的不同重要程度,相应的代码可能面临不同程度的风险。业务价值越大,则重要程度越大,投产风险越大。所述第三风险指标数据可以包括一个或多个风险指标数据。具体地,例如,所述第三风险指标数据可以包括变动的网络和设备的数量、目标代码对应的交易量、所涉及服务群组数量、研发投入的人力资源数据等。目标代码投入生产环境,有可能会使得网络和设备发生变化,例如一些网络和设备有可能不再使用,从而需要下线;再比如需要新增一些网络和设备以支撑目标代码的新增功能。则变动的网络和设备的数量可以包括上线的网络和设备的数量之和、下线的网络和设备的数量之和等。变动的网络和设备的数量越大,则目标代码的业务价值越大。所述交易量可以包括目标代码在投产后的设定时间周期内的交易量。例如所述交易量可以包括日交易量,所述日交易量可以包括目标代码在投产后每天完成的交易数量。交易量越大,则目标代码的业务价值越大。所涉及服务群组数量可以为用于支撑目标代码的功能的服务群组数量,例如服务器等物理设备的数量。所涉及服务群组数量越大,则目标代码的业务价值越大。研发投入的人力资源数据用于表示目标代码研发所需的人力投入,例如可以包括每天投入的人力数量。研发投入的人力资源强度数据越大,则目标代码的业务价值越大。
当然在实际应用中根据业务需求的需要,还可以根据技术数据确定更多的风险指标数据。通过多种风险维度下的风险指标数据,使得可以通过多种量化指标来评估目标代码的投产风险。而不仅仅是目标代码本身。从而可以提高代码投产准入判断的全面程度和准确程度。
步骤13:根据多种风险指标数据,在决策树模型中匹配相应的叶子节点。
在一些实施例中,所述决策树模型可以为代码风险判别准入决策树模型。所述决策树模型可以用于评估代码的投产风险,以判断代码是否允许准入,从而获得客观、一致且可量化的投产准入判断结果。在一些场景示例中,请参阅图2。在决策树中,可以以决策点为出发点,引出若干方案枝。每条方案枝代表一个决策方案。每条方案枝的末端有一个状态点,从状态节点引出若干状态枝,每条状态枝代表一种自然状态。状态枝可以指向结果点。
所述决策树模型可以是一种有监督的机器学习模型。所述决策树可以为二叉树等。所述决策树包括了多个节点。所述多个节点可以包括至少两个内部节点和至少两个叶子节点。当决策树中的一个节点能够向下分裂时,可以将该节点称为内部节点。所述分裂节点对应有分裂条件。所述分裂条件对应有风险维度,可以用于选择投产准入判断路径。通过将风险维度对应的风险指标数据代入分裂条件,能够选择下一层节点。当决策树中的一个节点不能够向下分裂时,可以将该节点称为叶子节点。所述叶子节点对应有叶子值。所述叶子值可以用于表示预测结果。所述预测结果可以包括允许投产、不允许投产、人工审批等。
在一些实施例中,所述决策树可以包括至少两个内部节点和至少两个叶子节点。则可以根据所述多种风险指标数据,在所述至少两个内部节点中确定目标内部节点;可以根据所述多种风险指标数据,在所述目标内部节点对应的叶子节点中确定目标叶子节点。所述目标根节点和所述目标叶子节点形成了所述目标代码的投产准入判断路径。具体可以采用从内部节点至叶子节点的方向,逐层输出目标代码对应的内部节点至叶子节点,得到目标内部节点和目标叶子节点所形成的目标代码的投产准入判断路径。例如,在所述决策树模型中,各内部节点具有分裂条件。所述分裂条件对应有风险维度。则对于每个当前内部节点,可以确定当前内部节点的分裂条件所对应的风险维度;可以从所述多种风险指标数据中选择该风险维度对应的风险指标数据;可以将选择的风险指标数据代入该分裂条件;可以根据该分裂条件的输出确定当前内部节点的子节点。若该子节点为内部节点,则可以将该子节点作为新的当前内部节点,从而迭代上述过程。若该子节点为叶子节点,则可以结束整个迭代过程。
步骤14:根据匹配到的叶子节点,判断目标代码是否允许投产。
在一些实施例中,所述决策树模型可以包括至少两个叶子节点,所述叶子节点对应有叶子值,所述叶子值用于表示投产准入判断结果。所述投产准入判断结果可以包括允许投产、不允许投产、人工审批等。其中,所述允许投产表示目标代码的投产风险较小,可以投入到生产环境中使用。所述不允许投产表示目标代码的投产风险较大,不能够投入到生产环境中使用。所述人工审批表示决策树模型无法给出较为明确的投产准入判断结果,可以通过人工审批的方式来判断目标代码是否允许投产。在实际应用中,例如,叶子值-1可以表示不允许投产,叶子值0可以表示人工审批,叶子值1可以表示允许投产。
例如,所述决策树模型可以包括两个叶子节点,其中一个叶子节点对应的叶子值用于表示允许投产,另一个叶子节点对应的叶子值用于表示不允许投产。再比如,所述决策树模型可以包括三个叶子节点,其中一个叶子节点对应的叶子值用于表示允许投产,另一个叶子节点对应的叶子值用于表示不允许投产,还有一个叶子节点的叶子值用于表示人工审批。
在一些实施例中,所述服务器可以根据匹配到的叶子节点所对应的叶子值,判断目标代码是否允许投产,得到判断结果。所述判断结果选自:允许投产、不允许投产、人工审批。
在一些实施例中,若判断结果为目标代码允许投产,则在到达投产时间后,所述服务器可以对目标代码进行投产操作。从而实现将目标代码投入生产环境。
在一些实施例中,若判断结果为目标代码不允许投产,所述服务器可以向研发人员对应的终端设备发送不允许投产的判断结果。进一步地,所述服务器还可以根据所述多种风险指标数据分析目标代码不允许投产的原因;可以向终端设备反馈目标代码不允许投产的原因。所述终端设备可以接收并向研发人员展示原因,以便研发人员对目标代码进行更正。
所述原因可以包括所述多种风险指标数据中的异常风险指标数据。具体地,所述目标代码可以包括应用程序的变更代码。则所述服务器可以获取所述应用程序的至少一个历史版本代码;可以根据历史版本代码在多种风险维度下的风险指标数据,确定各风险维度的参考指标数据;可以将同一风险维度下的风险指标数据和参考指标数据进行比对;可以根据比对结果,从多种风险维度下的风险指标数据中选取异常风险指标数据;可以发送异常风险指标数据,以便研发人员根据异常风险指标数据对变更代码进行更正。
所述服务器可以由软件开发中心GIT代码管理平台获取所述应用程序的至少一个历史版本。每个历史版本可以具有所述多种风险维度下的风险指标数据。从而可以根据所述至少一个历史版本的风险指标数据,确定所述多种风险维度的参考指标数据。具体地,例如,若所述应用程序的历史版本数量为一个,则针对所述多种风险维度中的每种风险维度,可以将该历史版本在该风险维度下的风险指标数据,作为该风险维度的参考指标数据。若所述应用程序的历史版本数量为多个,则针对所述多种风险维度中的每种风险维度,可以计算所述多种历史版本在该风险维度下的风险指标数据的平均值,作为该风险维度的参考指标数据。
在获得多种风险维度的参考指标数据以后,针对所述多种风险维度中的每种风险维度,可以将该风险维度的参考指标数据与变更代码在该风险维度下的风险指标数据进行比对;若比对结果满足异常条件,可以将变更代码在该风险维度下的风险指标数据作为异常风险指标数据。例如,所述异常条件可以包括参考指标数据与风险指标数据的差值大于或等于设定阈值。或者,在获得多种风险维度的参考指标数据以后,针对所述多种风险维度中的每种风险维度,可以将该风险维度的参考指标数据与变更代码在该风险维度下的风险指标数据进行比对;可以根据风险指标数据与投产风险的相关关系,在异常条件集中选择相应的目标异常条件;若比对结果满足目标异常条件,可以将变更代码在该风险维度下的风险指标数据作为异常风险指标数据。所述异常条件集包括第一异常条件和第二异常条件。所述第一异常条件对应正相关关系,所述正相关关系表示风险指标数据与投产风险呈正相关。所述第一异常条件可以包括:由风险指标数据减去参考指标数据所获得的差值大于或等于设定阈值。所述第二异常条件对应负相关关系,所述负相关关系表示风险指标数据与投产风险呈负相关。所述第二异常条件可以包括:由参考指标数据减去风险指标数据所获得的差值大于或等于设定阈值。或者,在获得多种风险维度的参考指标数据以后,针对所述多种风险维度中的每种风险维度,可以将该风险维度的参考指标数据与变更代码在该风险维度下的风险指标数据进行比对;可以在异常条件集中选择该风险维度对应的目标异常条件;若比对结果满足目标异常条件,可以将变更代码在该风险维度下的风险指标数据作为异常风险指标数据。所述异常条件集可以包括至少一个异常条件,每个异常条件可以对应有风险维度。不同异常条件对应的风险维度不同。所述异常条件可以包括参考指标数据与风险指标数据的差值大于或等于设定阈值。
可以从多种风险维度下的风险指标数据中选取一个或多个异常风险指标数据;可以向终端设备发送所述一个或多个异常风险指标数据。所述终端设备可以接收并展示所述一个或多个异常风险指标数据,以便研发人员根据展示的异常风险指标数据对目标代码进行更正。
在一些实施例中,若判断结果为人工审批,所述服务器可以将目标代码以及风险指标数据发送至审批人员对应的终端设备。审批人员可以根据目标代码的多种风险指标数据,对目标代码的投产准入进行审批,可以在终端设备输入审批结果。终端设备可以接收审批结果;可以向所述服务器发送审批结果。所述服务器可以接收终端设备发送的投产准入审批结果。若审批结果为允许投产,则在到达投产时间后,所述服务器可以对目标代码进行投产操作。若审批结果为不允许投产,则所述服务器可以向研发人员对应的终端设备发送不允许投产的判断结果。进一步地,所述服务器还可以根据所述多种风险指标数据分析目标代码不允许投产的原因;可以向终端设备反馈目标代码不允许投产的原因。所述终端设备可以接收并向研发人员展示原因,以便所述研发人员对目标代码进行更正。所述原因可以包括所述多种风险指标数据中的异常风险指标数据。具体分析过程可以参照前述实施例,在此不再赘述。
在一些实施例中,可以将多种风险维度下的风险指标数据作为划分属性来构建决策树模型。例如,可以根据多种风险维度下的风险指标数据,利用CART(Classificationand Regression Trees)算法来构建决策树模型。所述CART算法通过选择最佳的特征和特征值来递归地划分数据集,从而构建一棵树形结构、用于进行投产准入预测的决策树。
在一些实施例中,可以获取样本数据集;可以基于所述样本数据集,重复执行以下步骤,直至到达到预设终止条件:根据当前决策节点对应的样本数据集,确定各风险维度下风险指标数据的基尼系数;确定最小基尼系数对应的风险维度和风险指标数据;根据确定的风险维度和风险指标数据,将当前决策节点对应的样本数据集划分为多个子样本数据集,并建立当前决策节点的多个子决策节点,每个子决策节点对应有子样本数据集。
所述样本数据集中可以包括至少一个样本数据。每个样本数据对应有样本代码的投产准入标签,并且可以包括样本代码在多种风险维度下的风险指标数据。所述投产准入标签用于表示样本代码是否投产准入。具体地,所述投产准入标签可以选自第一标签和第二标签。所述第一标签用于表示样本代码允许投产。所述第二标签用于表示样本代码不允许投产。所述多种风险维度下的风险指标数据可以包括第一风险指标数据、第二风险指标数据、第三风险指标数据等。所述多种风险维度下的风险指标数据具体可以参照前述实施例,在此不再赘述。在实际应用中,在确定纳入参考的多种风险维度以后,可以收集相关的数据。对收集到的数据进行清洗和处理,包括处理缺失值、异常值以及数据转换等工作,从而得到样本数据集。
所述当前决策节点可以包括内部节点。所述当前决策节点可以对应有样本数据集。当前决策节点对应的样本数据集,具体可以为所获取的原始样本数据集,或者,也可以为所获取原始样本数据集的子集。例如,若当前决策节点为根节点,则当前决策节点对应的样本数据集可以为所获取的原始样本数据集;若当前决策节点为除根节点以外的节点,则当前决策节点对应的样本数据集可以为所获取原始样本数据集的子集。
针对纳入参考的多种风险维度,可以分别计算每种风险维度的风险指标数据相对当前决策节点所对应样本数据集的基尼系数(Gini Index);可以根据多个基尼系数,确定最小基尼系数对应的风险维度和风险指标数据。最小基尼系数对应的风险维度可以为当前决策节点的最佳特征。最小基尼系数对应的风险指标数据可以为当前决策节点的最佳特征值。可以根据最佳特征和最佳特征值,将当前决策节点对应的样本数据集划分为多个子样本数据集,并建立当前决策节点的多个子决策节点,每个子决策节点对应有子样本数据集。例如,可以根据最佳特征和最佳特征值,将当前决策节点对应的样本数据集划分为两个子样本数据集,并建立当前决策节点的两个子决策节点,每个子决策节点对应一个子样本数据集。具体地,例如,若样本数据中最佳特征对应的特征值大于或等于最佳特征值,则可以将该样本数据划入一个子样本数据集;若样本数据中最佳特征对应的特征值小于最佳特征值,则可以将该样本数据划入另一个子样本数据集。其中,所述最佳特征和所述最佳特征值可以为对当前决策节点所对应样本数据集最具影响力的特征和特征值。通过选取最佳特征和最佳特征值,有利于提高决策树模型的构建效率和准确性。
对于每个可能的特征,以及每个特征可能的取值,基尼系数(Gini Index)可作为用来衡量数据集纯度的指标。基尼系数越小表示数据集的纯度越高。对于一个给定的数据集,在特征A的条件下,基尼系数的计算公式可以为:Gini(A)=1-∑j[P(j|t)]2。其中,[P(j|t)]表示在节点t中,类j发生的概率。父节点的基尼系数可以等于两个子节点的基尼系数归一化之和:需要说明的是,基尼系数可被用于选择最优的划分属性。基尼系数越小则划分属性的优先度越高,影响力越大。例如,考虑两个划分属性“改造代码数量”与“代码质量”。在投产准入判断结果为允许准入的代码中,“改造代码数量”的数值只有改造代码数量过高才被判为高风险不允许准入,故数值有高有低,基尼系数较大;而“代码质量”只有代码质量较高才允许准入,故数值均为较高及以上,基尼系数小。从而可以认为基尼系数较小的“代码质量”划分属性影响力大,在构建模型时的优先度高。
所述预设终止条件可以包括如下任意一种或几种的组合:特征已用完、子节点没有样本数据集、决策树模型达到最大深度、节点的样本数量达到预设阈值、基尼系数小于预设阈值。
还可以使用样本数据集对构建的决策树模型进行训练。具体地,可以通过决策树模型,根据样本数据中的多种风险指标数据来判断样本代码是否允许投产;可以根据判断结果和样本代码的投产准入标签,确定损失信息;可以根据损失信息,调整决策树模型的模型参数。其中,关于样本数据集可以参见前述实施例,在此不再赘述。可以通过损失函数确定损失信息。所述损失函数可以包括平方误差损失函数、绝对误差损失函数等。可以通过梯度下降法等调整决策树模型的模型参数。训练后的决策树模型可以上线,以用于代码准入决策。
本说明书实施例的投产准入判断方法,可以获取待投产的目标代码;可以根据目标代码的技术数据,确定多种风险维度下的风险指标数据;可以根据多种风险指标数据,在决策树模型中匹配相应的叶子节点;可以根据匹配到的叶子节点,判断目标代码是否允许投产。这样通过量化多种风险维度下的指标,利用决策树模型确定目标代码的投产风险,减少了主观因素的影响,能够使不同运维人员得出一致的投产风险评估结果,便于得到客观且准确的投产准入判断结论,提高投产准入判断结论的客观性,便于代码投产准入的风险管理和决策。
请参阅图3。本说明书实施例还提供一种投产准入判断装置,包括以下单元。
获取单元31,用于获取待投产的目标代码;
确定单元32,用于根据目标代码的技术数据,确定多种风险维度下的风险指标数据;
匹配单元33,用于根据所述多种风险指标数据,在决策树模型中匹配相应的叶子节点;
判断单元34,用于根据匹配到的叶子节点,判断目标代码是否允许投产。
本说明书实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述投产准入判断方法。
本说明书实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述投产准入判断方法。
本说明书实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述投产准入判断方法。
本领域内的技术人员能够理解,本说明书可提供为方法、系统、或计算机程序产品。因此本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。所述计算机可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
本说明书实施例中的各个功能单元可以集成在一个处理单元中,也可以是各个功能单元单独物理存在,也可以是两个或两个以上功能单元集成在一个处理单元中。
本领域的技术人员能够理解,本说明书对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,以上实施例只是用于帮助理解本说明书的核心思想。本领域的技术人员能够理解,本说明书还有许多变形和变化。希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (10)
1.一种投产准入判断方法,其特征在于,包括:
获取待投产的目标代码;
根据目标代码的技术数据,确定多种风险维度下的风险指标数据;
根据多种风险指标数据,在决策树模型中匹配相应的叶子节点;
根据匹配到的叶子节点,判断目标代码是否允许投产。
2.根据权利要求1所述的方法,其特征在于,所述技术数据包括以下至少之一:与代码研发相关的第一技术数据、与代码测试相关的第二技术数据、与代码应用相关的第三技术数据;所述确定多种风险维度下的风险指标数据,包括:
对所述第一技术数据、所述第二技术数据和所述第三技术数据中的至少一个进行分析,得到多种风险维度下的风险指标数据。
3.根据权利要求1或2所述的方法,其特征在于,所述多种风险指标数据包括以下至少之一:第一风险指标数据、第二风险指标数据、第三风险指标数据;
所述第一风险指标数据用于从体量维度表征目标代码的投产风险,
所述第二风险指标数据用于从质量维度表征目标代码的投产风险,
所述第三风险指标数据用于从业务价值维度表征目标代码的投产风险。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取样本数据集,所述样本数据集中包括至少一个样本数据,每个样本数据包括样本代码在多种风险维度下的风险指标数据;
重复执行以下步骤,直至到达到预设终止条件:
根据当前决策节点对应的样本数据集,确定各风险维度下风险指标数据的基尼系数;
确定最小基尼系数对应的风险维度和风险指标数据;
根据确定的风险维度和风险指标数据,将当前决策节点对应的样本数据集划分为多个子样本数据集,并建立当前决策节点的多个子决策节点,每个子决策节点对应有子样本数据集。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取样本数据集,所述样本数据集中包括至少一个样本数据,每个样本数据对应有样本代码的投产准入标签,并且包括样本代码在多种风险维度下的风险指标数据;
通过决策树模型,根据样本数据中的多种风险指标数据判断样本代码是否允许投产;
根据判断结果和样本代码的投产准入标签,确定损失信息;
根据损失信息,调整决策树模型的模型参数。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标代码的投产时间;
若判断结果为目标代码允许投产,在到达投产时间后对所述目标代码进行投产操作。
7.根据权利要求1所述的方法,其特征在于,所述目标代码包括应用程序的变更代码;
所述方法还包括:
若判断结果为目标代码不允许投产,获取所述应用程序的至少一个历史版本代码;
根据历史版本代码在多种风险维度下的风险指标数据,确定各风险维度的参考指标数据将同一风险维度下的风险指标数据和参考指标数据进行比对;
根据比对结果,从多种风险维度下的风险指标数据中选取异常风险指标数据;
发送异常风险指标数据,以便根据异常风险指标数据对变更代码进行更正。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若判断结果为人工审批,将目标代码以及风险指标数据发送至审批人员对应的终端设备;
接收终端设备发送的投产准入审批结果。
9.一种投产准入判断装置,其特征在于,包括:
获取单元,用于获取待投产的目标代码;
确定单元,用于根据目标代码的技术数据,确定多种风险维度下的风险指标数据;
匹配单元,用于根据所述多种风险指标数据,在决策树模型中匹配相应的叶子节点;
判断单元,用于根据匹配到的叶子节点,判断目标代码是否允许投产。
10.一种计算机设备,其特征在于,包括:
至少一个处理器;
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行根据权利要求1-8中任一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410175096.9A CN117971685A (zh) | 2024-02-07 | 2024-02-07 | 投产准入判断方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410175096.9A CN117971685A (zh) | 2024-02-07 | 2024-02-07 | 投产准入判断方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971685A true CN117971685A (zh) | 2024-05-03 |
Family
ID=90856208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410175096.9A Pending CN117971685A (zh) | 2024-02-07 | 2024-02-07 | 投产准入判断方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971685A (zh) |
-
2024
- 2024-02-07 CN CN202410175096.9A patent/CN117971685A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112241805A (zh) | 使用历史检验数据进行缺陷预测 | |
CN111210332A (zh) | 贷后管理策略生成方法、装置及电子设备 | |
CN112950359B (zh) | 一种用户识别方法和装置 | |
CN110688536A (zh) | 一种标签预测方法、装置、设备和存储介质 | |
CN111709668A (zh) | 基于数据挖掘技术的电网设备参数风险识别方法及装置 | |
CN113837596A (zh) | 一种故障确定方法、装置、电子设备及存储介质 | |
CN113313538A (zh) | 用户消费能力预测方法、装置、电子设备和存储介质 | |
CN110362481A (zh) | 自动测试方法及终端设备 | |
CN113112186A (zh) | 一种企业评估方法、装置及设备 | |
CN112884569A (zh) | 一种信用评估模型的训练方法、装置及设备 | |
CN118378213A (zh) | 数据质量评估方法、装置、设备、存储介质及产品 | |
CN113238908B (zh) | 一种服务器性能测试数据分析方法及相关装置 | |
CN114092230A (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN117593115A (zh) | 信贷风险评估模型的特征值确定方法、装置、设备和介质 | |
CN113610225A (zh) | 质量评估模型训练方法、装置、电子设备及存储介质 | |
CN117670359A (zh) | 异常交易数据的识别方法、装置、存储介质及电子设备 | |
CN116257758A (zh) | 模型训练方法、人群拓展方法、介质、装置和计算设备 | |
CN117971685A (zh) | 投产准入判断方法、装置和计算机设备 | |
CN115237970A (zh) | 数据预测方法、装置、设备、存储介质及程序产品 | |
CN114820074A (zh) | 基于机器学习的目标用户群体预测模型构建方法 | |
CN114170000A (zh) | 信用卡用户风险类别识别方法、装置、计算机设备和介质 | |
CN113052509A (zh) | 模型评估方法、模型评估装置、电子设备和存储介质 | |
WO2022107262A1 (ja) | 判定装置、判定方法、および、判定プログラム | |
CN116777597A (zh) | 金融风险评估方法、装置、存储介质及计算机设备 | |
CN118228993A (zh) | 需求优先级的确定方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |