一种软件使用时长的预测方法及系统与流程

文档序号:31411983发布日期:2022-09-03 10:16阅读:178来源:国知局
一种软件使用时长的预测方法及系统与流程

1.本技术涉及软件管理技术领域,尤其是涉及一种软件使用时长的预测方法及系统。


背景技术:

2.许多大型公司或大型企业会为各个专业线部门购买相关专业软件用于专业办公,大部分的专业软件都有一定的使用限制条件,小部分的专业软件会和初始登录设备进行绑定,后续只能通过初始登录设备进行使用,但大部分专业软件仅进行了在线用户的限制,当软件的同时在线用户达到限制条件后,其他用户将无法使用该软件。
3.公司为控制成本通常只会采购少量专业软件,但需要使用专业软件的员工数量往往超过了专业软件对同时在线用户限制的数量,因此需要采用软件管理系统对专业软件的使用进行合理管理和分配。在相关技术中,软件管理系统会对所有专业软件进行整合管理,并记录每个专业软件的同时在线用户和最大用户限制,员工可以通过软件管理系统实时查看各个专业软件的空闲情况,从而可以提升专业软件的利用率。
4.针对上述中的相关技术,发明人认为存在有以下缺陷:相关技术中的软件管理系统仅能显示专业软件实时的使用用户数量,当专业软件的使用用户数量达到数量限制,且有其他员工需要使用该专业软件时,需要反复通过软件管理系统查看该专业软件是否空闲,影响员工的工作效率。


技术实现要素:

