来源:中国数据分析行业网 | 时间:2016-09-22 | 作者:数据委
导读:想要将数据分析、数据挖掘的作用最大化,数据的完整性总是必不可少的,因此,掌握一些生成基础数据的方法也非常重要。本期文章,我们以医疗场景为例,手把手教你生成基础数据。
我们在从事数据相关的项目过程中,数据梳理、数据整合和数据补全等工作需要占用大量的时间与精力,而进展到数据分析、数据挖掘阶段也对数据的完整性有着苛刻的要求。对于一个统计算法的验证与研究,也同样面临着根据自身业务情景特点,配置数据属性的需求。今天,我们就简单介绍几种基础数据生产方法,以简化我们的ETL流程,方便大家根据业务定义去生产数据。本文以面向对象的JAVA语义进行示例。小伙伴们可以按照自己熟悉的各种语言来实现,笔者秉承着逻辑方法高于开发语言选择的思想去发现问题、解决问题。
业务场景:
在医院就诊过程中,系统需要记录我们的基本信息,比如:病案号、姓名、性别、发病时间、体重等。这些数据必须符合客观规律,并且结构化。我们接下来就逐一介绍每种属性的数据生产方法。
1、根据面向对象原则建立一个父类
首先我们建立一个抽象类AttributeValueGenerator,在这个类中声明一个实体entity,并建立get、set方法,此后的每种方法都继承这个父类。
2、定义病案号
病案号是一组规则的、自定义的递增数列,我们可以采用递增的方式产生。定义两个参数:病案号的起始数字、增长规模。
函数如下:
输入参数:
10001为病案号的起始数字、每次增加1。
3、区分性别
我们用一组枚举型的数列填充性别属性。男性、女性的就诊比例根据业务需求自定义,采用按百分比产生随机数的方式实现。
函数如下:
输入参数:
第一个参数为性别、第二参数为出现的概率。
4、发病日期归并
发病日期分布在不同的年份月份日期,需要规划起始日期、截止日期、期间概率,随机生成范围内日期并转换为int型输出。
函数如下:
参数输入:
发病时间在2005年的占27%、在2006年的占73%
5、体重正态分布
一组成年人的体重数据应该根据男女区别对待,并符合正态分布的规律。正态分布数据生成,可以控制期望、方差、起始、截止。
函数如下:
参数输入:
如果是男性,平均值为67公斤、方差为10、40-150公斤之间浮动。
如果是女性,平均值为57公斤、方差为10、40-150公斤之间浮动。
总结
我们可以不停地思考,随时随地的根据项目需要结合数据特点来开发一些属性的生成函数。不要小看这些细节,一旦你需要的时候就可以快速生产了。所谓:积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。你说是不是这个道理呢?
来源:数据分析网