数据分析方法、装置、服务器及可读存储介质
技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及一种数据分析方法、装置、服务器及可读存储介质。
背景技术
数据分析,是指对已有的原始数据在数据的结构和规律等方面进行探索的过程。随着机器学习的发展,在建立模型前对海量的原始数据进行有效的数据分析,从而为建立模型提供数据及特征选择的依据,是十分有必要的。
发明内容
本说明书实施例提供及一种数据分析方法、装置、服务器及可读存储介质。
第一方面,本说明书实施例提供一种数据分析方法,包括:得到初始数据;针对建立数据模型所采用的算法类型,从预置的数据分析工具集中匹配出与所述算法类型对应的数据分析工具,利用所述数据分析工具对所述初始数据进行特征工程,确定出符合目标特性的目标数据;输出所述目标数据,作为数据模型的依据。
第二方面,本说明书实施例提供一种数据分析装置,包括:初始数据获取单元,用于得到初始数据;数据分析单元,用于针对建立数据模型所采用的算法类型,从预置的数据分析工具集中匹配出与所述算法类型对应的数据分析工具,利用所述数据分析工具对所述初始数据进行特征工程,确定出符合目标特性的目标数据;输出单元,用于输出所述目标数据,作为数据模型的依据。
第三方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一项所述方法的步骤。
第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本说明书实施例有益效果如下:
可见,本说明书实施例中,通过在预置的数据分析工具集中,匹配出与模型算法对应的数据分析工具,由数据分析工具实现对特征工程的自动化过程,无需手动或人工对数据进行处理和分析,提高了数据分析的效率。
附图说明
图1为本说明书实施例提供的数据分析方法应用场景示意图;
图2为本说明书实施例第一方面提供的数据分析方法流程图;
图3为本说明书实施例第一方面提供的数据分析方法实例流程图;
图4为本说明书实施例第二方面提供的数据分析装置结构示意图;
图5为本说明书实施例第三方面提供的服务器结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
请参见图1,为本说明书实施例探索性数据分析方法应用场景示意图。图1场景中,示出了云端10、数据分析系统20和业务方30。其中,云端10向数据分析系统20提供海量的原始数据,例如各种业务场景下的网络交易数据等;数据分析系统20对海量原始数据进行清洗等初步处理后实现数据分析过程,并将数据分析的数据分析结果提供给业务方30参考;业务方30是业务需求方(例如网站,可以理解为用户),业务方30根据数据分析结果进行后续的数据处理,例如完成数据建模以及模型优化等过程。
需要说明的是,上述数据分析系统20和业务方30是从实现功能角度进行区分的,实际中,数据分析系统20和业务方30的功能可在同一个物理设备(例如同一台服务器)上实现,或者在业务方30上集成数据分析系统20的功能,本说明书实施例对此不做限定。
本说明书实施例中,在数据分析系统上实现自动化的数据分析过程,通过预先设置数据分析工具集,数据分析工具集中包括符合各种业务需求的数据分析工具,通过调用满足业务需求对应的数据分析工具,实现对数据的分析,从而避免用户去逐个/批查看数据进行分析,借助预置的数据分析工具,可实现数据分析的自动化。
第一方面,本说明书实施例提供一种数据分析方法,该方法用于对海量原始数据进行处理和分析,分析结果作为建立数据模型的依据。请参考图2,该数据分析方法包括步骤S201-S203。
S201:得到初始数据。
如前所述,数据分析系统可从云端得到海量的原始数据(或者从多个客户终端得到),这些原始数据往往为“脏数据”,是未经过处理的数据。在真实数据中,包含了大量的缺失值,也可能包含大量的噪音,还可能因为人工录入错误导致有异常点存在,对挖据出有效信息造成了一定的困扰,所以可通过数据清洗的方法,尽量提高数据的质量。数据清洗可包括缺失值处理、异常值处理、去重处理、噪音数据处理等方面。在对原始数据进行数据清洗处理之后,可得到用于进行数据分析的初始数据。
S202:针对建立数据模型所采用的算法类型,从预置的数据分析工具集中匹配出与算法类型对应的数据分析工具,利用数据分析工具对初始数据进行特征工程,确定出符合目标特性的目标数据。
机器学习来源于人工智能领域,传统的算法包括决策树、聚类、贝叶斯分类、支持向量机、最大期望算法等。深度学习是利用深度神经网络来解决特征表达的一种学习过程。可以理解,深度学习是一种特殊的机器学习。
本说明书实施例中,在进行数据分析之前,可判断建模采用的算法是深度学习算法还是非深度学习(其余机器学习算法)。对于深度学习,其针对的数据往往是图像数据或视频数据,因此,需要选取适应的数据分析工具,例如,基于局部保真模块实现的数据分析工具;对于非深度学习,其针对的数据类型或格式可能多种,例如可能是连续数据或者离散数据,可能是正态分布的数据、时间序列的数据等,因此,在选择数据分析工具时,可结合数据的类型或格式,确定出相适应的数据分析工具。
在选取出与算法类型相适应的数据分析工具之后,即可利用数据分析工具内置的模块(局部保真模块或目标扰动模块)或函数(编程语言封装体)自动进行特征工程的过程。特征工程,是将原始数据转化为特征的过程,这些特征可以更好地向预测模型描述潜在问题,从而提高模型对未见数据的准确性。在下文中,将对数据分析工具内置的模块或函数进行特征工程的过程进行描述。
S203:输出目标数据,作为数据模型的依据。
在对初始数据利用数据分析工具进行特征工程之后,即可确定出符合某一个特性的数据集合,即该目标数据的特征表现出符合某一特性,该数据集合内的数据可称为目标数据。将目标数据输出给业务方,业务方可参考该目标数据本身以及数据的特征进行建模。
请参见图3,为本说明书实施例第一方面提供的数据分析方法实例流程图。相比于图2的方法,该实例中详细描述了数据分析工具内置模块或函数的原理及过程,另外,描述了通过模型反馈信息,对数据分析工具进行性能优化的过程。
图3提供的数据分析方法包括步骤S301-S306。
S301:得到初始数据。
S302:判断模型的算法类型是深度学习还是非深度学习,从而选择算法类型对应的数据分析工具进行特征工程,具体的,如果是深度学习,执行S303,如果是非深度学习,执行S304。
本说明书实施例的数据分析工具,可依据EDA原理进行,其中通过内置了模块或函数的数据分析工具,实现自动化的数据分析过程,并且可以以可视化的形式提供出分析结果。EDA(探索性数据分析,Exploratory Data Analysis)是指对已有数据在尽量少的先验假设下通过作图、制表、方程拟合、计算特征量等手段探索数据的结构和规律的一种数据分析方法。特征工程可以理解是对数据集进行特性归类的过程,即找到这些数据的共用特征,从而可通过这些特征描述数据。
在本说明书实施例中,数据分析工具不论内置何种模块或函数,其针对数据的特征工程的过程可以是:(1)确定初始数据的至少一个维度的特征以及各个维度特征的特征值;(2)对各维度特征以特征值进行维度累积,确定满足特征值阈值的目标数据;(3)以可视化的形式显示目标数据。
可以理解,以特定的可视化形式组织数据更能帮助发现数据间的联系。数据组织形式可简单理解为在图表的每个维度(特征)上,坐标值(特征值)分布的形式。一般情况下,对于连续型、序数型数据,通常按特征取值大小排列组织数据显示,这使得图表呈现的信息易于理解;对于标称型数据,数据的组织形式并没有约定成俗的方式,此时不同的数据组织形式呈现的信息差异就比较明显。例如,在三维空间中显示图标,再加上颜色、亮度等特征,一个图表上一般最多能显示四个特征,对于多特征数据而言,本说明书实施例采用维度累积的方式展现。所谓的维度累积,是指在一个维度上对特征值进行累积,具体可包括多种实现形式,例如,当特征数量不太多的情况下,可以绘制多特征的矩阵图或其他图表,当特征数量较多时,可通过一些方法(局部保证模块或目标扰动模块等)进行处理,从而识别并保留满足特征值阈值的数据。
S303:选择预先设定有局部保真模块的数据分析工具,对初始数据进行特征工程,确定出符合目标特性的目标数据。
局部保真,可理解为是掩盖掉或扰乱一部分特征,比如在图像上可以遮挡住一部分的图像来分析哪部分的图像对于标签具有更高的相关性,具体实现上,可通过LIME(Local Interpretable Model-Agnostic Explanations)或Premutation(线段树插空)的方法实现局部保真模块的局部保真功能。
利用局部保真模块实现特征工程的具体过程可以包括:
(1)利用数据分析工具中的局部保真模块,针对数据模型的所有特征,掩盖掉部分特征,保留局部特征;
(2)分析局部特征对标签的相关性,根据相关性高低确定特征值的高低;
(3)对各维度特征以特征值进行维度累积,确定满足特征值阈值的目标数据;
(4)以可视化的HTML格式展示界面的形式显示目标数据。
S304:选择预先设定有编程语言封装体或目标扰动模块的数据分析工具,对初始数据进行特征工程,确定出符合目标特性的目标数据。
编程语言封装体,可以理解为是封装了编程语言的模块,例如,封装了R语言的模块,该模块可自动实现对数据的特征工程的过程。另外,在建立编程语言封装体时,可考虑数据格式或类型,从而更好的进行编程语言的封装。同时,向用户提供具有编程语言封装体的点选系统,接收用户针对数据特征选择的点选操作,或者向用户提供编程语言封装体的程序编写界面,接收用户针对数据特征选择的编程代码。
上述S304步骤中,利用预先设定有编程语言封装体的数据分析工具对初始数据进行特征工程的过程可以包括:
(1)向用户提供具有封装了特定编程语言的编程语言封装体的点选系统,接收用户针对数据特征选择的点选操作,或者向用户提供编程语言封装体的程序编写界面,接收用户针对数据特征选择的编程代码;
(2)根据点选操作或编程代码,确定初始数据的至少一个维度的特征,并通过各维度特征与标签的相关性,确定出各维度特征的特征值;
(3)对各维度特征以特征值进行维度累积,确定满足特征值阈值的目标数据;
(4)以可视化的图形或表格形式显示目标数据。
以营销数据为例,数据是具有时序特性的数据。
封装时序代码例如:
Orders%>%ggplot(aes(x=order_hour_of_day))+geom_histogram(stat="count",fill="red")
在点选系统上点选时序的横轴和相关点击。
对于相对复杂的运算,可开放一个填写公式的界面便于用户来自行填写函数(公式)。
另外对于均线图也可以做一定的处理:
以上只是几个基本的通过封装R语言来实现可视化的例子,仅作示例性表示,不作为对本说明书实施例的限定。
目标扰动,可以理解为:通过减少或扰乱一部分标签,由此确定特征对标签扰动之后的敏感度,从而判断特征的重要性。
上述S304步骤中,利用预先设定有目标扰动模块的数据分析工具对初始数据进行特征工程的过程可以包括:
(1)确定所有标签及标签值,并统计满足至少一个标签的各个维度的特征以及特征值;
(2)去掉一部分标签或者将一部分标签值进行降低,从而进行目标扰动:统计目标扰动后各维度特征的特征值的变化,保留特征值变化量超过特征值变化阈值的特征及其特征值。
(3)对各维度特征以特征值进行维度累积,确定满足特征值阈值的目标数据;
(4)以可视化的图形或表格形式显示目标数据。
通过内置了目标扰动模块的数据分析工具,可以使得特征的重要度更加容易被显现出来,从而便于使用重要的特征进行可视化显示。
S305:输出目标数据,作为数据模型的依据。
S306:接收数据模型性能反馈信息,根据反馈信息修正数据分析工具。
为了对数据分析工具的特征工程过程进行优化,可接收模型的反馈信息,从而不断更新数据分析工具的参数或指标,使得其数据工程过程更加接近真实情况。
在一种实现方式中,可将反馈信息记录在一个反馈数据库中,通过查询反馈数据库,调取出针对数据分析工具的所有反馈信息;根据所有反馈信息,评估特定数据分析工具的特征工程可信度;根据特征工程可信度,调整数据分析工具的指标参数。其中,指标参数包括特征工程所选取的标签种类、标签值、特征数量、特征值等。
可见,本说明书实施例中,通过预置的数据分析工具对初始数据自动进行特征工程的过程,无需手动或人工对数据进行处理和分析,提高了数据分析的效率;而且,通过对数据分析结果的可视化显示,可直观的提供分析结果,便于建立模型参考;另外,通过模型反馈信息对数据分析工具的性能不断优化,可提高数据分析工具的性能,提高数据分析的准确性。
第二方面,基于同一发明构思,本说明书实施例提供一种数据分析装置,请参考图4,包括:
初始数据获取单元401,用于得到初始数据;
数据分析单元402,用于针对建立数据模型所采用的算法类型,从预置的数据分析工具集中匹配出与所述算法类型对应的数据分析工具,利用所述数据分析工具对所述初始数据进行特征工程,确定出符合目标特性的目标数据;
输出单元403,用于输出所述目标数据,作为数据模型的依据。
在一种可选方式中,还包括:
反馈信息接收单元404,用于接收数据模型性能反馈信息,其中,所述数据模型是依据所述目标数据作为样本数据建立的;
工具修正单元405,用于根据所述反馈信息,修正所述数据分析工具。
在一种可选方式中,还包括:
数据库记录单元406,用于将所述反馈信息记录在反馈数据库中;
其中,所述工具修正单元405具体用于:查询所述反馈数据库,调取出针对所述数据分析工具的所有反馈信息;根据所述所有反馈信息,评估所述特定数据分析工具的特征工程可信度;根据所述特征工程可信度,调整所述特定数据分析工具的指标参数。
在一种可选方式中,所述数据分析单元402,包括:
算法判断子单元4021,用于判断建立数据模型所采用的算法类型是深度学习算法还是非深度学习算法:
深度学习处理子单元4022,用于对于深度学习算法,采用预先设定有局部保真模块的数据分析工具;
非深度学习处理子单元4023,用于对于非深度学习算法,采用预先设定有编程语言封装体或目标扰动模块的数据分析工具。
在一种可选方式中,所述深度学习处理子单元4022包括:
特征确定模块40221,用于利用所述数据分析工具中的局部保真模块,确定所述初始数据的至少一个维度的特征以及各个维度特征的特征值;
目标数据确定模块40222,用于对各维度特征以特征值进行维度累积,确定满足特征值阈值的目标数据;
目标数据显示模块40223,用于以可视化的HTML格式展示界面的形式显示所述目标数据。
在一种可选方式中,所述特征确定模块40221具体用于:针对数据模型的所有特征,掩盖掉部分特征,保留局部特征;以及,分析局部特征对标签的相关性,根据相关性高低确定特征值的高低。
在一种可选方式中,所述非深度学习处理子单元4023包括:
特征确定模块40231,用于利用所述数据分析工具中的编程语言封装体或目标扰动模块,确定所述初始数据的至少一个维度的特征以及各个维度特征的特征值;
目标数据确定模块40232,用于对各维度特征以特征值进行维度累积,确定满足特征值阈值的目标数据;
目标数据显示模块40233,用于以图形或表格形式显示所述目标数据。
在一种可选方式中,所述特征确定模块40231具体用于:向用户提供具有封装了特定编程语言的编程语言封装体的点选系统,接收用户针对数据特征选择的点选操作,或者向用户提供编程语言封装体的程序编写界面,接收用户针对数据特征的编程代码;以及,根据所述点选操作或编程代码,确定所述初始数据的至少一个维度的特征,并通过各维度特征与标签的相关性,确定出各维度特征的特征值。
在一种可选方式中,所述特征确定模块40231具体用于:确定所有标签及标签值,并统计满足至少一个标签的各个维度的特征以及特征值;去掉一部分标签或者将一部分标签值进行降低,从而进行目标扰动;以及,统计目标扰动后各维度特征的特征值的变化,保留特征值变化量超过特征值变化阈值的特征及其特征值。
在一种可选方式中,还包括:
数据特性确定单元407,用于确定所述初始数据的数据类型或格式;
所述数据分析单元402还用于,在选择数据分析工具时,结合所述初始数据的数据类型或格式,确定出相适应的数据分析工具。
第三方面,基于与前述实施例中数据分析方法同样的发明构思,本说明书实施例还提供一种服务器,如图5所示,包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的计算机程序,所述处理器502执行所述程序时实现前文所述数据分析方法的任一方法的步骤。
其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器502代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口506在总线500和接收器501和发送器503之间提供接口。接收器501和发送器503可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器502负责管理总线500和通常的处理,而存储器504可以被用于存储处理器502在执行操作时所使用的数据。
第四方面,基于与前述实施例中数据分析的发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述数据分析方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。