5.为了改善软件管理系统仅能显示专业软件实时的使用用户数量,影响员工的工作效率的缺陷,本技术提供一种软件使用时长的预测方法及系统。
6.第一方面,本技术提供一种软件使用时长的预测方法,包括如下步骤:获取目标用户的用户指令;基于所述用户指令获取对应目标软件的软件基本信息,所述软件基本信息包括所述目标软件的当前使用用户和许可用户数量;统计所述当前使用用户的用户数量;判断所述用户数量是否与所述许可用户数量相同;若所述用户数量与所述许可用户数量相同,则获取所述当前使用用户的用户数据和所述当前使用用户对所述目标软件的历史使用数据;结合所述用户数据和所述历史使用数据预测所述目标软件的软件释放时间,并将所述软件释放时间反馈至所述目标用户。
7.通过采用上述技术方案,通过目标用户发出的用户指令获取到对应目标软件的当前使用用户,若当前使用用户的用户数量与许可用户数量相同时,可以根据当前使用用户的用户数据和对目标软件的历史使用数据,预测出目标软件的软件释放时间,并将软件释放时间反馈至目标用户,以使目标用户获取到软件释放时间后可以合理规划后续工作安
排,而无需反复查看目标软件是否空闲,从而可以提升员工整体的工作效率。
8.可选的,所述结合所述用户数据和所述历史使用数据预测所述目标软件的软件释放时间,并将所述软件释放时间反馈至所述目标用户包括如下步骤:预处理所述历史使用数据,得到预处理数据;基于所述预处理数据预测所述当前使用用户对所述目标软件的预计使用时长;结合所述用户数据和所述预计使用时长计算所有所述当前使用用户对所述目标软件的剩余使用时间;选取所有所述剩余使用时间中最短的剩余使用时间作为软件释放时间,并将所述软件释放时间反馈至所述目标用户。
9.通过采用上述技术方案,预处理历史使用数据有利于后续数据分析时的效率,根据预处理数据可以预计当前使用用户对目标软件的预计使用时长,再结合当前使用用户的用户数据,可以推测出所有当前使用用户对目标软件的剩余使用时间,从所有剩余使用时间中选取最短的剩余使用时间显示为软件释放时间。
10.可选的,所述预处理所述历史使用数据,得到预处理数据包括如下步骤:基于所述历史使用数据分别计算所述当前使用用户多次的历史有效使用时长;筛除所有所述历史有效使用时长中的异常时长数据,得到正常时长数据;归一化处理所有所述正常时长数据,得到多个预处理数据。
11.通过采用上述技术方案,根据历史使用数据计算出当前使用用户历史多次使用目标软件的历史有效使用时长,并筛除其中的异常时长数据,最后将所有正常时长数据进行归一化处理,以提升后续模型预测时的收敛速度和预测精度。
12.可选的,在所述基于所述历史使用数据分别计算所述当前使用用户多次的历史有效使用时长之前还包括如下步骤:选择所述历史使用数据中的所有数据特征;根据所有所述数据特征构建测试模型,并通过所述测试模型的测试结果分别计算所有所述数据特征的特征评分;筛除所述数据特征中的冗余特征,所述冗余特征为所述特征评分低于预设分数阈值的数据特征。
13.通过采用上述技术方案,历史使用数据中包含多个数据特征,其中包含相关性不强的冗余特征,即使删除冗余特征也不会影响后续模型预测的预测精度,反而会增加模型预测时的计算量,因此可以通过构建测试模型,并根据测试结果为所有数据特征进行特征评分,并通过预设的分数阈值筛除数据特征中的冗余特征。
14.可选的,所述历史使用数据包括所述当前使用用户历史每次使用所述目标软件的软件使用数据,所述软件使用数据包括软件历史打开时间、软件历史关闭时间和软件总闲置时长,所述基于所述历史使用数据分别计算所述当前使用用户多次的历史有效使用时长包括如下步骤:结合所述软件历史打开时间和所述软件历史关闭时间计算得到软件历史打开时长;结合所述软件历史打开时长和所述软件总闲置时长计算得到历史有效使用时长。
15.通过采用上述技术方案,结合当前使用用户对目标软件的软件历史打开时间、软
件历史关闭时间和软件总闲置时长,可以计算出当前使用用户对目标软件的软件历史打开时长和历史有效使用时长。
16.可选的,所述基于所述预处理数据预测所述当前使用用户对所述目标软件的预计使用时长包括如下步骤:构建预测模型;将所有所述预处理数据划分为训练数据集和测试数据集;基于预设的训练参数并通过所述训练数据集训练所述预测模型;判断训练后预测模型的模型精度是否达标;若所述模型精度未达标,则更新所述训练参数并重新训练;若所述模型精度达标,则将所述测试数据集代入所述训练后预测模型进行预测,得到预测结果;反归一化处理所述预测结果,得到所述当前使用用户对所述目标软件的预计使用时长。
17.通过采用上述技术方案,构建出预测模型,再将预处理数据划分为训练数据集和测试数据集,训练数据集用于训练预测模型,若训练后的预测模型模型精度达标,则将测试数据集代入训练后的预测模型中进行预测,得到预测结果,由于数据在预处理阶段进行了归一化处理,因此在得到预测结果之后需要再进行反归一化处理,从而最终得到当前使用用户对目标软件的预计使用时长。
18.可选的,所述用户数据包括所述当前使用用户打开所述目标软件的打开时间和允许所述当前使用用户打开所述目标软件的软件许可时间,结合所述用户数据和所述预计使用时长计算所有所述当前使用用户对所述目标软件的剩余使用时间包括如下步骤:结合所述打开时间和所述预计使用时长计算所有所述当前使用用户对所述目标软件的预计关闭时间;判断所述预计关闭时间是否超出所述软件许可时间;若所述预计关闭时间超出所述软件许可时间,则将所述软件许可时间作为对应当前使用用户对所述目标软件的剩余使用时间;若所述预计关闭时间未超出所述软件许可时间,则获取当前时间;结合所述当前时间和所述预计关闭时间计算对应当前使用用户对所述目标软件的剩余使用时间。
19.通过采用上述技术方案,不同的用户对目标软件被配置有不同的软件许可时间,当超过软件许可时间后,对应的用户将无法使用目标软件,因此在预测并计算得到当前使用用户的预计使用时长之后,可以结合打开目标软件的打开时间计算出当前使用用户对目标软件的预计关闭时间,再将预计关闭时间与对应用户的软件许可时间进行比对,若已经超出软件许可时间,则直接将软件许可时间作为剩余使用时间;若未超出,则需要结合当前时间进一步计算剩余使用时间。
20.第二方面,本技术还提供一种软件使用时长的预测系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,该程序能够被处理器加载执行时实现如第一方面中所述的一种软件使用时长的预测方法。
21.通过采用上述技术方案,通过程序的调取,可以通过目标用户发出的用户指令获
取到对应目标软件的当前使用用户,若当前使用用户的用户数量与许可用户数量相同时,可以根据当前使用用户的用户数据和对目标软件的历史使用数据,预测出目标软件的软件释放时间,并将软件释放时间反馈至目标用户,以使目标用户获取到软件释放时间后可以合理规划后续工作安排,而无需反复查看目标软件是否空闲,从而可以提升员工整体的工作效率。
22.综上所述,本技术包括以下有益技术效果:通过目标用户发出的用户指令获取到对应目标软件的当前使用用户,若当前使用用户的用户数量与许可用户数量相同时,可以根据当前使用用户的用户数据和对目标软件的历史使用数据,预测出目标软件的软件释放时间,并将软件释放时间反馈至目标用户,以使目标用户获取到软件释放时间后可以合理规划后续工作安排,而无需反复查看目标软件是否空闲,从而可以提升员工整体的工作效率。
附图说明
23.图1是本技术其中一实施例的软件使用时长的预测方法的流程示意图。
24.图2是本技术其中一实施例的预测目标软件的软件释放时间并反馈至目标用户的流程示意图。
25.图3是本技术其中一实施例的预处理历史使用数据得到预处理数据的流程示意图。
26.图4是本技术其中一实施例的选择并筛选历史使用数据中的数据特征的流程示意图。
27.图5是本技术其中一实施例的计算当前使用用户的历史有效使用时长的流程示意图。
28.图6是本技术其中一实施例的预测当前使用用户对目标短剑的预计使用时长的流程示意图。
29.图7是本技术其中一实施例的计算当前使用用户对目标软件的剩余使用时间的流程示意图。
具体实施方式
30.以下结合附图1至7对本技术作进一步详细说明。
31.本技术实施例公开了一种软件使用时长的预测方法。
32.参照图1,软件使用时长的预测方法包括如下步骤:s101.获取目标用户的用户指令。
33.其中,当目标用户在操作界面中点击选取目标软件时将生成用户指令。
34.s102.基于用户指令获取对应目标软件的软件基本信息。
35.其中,目标软件指各个专业软件,当目标软件录入系统时,读取专业软件的软件基本信息并存储于预设的信息数据库中,当目标软件正在被用户使用时,将会获取正在使用的用户的用户数据并存储于信息数据库中。软件基本信息包括目标软件的当前使用用户和许可用户数量,许可用户数量为同时使用该目标软件的最大用户数量。软件基本信息还包括软件id、软件版本、软件名称、启动命令、购买时间、创建时间、资产编号等信息。
36.s103.统计当前使用用户的用户数量。
37.s104.判断用户数量是否与许可用户数量相同,若是,则执行步骤s105。
38.s105.获取当前使用用户的用户数据和当前使用用户对目标软件的历史使用数据。
39.其中,基于连接目标软件的用户的用户id从信息数据库中获取对应用户的用户数据。用户使用一次目标软件都会将用户数据和目标软件的软件基本信息绑定为历史使用数据,并存储于信息数据库中的使用记录类别中。用户数据包括用户基本信息、用户连接软件的信息、节点资源状态监控信息、节点配置的数据信息、用户设备配置的信息等。
40.其中,用户基本信息包括用户id、用户密码、ip地址、所属组织机构id、性别、姓名、联系方式等,所属的组织机构id记录用户属于的组织机构,不同的组织机构的工作内容不同,使用的软件类型以及软件中的模块也略有不同,另外不同的组织机构的工作强度也略有不同,因此不同的组织机构将会有不同的偏好软件;用户连接软件的信息包括连接方式,打开时间,关闭时间,闲置时间,总闲置时间等信息;节点资源状态监控信息包括cpu的使用率,gpu的使用率,内存使用率,磁盘使用率,节点网卡流量,磁盘io读写速度,信息采集时间,设备名称,设备类型等信息;节点配置的数据信息包括节点设备的资产编号,购买日期,序列号,保修期,图卡型号,图卡数量,硬盘容量,内存容量,内存型号,cpu数量等信息;用户设备配置的信息,主要用以描述用户本机设备的配置,包括用户设备的内存容量,硬盘容量等。
41.s106.结合用户数据和历史使用数据预测目标软件的软件释放时间,并将软件释放时间反馈至目标用户。
42.其中,得到软件释放时间之后,将软件释放时间显示至操作界面中对应目标软件的位置,目标用户可以通过操作界面获取到目标软件的软件释放时间。
43.本实施例的实施原理为:通过目标用户发出的用户指令获取到对应目标软件的当前使用用户,若当前使用用户的用户数量与许可用户数量相同时,可以根据当前使用用户的用户数据和对目标软件的历史使用数据,预测出目标软件的软件释放时间,并将软件释放时间反馈至目标用户,以使目标用户获取到软件释放时间后可以合理规划后续工作安排,而无需反复查看目标软件是否空闲,从而可以提升员工整体的工作效率。
44.在图1所示实施例的步骤s106中,需要先对历史使用数据进行预处理,并计算出当前使用用户的预计使用时长,再计算出当前使用用户对目标软件的剩余使用时间,最后选取出最短的剩余使用时间作为软件释放时间。具体通过图2所示实施例进行详细说明。
45.参照图2,预测目标软件的软件释放时间并反馈至目标用户包括如下步骤:s201.预处理历史使用数据,得到预处理数据。
46.s202.基于预处理数据预测当前使用用户对目标软件的预计使用时长。
47.s203.结合用户数据和预计使用时长计算所有当前使用用户对目标软件的剩余使用时间。
48.s204.选取所有剩余使用时间中最短的剩余使用时间作为软件释放时间,并将软件释放时间反馈至目标用户。
49.其中,目标软件的当前使用用户有多少个,就会计算出多少个剩余使用时间,因此只需要显示出所有剩余使用时间中最短的剩余使用时间作为软件释放时间即可。若选取的最短剩余使用时间还存在相同时长的剩余使用时间,则任意选取相同时长的剩余使用时间中的一个作为软件释放时间。
50.本实施例的实施原理为:预处理历史使用数据有利于后续数据分析时的效率,根据预处理数据可以预计当前使用用户对目标软件的预计使用时长,再结合当前使用用户的用户数据,可以推测出所有当前使用用户对目标软件的剩余使用时间,从所有剩余使用时间中选取最短的剩余使用时间显示为软件释放时间。
51.在图2所示实施例的步骤s201中,计算出当前使用用户历史使用目标软件的历史有效使用时长,再对计算出的历史有效使用时长进行筛除处理,最后进行归一化处理以得到多个预处理数据。具体通过图3所示实施例进行详细说明。
52.参照图3,预处理历史使用数据得到预处理数据包括如下步骤:s301.基于历史使用数据分别计算当前使用用户多次的历史有效使用时长。
53.s302.筛除所有历史有效使用时长中的异常时长数据,得到正常时长数据。
54.其中,计算出的历史有效使用时长可能会由于用户登录错误导致出现极小数据情况,或者由于用户登录软件并使用后忘了关闭软件而出现的极大数据情况,因此将小于特定阈值和高于特定阈值的数据均作为异常数据,并将异常时长数据筛除,剩下的数据即为正常时长数据。
55.s303.归一化处理所有正常时长数据,得到多个预处理数据。
56.其中,为了提升预测模型的收敛速度以及精度,将数据进行归一化处理,统一映射到(0,1)之间,采用的方法为min-max归一化,其公式如下:其中,xnorm表示经过归一化后的数据,x表示原始正常时长数据,xmin表示正常时长数据中的最小值,xmax表示正常时长数据中的最大值。
57.本实施例的实施原理为:根据历史使用数据计算出当前使用用户历史多次使用目标软件的历史有效使用时长,并筛除其中的异常时长数据,最后将所有正常时长数据进行归一化处理,以提升后续模型预测时的收敛速度和预测精度。
58.在图3所示实施例的步骤s301之前,需要先选择出历史使用数据中的所有数据特征,并对数据特征进行筛除处理。具体通过图4所示实施例进行详细说明。
59.参照图4,选择并筛选历史使用数据中的数据特征包括如下步骤:s401.选择历史使用数据中的所有数据特征。
60.其中,历史使用数据中包含用户数据和目标软件的软件基本信息,因此包含有大量的数据特征,数据特征包括步骤s105的具体说明中所述的用户基本信息、用户连接软件的信息等,可以先将所有数据特征选择出来再进行后续的筛选步骤。
61.s402.根据所有数据特征构建测试模型,并通过测试模型的测试结果分别计算所有数据特征的特征评分。
62.其中,特征筛选的目的是获取尽可能少的特征并且被筛掉的特征不会影响模型的整体精度,即使用筛选后的特征进行模型的训练的结果要与使用所有特征得到的结果无大差异。本实施例中使用的特征筛选方法为rfe(recursive feature elimination)递归特征消除法,工作原理是先构建测试模型并递归地删除特征,减少特征的数量,再使用剩余的特征重新构建测试模型,并使用准确率来判断哪些数据特征对预测结果贡献较大,计算测试结果的准确率和预设的准确率阈值之间的准确率差值,并将准确率差值作为对应数据特征的特征评分,对预测结果贡献较大的数据特征准确率差值更低,特征评分更高,其本质是贪心算法,因此这一方法也是寻找最优特征子集的贪心算法。
63.s403.筛除数据特征中的冗余特征。
64.其中,冗余特征为特征评分低于预设分数阈值的数据特征。
65.本实施例的实施原理为:历史使用数据中包含多个数据特征,其中包含相关性不强的冗余特征,即使删除冗余特征也不会影响后续模型预测的预测精度,反而会增加模型预测时的计算量,因此可以通过构建测试模型,并根据测试结果为所有数据特征进行特征评分,并通过预设的分数阈值筛除数据特征中的冗余特征。
66.在图3所示实施例的步骤s301中,历史使用数据包括当前使用用户历史每次使用目标软件的软件使用数据,软件使用数据包括软件历史打开时间、软件历史关闭时间和软件总闲置时长。具体计算步骤根据图5所示实施例进行详细说明。
67.参照图5,计算当前使用用户的历史有效使用时长包括如下步骤:s501.结合软件历史打开时间和软件历史关闭时间计算得到软件历史打开时长。
68.其中,软件历史关闭时间减去软件历史打开时间即为软件历史打开时长。
69.s502.结合软件历史打开时长和软件总闲置时长计算得到历史有效使用时长。
70.其中,通过步骤s501详细说明中所计算得到的软件历史打开时长减去软件总闲置时长即为历史有效使用时长。
71.本实施例的实施原理为:结合当前使用用户对目标软件的软件历史打开时间、软件历史关闭时间和软件总闲置时长,可以计算出当前使用用户对目标软件的软件历史打开时长和历史有效使用时长。
72.在图2所示实施例的步骤s202中,可以构建预测模型,并对预测模型进行训练,当模型精度达标时,利用预测模型进行预测并得到预测结果,再对预测结果进行反归一化处理得到预计使用时长。具体通过图6所示实施例进行详细说明。
73.参照图6,预测当前使用用户对目标短剑的预计使用时长包括如下步骤:s601.构建预测模型。
74.其中,预测模型采用长短期记忆神经网络(lstm)作为基础模型,预测模型主要由输入层、隐藏层、输出层三部分组成。输入层接收预处理后的数据,隐藏层对数据进行处理提取数据中的主要信息,最终的结果将由输出层进行输出。
75.s602.将所有预处理数据划分为训练数据集和测试数据集。
76.其中,在使用lstm算法时,需要将数据转化为有监督学习问题,即数据的形式为(数据,标签),其中数据表示前n天的历史数据,标签表示要预测的目标数据,即第n+1天的
数据。本实施例中训练数据集与测试数据集的将以7:3的比例进行划分。
77.s603.基于预设的训练参数并通过训练数据集训练预测模型。
78.其中,预测模型采用keras深度学习框架,并使用python3.6编写实验程序,同时使用诸如numpy,pandas,sklearn等第三方工具作技术支撑。在神经网络中通过随机初始化的网络参数训练模型效果并不理想,这是由于神经网络模型中参数众多,各参数取值范围较宽泛,手动调整确定参数工程巨大,为了更方便的确定该模型的最佳参数,采用了网格搜索的方法,网格搜索方法通过sklearn.model_selection中的gridsearchcv实现。这一方法可自动搜寻到网络中适合的批量大小(batch_size)、数据集训练次数(epochs)、优化器(optimizer)、激活函数(learning rate)等。
79.在本技术实施例中,采用的神经网络层数(layer)为3,时间序列步长(timesteps)为28,神经元(neurons)个数为50,训练次数(epochs)为200,批量大小(batchsize)为128,优化器采用adam优化器,用来计算神经网络每个参数的自适应学习率,并采用dropout方法防止模型的过拟合,dropout值为0.3,即网络中将以0.3的概率随机丢弃一部分神经元,同时采用early stopping(早停)方法保证模型具有较强的泛化性能。
80.s604.判断训练后预测模型的模型精度是否达标,若未达标,则执行步骤s605;若达标,则执行步骤s606。
81.s605.更新训练参数并重新训练。
82.s606.将测试数据集代入训练后预测模型进行预测,得到预测结果。
83.s607.反归一化处理预测结果,得到当前使用用户对目标软件的预计使用时长。
84.其中,经数据的归一化后预测的结果值也在(0,1)之间,因此需要进行反归一化处理。反归一化通过步骤s303中所记录数据中的最大值与最小值经转换即可得到。
85.本实施例的实施原理为:构建出预测模型,再将预处理数据划分为训练数据集和测试数据集,训练数据集用于训练预测模型,若训练后的预测模型模型精度达标,则将测试数据集代入训练后的预测模型中进行预测,得到预测结果,由于数据在预处理阶段进行了归一化处理,因此在得到预测结果之后需要再进行反归一化处理,从而最终得到当前使用用户对目标软件的预计使用时长。
86.在图2所示实施例的步骤s203中,用户数据包括当前使用用户打开目标软件的打开时间和允许当前使用用户打开目标软件的软件许可时间,通过软件许可时间判断当前使用用户的使用权限是否超期,从而确定该用户的剩余使用时间。具体通过图7所示实施例进行详细说明。
87.参照图7,计算当前使用用户对目标软件的剩余使用时间包括如下步骤:s701.结合打开时间和预计使用时长计算所有当前使用用户对目标软件的预计关闭时间。
88.其中,打开时间加上预计使用时长即为预计关闭时间。
89.s702.判断预计关闭时间是否超出软件许可时间,若超出,则执行步骤s703;若未超出,则执行步骤s704。
90.s703.将软件许可时间作为对应当前使用用户对目标软件的剩余使用时间。
91.s704.获取当前时间。
92.其中,通过连接互联网获取当前世界时间。
93.s705.结合当前时间和预计关闭时间计算对应当前使用用户对目标软件的剩余使用时间。
94.其中,预计关闭时间减去当前时间即为剩余使用时间。
95.本实施例的实施原理为:不用的用户对目标软件被配置有不同的软件许可时间,当超过软件许可时间后,对应的用户将无法使用目标软件,因此在预测并计算得到当前使用用户的预计使用时长之后,可以结合打开目标软件的打开时间计算出当前使用用户对目标软件的预计关闭时间,再将预计关闭时间与对应用户的软件许可时间进行比对,若已经超出软件许可时间,则直接将软件许可时间作为剩余使用时间;若未超出,则需要结合当前时间进一步计算剩余使用时间。
96.本技术实施例还公开一种软件使用时长的预测系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,该程序能够被处理器加载执行时实现如图1至图7中所示的一种软件使用时长的预测方法。
97.本实施例的实施原理为:通过程序的调取,可以通过目标用户发出的用户指令获取到对应目标软件的当前使用用户,若当前使用用户的用户数量与许可用户数量相同时,可以根据当前使用用户的用户数据和对目标软件的历史使用数据,预测出目标软件的软件释放时间,并将软件释放时间反馈至目标用户,以使目标用户获取到软件释放时间后可以合理规划后续工作安排,而无需反复查看目标软件是否空闲,从而可以提升员工整体的工作效率。
98.以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1