一种大数据建模平台及方法与流程

文档序号:11432289阅读:745来源:国知局

技术领域
:〗本发明属于电子信息、大数据等
技术领域
:,具体涉及大数据的采集、储存、分析、展现的一种大数据建模平台及方法。〖
背景技术
::〗随着互联网的快速发展,每天产生的数据量非常庞大。在大数据技术问世之前,传统的数据处理遇到了很多的瓶颈。首先,对于传统的数据库当数据量非常大的情况下就会导致存储到达上限,解决办法是换容量更大的硬盘,但是这么做的成本非常高。其次就是计算机无法快速的处理大数据量,在数据处理速度上也会遇到瓶颈。目前,利用大数据技术可以解决传统的信息技术架构存在的扩展性差、容错性差、性能低、安装部署及维护困难等诸多瓶颈。利用hadoop的hdfs分布式文件系统对数据进行存储,扩展性好、容错性高。利用hadoop的mapreduce对大规模数据集(大于1tb)进行并行计算,提高计算速度,性能高。使用sqoop组件实现传统数据库与hadoop进行数据的传递。但是现有的大数据技术对于非技术人员使用大数据技术是不太容易的。〖技术实现要素:〗本发明旨在提供一种大数据建模平台及方法,包含结构化数据建模、数据展现等多方面功能,支持自助式商业智能分析、可拖拽式数据展现及建模等,可以在极短的时间内为企业决策层制作出提供决策依据的管理驾驶舱以及即席查询分析决策平台。本发明的目的由以下技术方案实现:一种大数据建模平台,包括:数据资产模块,用于数据源的上传,采用手动上传或自动更新的方式将用户数据更新到云平台,用户通过拖拽手工建模的方式,处理自己上传的数据;数据清洗模块,用于对数据源进行数据的etl处理,发现并纠正数据文件中可识别的错误,包括检查数据一致性、处理无效值和缺失值;数据校验模块,用于对数据进行检测与基本的统计工作;算法模块,利用机器学习中一些经典的分类或聚类算法对大量数据进行建模,然后利用模型进行预测;前端展现模块,用于对已经处理过的数据或者未曾处理的数据进行图形化展现。作为具体的技术方案,所述数据资产模块包括三种上传数据方式,本地文件上传、底层数据上传、数据库上传,其中数据库上传支持mysql、oracle、sqlserver三种数据库。作为具体的技术方案,所述数据清洗模块包括sql处理子模块、抽样子模块、分类汇总子模块、合并数据子模块、删除重复子模块、数据分区子模块、排序子模块、数据离散化子模块、数据标准化子模块、过滤变量子模块、转置子模块、字段重排子模块、缺失值处理子模块、离群值处理子模块、查找转换子模块、插入变量子模块、加权子模块、样本均衡子模块、分词解析子模块;sql处理子模块用于直接编辑sql语句进行执行,抽样子模块用于利用不同的取样方式对数据进行取样处理,分类汇总子模块用于将表内字段变量内容按照均值、计数、求和方式计算,生成相应标签变量列,其中汇总变量与计算变量是可配置的;合并数据子模块用于将两张表的数据按照行记录追加或者列变量追加,行记录追加时请保持列变量名称一致,否则将新增变量列;删除重复子模块用于将选定变量里的重复内容删除;数据分区子模块用于指定训练区和测试区中样本数据的数量或比例;排序子模块将选定的变量内容按照升序或者降序排列;数据离散化子模块用于将选定连续型的变量列,按照等宽分箱或者等频分箱法,进行离散化并加以分类;数据标准化子模块将选定仅支持数字类型的变量列进行0-1标准化,结果落到[0,1]区间;进行z标准化,数据符合标准正态分布,均值为0,标准差为1;过滤变量子模块用于将选定变量列进行删除;转置子模块用于将数据中所有的行和列进行转置即行列转换;字段重排子模块用于将数据中的列变量位置重新排列;缺失值处理子模块用于将已选变量为空的行记录删除;离群值处理子模块用于按照异常值识别规则将异常值按设定比例进行删除,识别规则包括标准差和分位数,即距离均值一定倍数的标准差或分位数以外的数据识别为异常数据;查找转换子模块用于将选定变量的内容按照设定条件查找,并替换为目标值;插入变量子模块用于将选定变量进行四则运算,生成新变量列,在算法框中,手动输入变量列的名称,编辑运算式。加权子模块用于将选定变量进行加权运算,在权重因子中,输入权重数值。样本均衡子模块用于在选定的数值型变量列中,按照设定条件查找目标数据,并输入权重因子,将目标数据加权处理;分词解析子模块用于将选定的分词字段的文本内容解析后,按照解析后词条生成行记录。作为具体的技术方案,所述数据校验模块包括数据审核子模块、频数分析子模块、描述性统计子模块;数据审核子模块用于统计分析选定变量中的样本指标和检测,指标包括有效值、无效值、空值及其占比;频数分析子模块用于在选定变量中,对所有内容出现的频次进行统计;描述性统计子模块用于对指定变量列进行均值、众数、中位数、总计的统计计算。作为具体的技术方案,所述算法模型模块包括apriori算法子模块、kmeans算法子模块、朴素贝叶斯算法子模块、逻辑回归算法子模块、岭回归算法子模块、lasso算法子模块、线性回归算法子模块;apriori算法子模块用于结合关联字段内容统计频次,将维度字段中的内容进行二频集的概率计算,并得出分析指标如支持度;kmeans算法子模块用于将已选字段的数据分成n个簇,对其中聚类个数、迭代次数、随机次数参数进行配置,实现数据的聚类功能;朴素贝叶斯子模块、逻辑回归子模块、岭回归算法子模块、lasso算法子模块、线性回归算法子模块都是用于模拟出分类算法模型对新的数据进行预测。作为具体的技术方案,所述前端展现模块通过拖拉拽的方式可视化的操作组件来进行试验,依据已建立好的业务模型进行数据清洗与算法分析,将结果数据集通过连接好的前端展现模块中的图表进行可视化多维度的展现。作为具体的技术方案,所述可视化多维度的展现包括:1、以不同的数据结构以不同的图表类型进行直观的展现;2、以下钻的形式进行多维度数据的展示;3、以节点定制化展示形式来对特殊数据进行定制化的展现;4、以多图联动展示的形式更好的对数据进行展现。一种基于上述大数据建模平台的建模方法,步骤如下:首先,将需要处理的数据源利用数据资产中添加数据源节点将数据上传到平台上以备后续使用;接着,根据业务场景的需要,利用数据清洗模块中的功能节点对数据进行清洗,如利用缺失值处理将数据中字段为空的一行数据删除,利用过滤变量将业务需要的字段进行保留,其他字段删除处理等一系列处理,获取想要的特定格式的数据;其次,如果业务场景中没有对算法的需求,就可以利用前端展现模块的图形化进行最终的数据的展现;在前端展现功能节点的选择上图形种类繁多,根据需求来选择不同的图形进行数据表现;如果需要用到算法,就需要加入算法节点;最后,选择完相应节点,将数据源节点、数据清洗节点、算法节点或者无、前端展现节点进行连接保存,点击运行就可以跑通整个流程,将最终数据以图形化展现出来。综上所述,本发明在整个数据处理流程方面非常的灵活,用户可以根据不同的需求完成相应的工作流;在数据源上传阶段,有多种上传方式提供选择;在数据清洗阶段,有多种处理方式提供选择;算法阶段,也同样包含多种算法;数据展现阶段,包含多种图形;本发明支持多种核心主流算法库开箱即用,使得大数据分析简单化和平民化,使用者了解极少统计学与数据挖掘领域知识,便可轻松使用该平台对大数据进行数据挖掘与建模分析。〖附图说明〗图1为本发明实施例提供的大数据建模平台中采用sqoop技术从数据库中导入hdfs的原理图。图2为本发明实施例提供的大数据建模平台中采用数据流的形式进行上传文件的原理图。〖具体实施方式〗下面结合附图对本发明的具体实施方式作进一步说明:本实施例提供的大数据建模平台包括:数据资产、数据清洗、数据检验、算法模型、前端展现。以下具体介绍各模块:数据资产模块用于数据源的上传,采用手动上传或自动更新的方式将用户数据更新到云平台,用户通过拖拽手工建模的方式,可以处理自己上传的数据。数据清洗模块用于对数据源进行数据的etl处理,发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等。数据校验模块用于对数据进行检测与基本的统计工作。算法模块的用途是,利用机器学习中一些经典的分类或聚类算法对大量数据进行建模,然后利用模型进行预测。前端展现模块用于对已经处理过的数据或者未曾处理的数据进行图形化展现,给用户更直观的表现形式。数据资产模块包括三种上传数据方式,本地文件上传、底层数据上传、数据库上传,其中数据库上传支持mysql、oracle、sqlserver三种数据库。数据清洗模块包括sql处理、抽样、分类汇总、合并数据、删除重复、数据分区、排序、数据离散化、数据标准化、过滤变量、转置、字段重排、缺失值处理、查找转换、插入变量、加权、样本均衡、分词解析等模块。sql处理用于直接编辑sql语句进行执行。抽样用于利用不同的取样方式(n取1、随机%等)对数据进行取样处理。分类汇总用于将表内字段变量内容按照均值、计数(汇总)、求和(总计)方式计算,生成相应标签变量列,其中汇总变量与计算变量是可配置的。合并数据用于将两张表的数据按照行记录追加或者列变量追加,行记录追加时请保持列变量名称一致,否则将新增变量列。删除重复用于将选定变量里的重复内容删除。数据分区用于指定训练区和测试区中样本数据的数量或比例。排序将选定的变量内容按照升序或者降序排列。数据离散化用于将选定连续型的变量列,按照等宽分箱(分箱宽度)或者等频分箱法(分箱数量),进行离散化并加以分类。数据标准化将选定变量列(仅支持数字类型)进行0-1标准化(结果落到[0,1]区间);z标准化(数据符合标准正态分布,均值为0,标准差为1)。过滤变量用于将选定变量列进行删除。转置用于将数据中所有的行和列进行转置即行列转换。字段重排用于将数据中的列变量位置重新排列。缺失值处理用于将已选变量为空的行记录删除。离群值处理用于按照异常值识别规则将异常值按设定比例进行删除。(识别规则包括标准差和分位数,即距离均值一定倍数的标准差或分位数以外的数据识别为异常数据)。查找转换用于将选定变量的内容按照设定条件查找,并替换为目标值。插入变量用于将选定变量进行四则运算,生成新变量列(别名)。在算法框中,手动输入变量列的名称,编辑运算式。加权用于将选定变量进行加权运算,在权重因子中,输入权重数值。样本均衡用于在选定的数值型变量列中,按照设定条件查找目标数据,并输入权重因子,将目标数据加权处理。分词解析用于将选定的分词字段的文本内容解析后,按照解析后词条生成行记录。数据校验模块包括数据审核、频数分布、描述性统计模块。数据审核用于统计分析选定变量中的样本指标(有效值、无效值、空值及其占比)和检测。频数分析用于在选定变量中,对所有内容出现的频次进行统计。描述性统计用于对指定变量列进行均值、众数、中位数、总计等统计计算。算法模型模块包括apriori算法、kmeans算法、朴素贝叶斯算法、逻辑回归算法、岭回归算法、lasso算法、线性回归算法等模块。apriori算法用于结合关联字段内容统计频次,将维度字段中的内容进行二频集的概率计算,并得出分析指标如支持度等。kmeans算法用于将已选字段的数据分成n个簇,其中聚类个数、迭代次数、随机次数参数可以进行配置,实现数据的聚类功能。朴素贝叶斯、逻辑回归等算法都是分类算法,基本思路相似,用于模拟出分类算法模型对新的数据进行预测。前端展现模块是数据分析与展现一体化的平台。用户可以通过拖拉拽的方式可视化的操作组件来进行试验,使得没有机器学习背景的工程师也可以轻易上手玩转数据挖掘。平台依据已建立好的业务模型进行数据清洗与算法分析,将结果数据集通过连接好的前端展现模块中的图表进行多维度的展现。以不同的数据结构以不同的图表类型进行直观的展现。以下钻的形式进行多维度数据的展示。以节点定制化展示形式来对特殊数据进行定制化的展现。以多图联动展示的形式更好的对数据进行展现。将数据图片转化为数据查询,每一项数据在不同维度指标下交互联动,展示数据在不同角度的走势、比例、关系,帮助使用者识别趋势,发现数据背后的知识与规律。除了原有的饼状图、柱形图、热图、地理信息图等数据展现方式,还可以通过图像的颜色、亮度、大小、形状、运动趋势等多种方式在一系列图形中对数据进行分析,帮助用户通过交互,挖掘数据之间的关联。并支持数据的上钻下探、多维并行分析,利用数据推动决策。可视化会为用户提供一个总的概览,再通过缩放和筛选,为人们提供其所需的更深入的细节信息。可视化的过程在帮助人们利用大数据获取较为完整的客户信息时起到了关键性作用。而错综的关系是众多大数据场景中的重要一环,社交网络或许就是最显著的例子,想要通过文本或表格的形式理解其中的大数据信息是非常困难的;相反,可视化却能够将这些网络的趋势和固有模式展现地更为清晰。在形象体现社交网络用户之间的关系时,通常使用的是基于云计算的可视化方法。通过相关性模型来描绘社交网络中用户节点的层次关系,这种方法能够直观地展示用户的社会关系。此外,它还能借助利用云技术的海杜普软件平台(hadoop)将可视化过程并行化,从而加快社交网络的大数据收集。大数据可视化可以通过多种方法来实现,比如多角度展示数据、聚焦大量数据中的动态变化,以及筛选信息(包括动态问询筛选,星图展示,和紧密耦合)等等。以下一些可视化方法是按照不同的数据类型(大规模体数据、变化数据和动态数据)来进行分析和分类的:树状图式:基于分层数据的空间填充可视化方法。圆形填充式:树状图式的直接替代。它使用圆形作为原始形状,并能从更高级的分层结构中引入更多的圆形。旭日型:在树状图可视化基础上转换到极坐标系统。其中的可变参量由宽和高变成半径和弧长。平行坐标式:通过可视化分析,将不同帝乡的多重数据因素拓展开来。蒸汽图式:堆叠区域图的一种,数据围绕一条中轴线展开,并伴随流动及有机形态。循环网络图式:数据围绕一个圆形排列,并按照它们自身的相关性比率由曲线相互连接。通常用不同的线宽或色彩饱和度测量数据对象的相关性。以上介绍了大数据建模平台的主要功能模块,本发明在揭示上述功能的同时,还揭示了整个流程过程,步骤如下:首先,将需要处理的数据源利用数据资产中添加数据源节点将数据上传到平台上以备后续使用。接着,根据业务场景的需要,利用数据清洗模块中的功能节点对数据进行清洗,如利用缺失值处理将数据中字段为空的一行数据删除,利用过滤变量将业务需要的字段进行保留,其他字段删除处理等一系列处理,获取想要的特定格式的数据。其次,如果业务场景中没有对算法的需求,就可以利用前端展现模块的图形化进行最终的数据的展现。在前端展现功能节点的选择上图形种类繁多,根据需求来选择不同的图形进行数据表现。如果这里需要用到算法,就需要加入算法节点,如朴素贝叶斯、线性回归等。最后,选择完相应节点,需要将数据源节点、数据清洗节点、算法节点或者无、前端展现节点进行连接保存,点击运行就可以跑通整个流程,将最终数据以图形化展现出来。下面对各模块的功能及实现原理做进一步详细的说明:1.数据资产由于建模平台数据来源不统一,需要将不同的数据源转换成统一的数据源,可以将关系型数据库,例如oracle,mysql,sqlserver等,文件格式的数据,比如txt,csv等,也可以在现有的数据源基础上进行处理形成新的数据源,转换成统一的hive数据源,为建模平台流程处理提供数据源。(1)针对关系型数据库,采用sqoop技术处理,sqoop是通过一个mapreduce作业从数据库中导入一个表,这个作业从表中抽取一行行记录,然后写入到hdfs,如图1所示。在导入开始之前,sqoop使用jdbc来检查将要导入的表。检索出表中所有的列以及列的sql数据类型。这些sql类型(varchar、integer)被映射到java数据类型(string、integer等),在mapreduce应用中将使用这些对应的java类型来保存字段的值。sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。(2)针对文件格式的数据,采用数据流的形式进行上传文件,使用hadoop技术进行处理,本地文件通过mapreduce,将文件上传到hdfs上,再将文件通过指定的表名和字段名,存入hive中,如图2所示。(3)针对现有的数据源,采用hive技术进行处理,在原有数据源的基础上采用hive的select语句创建新的hive表,产生新的数据源,也可以直接使用已经存在的数据源。2.数据清洗为了保证通恒大数据建模平台对于数据一致性的要求,为此提供了数据清洗功能,主要包括sql处理、抽样、分类汇总、合并数据集、数据分区、排序、数据离散、数据标准、过滤标量、转置、字段重排、加权、样本均衡等。(1)sql处理是使用hive的select语句根据原有的数据源创建新的数据源。(2)抽样是使用hive对原有的数据源进行抽样,产生新的数据源。(3)分类汇总依据汇总变量进行分组,使用计算变量来计算均值、汇总、总计。(4)合并数据集分为行记录追加和列变量追加,列变量追加需要选择合并变量,使用hive处理产生数据集。(5)删除重复项使用hive根据去重变量过滤去除重复的数据。(6)数据分区依据指定训练样本进行数据分区。(7)排序依据处理变量对数据源进行排序。(8)数据离散化依据处理变量产生离散数据形成结果集。(9)数据标准化依据处理变量,选择标准化方法,产生数据集。(10)过滤变量依据删除变量将其从结果集中删除,产生新的数据源。(11)转置将所有的行和列转置,转置后,新生成的列名命名规则为transposition_1,transposition_2,……,transposition_15。(12)字段重排指定字段的顺序。(13)缺失值处理依据处理变量除去数据,产生新的结果集。(14)查找转化依据处理变量,如果处理变量满足条件,将其替换。(15)离群值处理,依据处理变量采用排除模式和识别规则对其处理。(16)插入变量依据原有的列插入新的变量。(17)加权依据处理变量对其添加加权因子。(18)样本均衡依据处理变量,对其添加条件,如果满足条件,则根据因子对其进行转换。数据清洗主要采用hivesql技术进行处理,去除不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据,也可以在原有数据基础上进行处理。3.数据校验为了满足通恒大数据建模平台对数据处理的要求,为此提供了数据校验功能,可以提供处理数据的灵活度,可以把不符合指标的数据指定为无效数据。主要包括数据审核、频数分布、描述性统计等。(1)数据审核是使用通过hive的select语句对数据源进行处理,无效值检测方法分为两类,字段类型检测和数值检测,指标为有效样本、有效样本%、空值、空值%、无效值、无效值%,根据处理变量分组汇总,产生百分比,进而产生结果集。(2)频数分布式通过hive的select语句对数据源进行处理,根据处理变量来分组并获取总数(count)。(3)描述性统计是使用hive的select语句对数据源进行处理,首先根据处理变量进行处理获取众数、均值、中位数、总计,也可以获取最大值、最小值、范围、均值标准误差,根据hive提供的percentile和percentile_approx函数,获取数据统计的结果四分位数和五分位数等。4.算法模型通恒大数据建模平台是基于分布式计算引擎的一款机器学习算法平台。用户通过拖拉拽的方式可视化的操作组件来进行试验,使得没有机器学习背景的工程师也可以轻易上手玩转数据挖掘。平台提供了apriori、k_means、朴素贝叶斯、逻辑回归、岭回归、lasso、线性回归等丰富的机器语言。(1)算法模型主要采用spark技术实现,将准备的数据集和训练数据提交到spark集群高效处理并获取结果集。(2)算法使用java语音实现,首先将实现的算法程序打成jar包与平台分别部署,进而降低建模平台与算法的耦合度,在部署算法时,不会影响平台的使用。(3)算法的具体实现是将任务提交给spark集群处理,通过集群的分布式计算,可以快速有效的迭代计算。大数据建模平台的算法模型模块主要利用了sparkmllibapi进行编程实现,spark基于内存的计算引擎运算速度快,而且sparkmllib库中包含很多机器学习算法:apriori、kmeans、朴素贝叶斯、逻辑回归、岭回归、lasso等算法,这些算法主要分成两类:分类和聚类。在这些算法里面kmeans算法属于聚类,而上面列举的算法属于分类算法,在代码实现上,两类问题存在不同的逻辑,下面将从这两个方面来阐述算法模型模块涉及到的技术问题。聚类算法聚类,clusteranalysis,有时也被翻译为簇类,其核心任务是:将一组目标object划分为若干个簇,每个簇之间的object尽可能的相似,簇与簇之间的object尽可能的相异。所谓聚类问题,就是给定一个元素集合d,其中每个元素具有n个可观察属性,使用某种算法将d划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高。其中每个子集叫做一个簇。kmeans属于基于平方误差的迭代重分配聚类算法,其核心思想十分简单:(1)随机选择k个中心点。(2)计算所有点到这k个中心点的距离,选择距离最近的中心点为其所在的簇。(3)简单的采用算术平均数(mean)来重新计算k个簇的中心。(4)重复步骤2和3,直至簇类不在发生变化或者达到最大迭代值。(5)输出结果。kmeans算法的结果好坏依赖于对初始聚类中心的选择,容易陷入局部最优解,对k值的选择没有准则可依循,对异常数据较为敏感,只能处理数值属性的数据,聚类结构可能不平衡。下面介绍kmeans算法流程与技术细节。获取数据源,在数据资产中添加数据源并将数据源拖入画布中。然后连接数据清洗的节点对数据源进行必要的etl处理使得数据源能够满足算法部分的调用。在数据清洗节点运行之后,会在集群的数据仓库hive中存一张本节点处理过后的数据,用于算法部分调用。在算法部分进行详细说明。数据源节点与数据清洗节点完成之后需要连接kmeans算法节点,将kmeans算法节点拖入画布中,双击次节点,会弹出配置页面,在配置页面中包含:1.选取哪些列来运行kmeans算法,因为在实际的业务需求中,不一定会用到所有的列;2.需要配置聚类类数,是指当前数据源想最终聚成多少个类;3.最大迭代次数,算法执行需要迭代多少次;4.随机次数;配置好之后点击保存,然后点击运行开始执行程序。在后台代码中,当程序判断nodetype(节点类型)为k_means时,会进入到kmeansserviceimpl的stepkmeans方法中。在这个方法里面,首先获取在配置界面等参数,利用kmeansinfo的实例化对象对这些参数执行set方法,将kmeans算法需要的参数都保存在kmeansinfo实例化对象中。接着执行tokmeansstring方法,得到用空格分隔的参数字符串。随后,执行datarevert中的formattabledata方法,这个方法的作用是进行特征转换,因为数据源中难免会有字符串,而spark的kmeans算法要求数据为double类型,所以次方法对于算法是否执行成功非常重要。执行算法jar包此处利用的是spark的yarn-client提交模式,这种模式的好处是不需要编写脚本,可以直接运行jar包。之后会执行co-insight-mllib.jar中的kmeansinfo,其中的参数在web端传入,主要的思路是,从hive指定表中获取已选字段数据,对数据进行相应格式转换,转化成要求的向量格式。利用kmeans.train的api训练数据生成kmeansmodel模型,次步骤是整个算法最重要的一步,只有生成了模型才能利用模型的predict方法来确定数据的聚类情况。最后将结果存入hdfs中,然后hive建表并读取hdfs数据。最终展现数据,将结果hive表与预测数据进行合并展示,到此基本kmeans算法(聚类算法)完成。分类算法何为分类算法?简单来说,就是将具有某些特性的物体归类对应到一个已知的类别集合中的某个类别上。从数学角度来说,可以做如下定义:已知集合:c={y1,y2,..,yn}和i={x1,x2,..,xm,..},确定映射规则y=f(x),使得任意xi∈i有且仅有一个yj∈c使得yj=f(xi)成立。其中,c为类别集合,i为待分类的物体,f则为分类器,分类算法的主要任务就是构造分类器f。分类算法的构造通常需要一个已知类别的集合来进行训练,通常来说训练出来的分类算法不可能达到100%的准确率。分类器的质量往往与训练数据、验证数据、训练数据样本大小等因素相关。举个例子,我们日常生活中看到一个陌生人,要做的第一件事情就是判断其性别,判断性别的过程就是一个分类的过程。根据以往的生活经验,通常经过头发长短、服饰和体型这三个要素就能判断出来一个人的性别。这里的“生活经验”就是一个训练好的关于性别判断的模型,其训练数据是日常生活中遇到的形形色色的人。突然有一天,一个娘炮走到了你面前,长发飘飘,穿着紧身的衣裤,可是体型却很man,于是你就疑惑了,根据以往的经验——也就是已经训练好的模型,无法判断这个人的性别。于是你学会了通过喉结来判断其性别,这样你的模型被训练的质量更高了。但不可否认的是,永远会出现一个让你无法判断性别的人。所以模型永远无法达到100%的准确,只会随着训练数据的不断增多而无限接近100%的准确。在分类算法中,不同算法之间不同之处是sparkmllib底层的实现不同,在调用api情况下,只是训练数据的方法参数会有些不同,其他的程序逻辑大体相似,这里以朴素贝叶斯算法为例进行详细介绍。朴素贝叶斯分类,naivebayes,你也可以叫它nb算法。其核心思想非常简单:对于某一预测项,分别计算该预测项为各个分类的概率,然后选择概率最大的分类为其预测分类。就好像你预测一个娘炮是女人的可能性是40%,是男人的可能性是41%,那么就可以判断他是男人。下面介绍朴素贝叶斯算法流程和技术细节。分类算法与聚类算法流程不同,次流程需要获取两个数据源,一个数据源带有标签列作为训练数据,而另一个数据源标签列为空作为预测数据。两个数据源要求字段名与类型要相同,接下来就要利用数据清洗中的合并数据集,将两个数据源在hive中合并在一个表中作为后续的处理,此处正常直接利用行记录追加。合并完数据集可以进行etl操作,对数据进行清洗处理,然后拖入算法模型中的朴素贝叶斯的算法节点连接,在朴素贝叶斯节点的配置页面中,可以选择标签列,哪些列作为执行算法使用,alpha属性,训练数据比例。配置好后保存运行,web端执行逻辑基本与kmeans算法web端的执行逻辑相似。算法代码在co-insight-mllib.jar的nativebayes中,选取训练数据的时候,要对之前合并的hive表以标签列是否为空来选取训练数据集与需要预测的数据集。然后利用naivebayes.train方法训练出naivebayesmodel模型,同样利用模型的predict对预测集进行分类预测,最终将结果保存于hive的表中,用于之后的前端展现。总结,算法模块主要利用的技术是spark的mllib的api调用,在算法实现上重用性强,开发速度快,训练模型效率高,能够很好的利用集群资源,基本满足了算法的通用型。5.前端展现通恒大数据建模平台提供丰富的仪表展现,平台使用更生动、有好的形式,及时呈现出隐藏在瞬息万变且庞杂数据背后的业务洞察。无论在交通、通信等领域,通过交互式实时数据可视化来帮助业务人员发现、诊断业务问题,越来越成为大数据解决方案中至关重要的一环。主要包括表格展示、柱状图、条形图、折线图、散点图、气泡图、虫洞、地理分布图等。(1)表格展示以表格的形式展现数据。(2)柱状图、条形图、折线图、饼图、面积图、散点图等根据x轴和y轴展示数据。(3)环形图根据分类变量和汇总变量,计算方式为数量或求和。(4)雷达图根据分类变量、对比变量1和对比变量2,计算方式为求和、最大值、均值。前端展现主要采用前端jquery技术进行展现。本申请的大数据建模平台可以让非技术人员不需要知道底层大数据技术的情况下可以很容易的使用。平台利用gooflow流程化技术,只需进行对数据源、数据处理、算法、数据展现等节点的拖拽连接就可以实现大数据处理过程。大数据建模平台主要利用hive数据仓库来储存数据,数据处理部分直接利用hivesql语句实现。当数据量巨大情况也可以很好的应对,性能优异。大数据建模平台算法部分利用spark的millib进行实现。spark的优点是job中间输出结果可以保存在内存中,从而不再需要读写hdfs,基于内存计算,运行效率高。spark的机器学习库包含算法种类多样,分类、聚类等算法能够满足用户的需求。创建数据源、数据处理、算法、数据展现节点连接实现一站式数据分析流程,完成业务需求。以上实施例仅为充分公开而非限制本发明,凡基于本发明的创作主旨、未经创造性劳动的等效技术特征的替换,应当视为本申请揭露的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1