当前位置 > 首页 > 技术热点 > 数据分析,如何生成你需要的基础数据?

数据分析,如何生成你需要的基础数据?

来源:中国数据分析行业网 | 时间:2016-09-22 | 作者:数据委

导读:想要将数据分析、数据挖掘的作用最大化,数据的完整性总是必不可少的,因此,掌握一些生成基础数据的方法也非常重要。本期文章,我们以医疗场景为例,手把手教你生成基础数据。

我们在从事数据相关的项目过程中,数据梳理、数据整合和数据补全等工作需要占用大量的时间与精力,而进展到数据分析、数据挖掘阶段也对数据的完整性有着苛刻的要求。对于一个统计算法的验证与研究,也同样面临着根据自身业务情景特点,配置数据属性的需求。今天,我们就简单介绍几种基础数据生产方法,以简化我们的ETL流程,方便大家根据业务定义去生产数据。本文以面向对象的JAVA语义进行示例。小伙伴们可以按照自己熟悉的各种语言来实现,笔者秉承着逻辑方法高于开发语言选择的思想去发现问题、解决问题。

业务场景:

在医院就诊过程中,系统需要记录我们的基本信息,比如:病案号、姓名、性别、发病时间、体重等。这些数据必须符合客观规律,并且结构化。我们接下来就逐一介绍每种属性的数据生产方法。

1、根据面向对象原则建立一个父类

首先我们建立一个抽象类AttributeValueGenerator,在这个类中声明一个实体entity,并建立get、set方法,此后的每种方法都继承这个父类。

118

2、定义病案号

病案号是一组规则的、自定义的递增数列,我们可以采用递增的方式产生。定义两个参数:病案号的起始数字、增长规模。

函数如下:

119

输入参数:

10001为病案号的起始数字、每次增加1。

120结果展示:

121

3、区分性别

我们用一组枚举型的数列填充性别属性。男性、女性的就诊比例根据业务需求自定义,采用按百分比产生随机数的方式实现。

函数如下:

122

输入参数:

第一个参数为性别、第二参数为出现的概率。

123 124结果展示:

125

4、发病日期归并

发病日期分布在不同的年份月份日期,需要规划起始日期、截止日期、期间概率,随机生成范围内日期并转换为int型输出。

函数如下:

126

参数输入:

发病时间在2005年的占27%、在2006年的占73%

127结果展示:

128

5、体重正态分布

一组成年人的体重数据应该根据男女区别对待,并符合正态分布的规律。正态分布数据生成,可以控制期望、方差、起始、截止。

函数如下:

129

参数输入:

如果是男性,平均值为67公斤、方差为10、40-150公斤之间浮动。

如果是女性,平均值为57公斤、方差为10、40-150公斤之间浮动。

130结果如下:

131汇总结果展现:

132

总结

我们可以不停地思考,随时随地的根据项目需要结合数据特点来开发一些属性的生成函数。不要小看这些细节,一旦你需要的时候就可以快速生产了。所谓:积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。你说是不是这个道理呢?

来源:数据分析网