为数据分析和机器学习生成数据集的超级简单指南
能够为模型的测试生成自己的数据科学/机器学习数据集是很有用的,也可用于演示目的。当然,我们可以在Excel中手动创建一个随机数据集。
本文宗旨是让我们能够快速生成带有数据科学探索混合数据类型的随机数据科学/机器学习数据集。
我们只需要numpy和panda就可以实现这个目的(实际上numpy本身就足够了,但是panda使管理生成的机器学习数据变得更容易了)。
我们首先声明要生成的示例(行数)和特性(数据集的列)。Python代码如下:
import numpy as np import pandas as pd num_rows = 500 # Number of rows to generate # Dataset headers column_headers = ['No', 'Gender', 'Height', 'Weight', 'Shoe Size', 'Shopping Satisfaction Offline', 'Shopping Satisfaction Online', 'Average Spent Per Month']
这样我们生成一个机器学习数据集,模拟一组关于购物偏好和一些关键个人数据的调查回报。
让我们先生成分类数据。Numpy的函数random.choice非常适合这个。它允许我们根据选择列表生成样本,并在数据集中出现每个选项的预定概率 - 例如,如果有三种可能性 - Male,Female和LGBT - 我可以指定40%的样本是男性,40%女性和20%LGBT。Python代码如下:
no_answers = np.arange(1,num_rows+1) gender_listgender_ = ['Male', 'Female', 'LGBT'] gender = np.random.choice(gender_list, num_rows, p=[0.4, 0.4, 0.2]) satisfaction_list = ['High', 'Medium', 'Low'] satisfaction_offline = np.random.choice(satisfaction_list, num_rows, p=[0.4, 0.4, 0.2]) satisfaction_online = np.random.choice(satisfaction_list, num_rows, p=[0.3, 0.4, 0.3])
对于身高、体重、鞋码和平均每月花费,我们可以使用randint函数,但有一个范围。为了简单起见,我假设这些都是整数。Python代码如下:
height = np.random.randint(110,200,num_rows) weight = np.random.randint(30,100,num_rows) shoe_size = np.random.randint(4,12,num_rows) monthly_spending = np.random.uniform(100,10000,num_rows)
最后,我们可以将所有这些合并为Pandas DataFrame并标记列。我们将它们合并为列但更简单的是先合并为行然后在标记列之前转置矩阵。Python实现如下:
responses = pd.DataFrame([no_answers, gender, height, weight, shoe_size, satisfaction_offline, satisfaction_online, monthly_spending]) responsesresponse = responses.transpose() responses.columns = column_headers
查看数据
responsesresponse .head()
现在,我们把它保存为CSV,Python代码如下:
responses.to_csv('responses.csv')
相关推荐
flyfor0 2020-11-16
lizhengjava 2020-11-13
luyong0 2020-11-08
gyunwh 2020-11-02
EchoYY 2020-10-31
dingyahui 2020-10-30
jaybeat 2020-11-17
机器学习之家 2020-11-10
mori 2020-11-06
jaybeat 2020-11-02
changyuanchn 2020-11-01
Micusd 2020-11-19
人工智能 2020-11-19
81510295 2020-11-17
lgblove 2020-11-16
Pokemogo 2020-11-16
Pokemogo 2020-11-16
clong 2020-11-13
ohbxiaoxin 2020-11-13