京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:俊欣
来源:关于数据分析与可视化
有时候我们在进行模型的训练与优化的时候,是需要基于现有的数据集来操作的,要是数据量比较充足的情况下倒是还好说,但是要是遇到数据量不够的情况,该怎么办呢?今天小编就给大家来介绍几个方法来处理这种情况。
Python当中的Faker模块主要是用来生成伪数据,包括了城市、姓名等等,并且还支持中文,在开始使用该模块之前我们先用pip命令来下载安装完成
pip install faker
我们先随机地生成一些中文数据,代码如下
from faker import Faker
fake = Faker(locale='zh_CN') ## 随机生成一个城市 print(fake.city()) ## 随机生成一个地址 print(fake.address())
output
柳州市 吉林省兴安盟县华龙任街P座 540041
要是我们想要生成其他语言或者地区表示的数据,只需要传入相对应的地区值,这里例举几个常用的,代码如下
fr_FR - French es_ES - Spanish (Spain) en_US - English (United States) de_DE - German ja_JP - Japanese ko_KR - Korean zh_CN - Chinese (China Mainland) zh_TW - Chinese (China Taiwan)
我们可以看到填入的值的模式基本上是语种的缩写加上“_”再加上地区的缩写。
除了可以随机生成例如城市名称以及地址之外等模拟数据,还有很多其他方法可用,这些方法分为以下几类
具体使用的方法大家可以参考其官网,链接是:faker.readthedocs.io/en/master/providers.html
另外我们也可以通过机器学习算法在基于真实数据的基础上生成合成数据,将后者应用于模型的训练上,例如由MIT的DAI(Data to AI)实验室推出的合成数据开源系统----Synthetic Data Vault(SDV),该模块可以从真实数据库中构建一个机器学习模型来捕获多个变量之间的相关性,要是原始的数据库中存在着一些缺失值和一些极值,最后在合成的数据集当中也会有一些缺失值与极值。
而测试表明,合成的数据能够较好地取代真实数据。接下来我们来看一下如何使用吧,首先我们先下载该模块
pip install sdv
我们会用到如下的数据集,
import pandas as pd data = pd.read_csv('data.csv') data.head()
output
接下来的步骤和我们使用sklearn模块时的步骤是类似的,代码如下
from sdv.tabular import GaussianCopula
model = GaussianCopula()
model.fit(data)
无非就是实例化具体的模型,然后将算法模型拟合到数据集中的数据,我们可以尝试生成一些数据
sample = model.sample(200) sample.head()
output
最后我们想要来评估一下模型的性能,看一下新生成的数据和真实数据相比相似性几何,代码如下
from sdv.evaluation import evaluate print(evaluate(sample, data))
output
0.533
相似性的指标范围是“0-1”,“0”意味着是最差的结果,而“1”意味着是最理想的结果,而针对以上评估出来的结果意味着我们后续还需要进一步的参数调优。
随着相关研究的进一步深入,2019年在温哥华举行的第33届神经信息处理系统会议上,另外的研究员提出了新的神经网络Conditional Tabular Generative Adversarial Networks,简称CTGAN,简而言之就是通过生成对抗网络GAN来建立和完善合成的数据表。
对于生成对抗的神经网络GANs而言,其中第一个网络为生成器,而第二个网络为鉴别器,最后生成器产生出来的数据表并没有被鉴别器分辨出其中的差异。接下来我们来看一下其中的步骤。
import pandas as pd
## 这边用到了和前面不一样的数据集 data = pd.read_csv('train.csv') data.head()
output
针对离散型的特征变量,CTGAN模型也可以合成类似的数据,代码如下
discrete_columns = ['week', 'Center_id', 'Meal_id', 'Emailer_for_promotion', 'homepage_featured']
ctgan = CTGANSynthesizer(batch_size=50,epochs=5,verbose=False)
ctgan.fit(data,discrete_columns) ## 将训练好的模型保存下来 ctgan.save('ctgan-food-demand.pkl') ## 生成200条数据集 samples = ctgan.sample(200)
samples.head()
output
我们罗列出需要最后合成来依照的特征变量,上面的例子当中是罗列出了一系列的离散型特征变量,然后我们设定好batch_size、epochs以及verbose参数进行训练,最后我们还是通过相类似的方法来评估模型的性能
from sdv.evaluation import evaluate
evaluate(new_data, data)
本文主要是立足于在机器学习的过程中存在数据量不足的情况,介绍了Faker模块和SDV模块,以及CTGAN模型,通过机器学习和深度学习等手段来生成一些数据供数据科学家使用。因为这些模型也是近年来刚出来属于较为前沿的内容,小编在对其进行表述的时候存在理解有偏差的情况,这里也是建议读者多去上网进行查阅。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
当沃尔玛数据分析师首次发现 “啤酒与尿布” 的高频共现规律时,他们揭开了数据挖掘最迷人的面纱 —— 那些隐藏在消费行为背后 ...
2025-11-03这个问题精准切中了配对样本统计检验的核心差异点,理解二者区别是避免统计方法误用的关键。核心结论是:stats.ttest_rel(配对 ...
2025-11-03在 CDA(Certified Data Analyst)数据分析师的工作中,“高维数据的潜在规律挖掘” 是进阶需求 —— 例如用户行为包含 “浏览次 ...
2025-11-03在 MySQL 数据查询中,“按顺序计数” 是高频需求 —— 例如 “统计近 7 天每日订单量”“按用户 ID 顺序展示消费记录”“按产品 ...
2025-10-31在数据分析中,“累计百分比” 是衡量 “部分与整体关系” 的核心指标 —— 它通过 “逐步累加的占比”,直观呈现数据的分布特征 ...
2025-10-31在 CDA(Certified Data Analyst)数据分析师的工作中,“二分类预测” 是高频需求 —— 例如 “预测用户是否会流失”“判断客户 ...
2025-10-31在 MySQL 实际应用中,“频繁写入同一表” 是常见场景 —— 如实时日志存储(用户操作日志、系统运行日志)、高频交易记录(支付 ...
2025-10-30为帮助教育工作者、研究者科学分析 “班级规模” 与 “平均成绩” 的关联关系,我将从相关系数的核心定义与类型切入,详解 “数 ...
2025-10-30对 CDA(Certified Data Analyst)数据分析师而言,“相关系数” 不是简单的数字计算,而是 “从业务问题出发,量化变量间关联强 ...
2025-10-30在构建前向神经网络(Feedforward Neural Network,简称 FNN)时,“隐藏层数目设多少?每个隐藏层该放多少个神经元?” 是每个 ...
2025-10-29这个问题切中了 Excel 用户的常见困惑 —— 将 “数据可视化工具” 与 “数据挖掘算法” 的功能边界混淆。核心结论是:Excel 透 ...
2025-10-29在 CDA(Certified Data Analyst)数据分析师的工作中,“多组数据差异验证” 是高频需求 —— 例如 “3 家门店的销售额是否有显 ...
2025-10-29在数据分析中,“正态分布” 是许多统计方法(如 t 检验、方差分析、线性回归)的核心假设 —— 数据符合正态分布时,统计检验的 ...
2025-10-28箱线图(Box Plot)作为展示数据分布的核心统计图表,能直观呈现数据的中位数、四分位数、离散程度与异常值,是质量控制、实验分 ...
2025-10-28在 CDA(Certified Data Analyst)数据分析师的工作中,“分类变量关联分析” 是高频需求 —— 例如 “用户性别是否影响支付方式 ...
2025-10-28在数据可视化领域,单一图表往往难以承载多维度信息 —— 力导向图擅长展现节点间的关联结构与空间分布,却无法直观呈现 “流量 ...
2025-10-27这个问题问到了 Tableau 中两个核心行级函数的经典组合,理解它能帮你快速实现 “相对位置占比” 的分析需求。“index ()/size ( ...
2025-10-27对 CDA(Certified Data Analyst)数据分析师而言,“假设检验” 绝非 “套用统计公式的机械操作”,而是 “将模糊的业务猜想转 ...
2025-10-27在数字化运营中,“凭感觉做决策” 早已成为过去式 —— 运营指标作为业务增长的 “晴雨表” 与 “导航仪”,直接决定了运营动作 ...
2025-10-24在卷积神经网络(CNN)的训练中,“卷积层(Conv)后是否添加归一化(如 BN、LN)和激活函数(如 ReLU、GELU)” 是每个开发者都 ...
2025-10-24