如何用Python创建分类模拟数据

如何用Python创建分类模拟数据

在本教程中,我们将学习如何在Python中从分类中创建模拟数据。

介绍

模拟数据可以被定义为不代表真实现象的任何数据,但是利用参数和限制生成的合成数据。

何时以及为什么我们需要模拟数据?

有时,在机器学习或深度学习中为某种算法制作原型时,我们通常会面临关键真实世界数据的匮乏,这些数据对我们来说非常有用。有时,对于给定的任务,不存在此类数据。在这种情况下,我们可能需要产生合成数据。这些数据也可以来自实验室模拟。

模拟数据的优势

  • 大多数情况下代表数据可能以真实形式存在

  • 包含噪声变化较小,因此可视为理想数据集

  • 用于快速原型设计和POC

使用Python生成分类模拟数据

在此演示中,我们将使用科学计算库Sci-kit Learn来生成模拟数据。

示例

from faker import Faker

# Create a Faker object
faker = Faker()

# Generate a fake name
name = faker.name()
print(name)

# Generate a fake address
address = faker.address()
print(address)

# Generate a fake phone number
phone_number = faker.phone_number()
print(phone_number)
Bash

输出

Reid Johnson
3510 Laura Plaza Suite 573
Adamborough, NJ 79016
+1-987-654-3210
Bash

The Faker library can be used to generate fake data which can be useful in testing or creating examples.

!pip install Faker

from random import randint
import pandas as pd
from faker import Faker
from faker.providers import DynamicProvider

medical_professions_provider = DynamicProvider(
   provider_name="medical_profession",
   elements=["dr.", "doctor", "nurse", "surgeon", "clerk"],
)
fake = Faker()
fake.add_provider(medical_professions_provider)

def input_data(x):
   # pandas dataframe
   data = pd.DataFrame()
   for i in range(0, x):
      data.loc[i,'id']= randint(1, 100)
      data.loc[i,'name']= fake.name()
      data.loc[i,'address']= fake.address()
      data.loc[i,'latitude']= str(fake.latitude())
      data.loc[i,'longitude']= str(fake.longitude())
      data.loc[i,'target'] = str(fake.medical_profession())
   return data
print(input_data(10))
Bash

输出

id  name    address \
    7.0 Monique Rodriguez   481 Rebecca Landing Suite 727\nDominiquefurt, ...
    4.0 Elizabeth Johnson   62492 Zimmerman Crest Apt. 047\nPort Jerome, W...
    18.0    Max Rangel  4379 Obrien Curve\nDavistown, IA 02341
    31.0    Tammie Kent 4866 Angela Turnpike Apt. 658\nNorth Sheilabor...
    42.0    James Johnston  26827 Jeremiah Alley\nFreystad, SC 86902
    21.0    Shawn Robles    137 Jessica Ridges Apt. 436\nWilliamburgh, AZ ...
    13.0    Stephen Hodges  Unit 9799 Box 0625\nDPO AA 94415
    91.0    Eric Lewis PhD  4711 Nicholas Loaf\nWest Lisa, UT 28944
    68.0    Matthew Munoz   37836 White Crest\nGonzalezport, NC 75320
    34.0    Lawrence Anderson   76712 GarzaMills Apt. 751\nPort Penny, CT 43042

latitude        longitude   target 0    60.574796   109.367770      clerk
1   84.7225155  -167.216393 dr.
2   82.598649   62.961322   surgeon
3   26.9617205  89.333171   doctor
4   -37.1740195 -140.766121 dr.
5   -40.8904645 28.820918   clerk
6   88.809220   76.442779   dr.
7   35.728143   178.729120  doctor
8   -16.5669945 126.686740  dr.
9   -49.271970  160.737754  clerk
Bash

结论

用于模拟的数据在日常的机器学习应用中非常有用,可用于原型设计或小型 Proof of Concept。在 Python 中有一些方便的工具,可以在几行代码内轻松创建模拟数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册