在 Python 中创建模拟数据的分步指南

一个适合初学者的教程,教你如何生成自己的数据进行分析和测试照片由 Alexandru-Bogdan Ghita 在 Unsplash 上拍摄想象一下,你刚刚编写了一个机器学习模型,需要在特定场景中对其进行测试,或者你正在发布一篇关于自定义数据科学解决方案的学术论文,但可用的数据集有版权限制。另一方面,你可能正处于机器学习项目的调试和故障排除阶段,需要数据来识别和解决问题。所有这些情况,以及更多情况,都可以从使用模拟数据中受益。通常,现实世界的数据并不容易获得、昂贵或私密。因此,创建合成数据对数据科学从业者和专业人士来说是一项有用的技能。在本文中,我介绍了一些使用 Python 从头开始​​创建模拟数据、玩具数据集和“虚拟”值的方法和技术。一些解决方案使用来自 Python 库的方法,另一些则是使用内置 Python 函数的技术。下一节中显示的所有方法在研究任务、学术论文、模型训练或测试的某个阶段对我都很有用。我希望读者探索文章末尾的笔记本,并将其用作指南或作为未来项目的参考。目录1. 使用 NumPy2. 使用 Scikit-learn3. 使用 SciPy4. 使用 Faker5. 使用合成数据库 (SDV)结论和后续步骤1. 使用 NumPy最著名的处理线性代数的 Python 库

来源:走向数据科学
目录1. 使用 NumPy2. 使用 Scikit-learn3. 使用 SciPy4. 使用 Faker5. 使用合成数据库 (SDV)结论和后续步骤

目录1. 使用 NumPy2. 使用 Scikit-learn3. 使用 SciPy4. 使用 Faker5.使用合成数据库 (SDV) 结论和后续步骤

1. 使用 NumPy 2. 使用 Scikit-learn 3. 使用 SciPy 4. 使用 Faker 5. 使用合成数据库 (SDV) 结论和后续步骤

1. 使用 NumPy

用于处理线性代数和数值计算的最著名的 Python 库也有助于数据生成。

在此示例中,我将展示如何创建具有与目标值具有线性关系的噪声数据集。 它可用于测试线性回归模型。

# 导入模块from matplotlib import pyplot as pltimport numpy as npdef create_data(N, w): """ 创建一个噪声与目标值呈线性关系的数据集。 N:样本数 w:目标值 """ # 带有随机数据的特征矩阵 X = np.random.rand(N, 1) * 10 # 噪声呈正态分布的目标值 y = w[0] * X + w[1] + np.random.randn(N, 1) return X, y# 可视化数据X, y = create_data(200, [2, 1])plt.figure(figsize=(10, 6))plt.title('Simulated Linear Data')plt.xlabel('X')plt.ylabel('y')plt.scatter(X, y)plt.show()
# 导入模块from matplotlib import pyplot as pltimport numpy as npdef create_data(N, w): """ 创建一个带有噪声的数据集,该噪声与目标值呈线性关系。 N:样本数 w:目标值 """ # 带有随机数据的特征矩阵 X = np.random.rand(N, 1) * 10 # 带有噪声的目标值呈正态分布 y = w[0] * X + w[1] + np.random.randn(N, 1) return X, y# 可视化数据X, y = create_data(200, [2, 1])plt.figure(figsize=(10, 6))plt.title('模拟线性数据')plt.xlabel('X')plt.ylabel('y')plt.scatter(X, y)plt.show()
模拟线性数据(图片由作者提供)。
模拟线性数据(图片由作者提供)。

2. 使用 Scikit-learn

make_classification make_regression