设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1627|回复: 1

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

[复制链接]

267

主题

5576

金钱

9470

积分

高级用户

发表于 2017-1-11 16:40: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公斤之间浮动。


结果如下:


汇总结果展现:




总结


我们可以不停地思考,随时随地的根据项目需要结合数据特点来开发一些属性的生成函数。不要小看这些细节,一旦你需要的时候就可以快速生产了。
所谓:积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。你说是不是这个道理呢?
作者:杨老师 (中国统计网特邀认证作者)
原文链接:http://www.itongji.cn/cms/article/articledetails?articleid=4751

232

主题

1万

金钱

1万

积分

资深用户

发表于 2017-1-12 09:18:05 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表