首页 > 解决方案 > Python准备具有均匀分布的响应变量的训练数据集

问题描述

我正在做一个小型机器学习项目。

我使用的数据集有 56 个输入参数和一个分类响应变量(0/1)。我的问题是响应变量分布不均。现在我的问题是我想准备训练数据集,即响应均匀分布。如何才能做到这一点?

数据是这样的 1

-> 训练数据集在响应中应该有相同数量的 1 和 0。

谢谢你的帮助,你可以想象我真的是一个初学者......

标签: pythontraining-data

解决方案


我和问这个问题的人是同一个人。对此感到抱歉。首先,我从 csv 文件加载数据。(不在此处显示的代码中)将其存储为数据,接下来,我根据“响应”列中的值创建一个名为“response_class”的新列(如果它在下方)。 045,response_class =1,其他0。其次,我从数据中随机抽取10000行。(由于计算限制),在这里我想确保我从 response_class 获得相同数量的 1 和 0。最后,我拆分数据以使其为相关矩阵做好准备,并测试和训练数据

这是我的代码:

data = data[data.response != 0]

pd.DataFrame(data)
data['response_class'] = np.where(data['response'] <= 0.045, 1, 0)
#1=below .045  / 0=above 0.045

#reduce amount of data by picking random samples
data= data.sample(n=10000)

#split data
data.drop(['response'], axis=1, inplace=True)
y = data['response_class']
X = data.drop('response_class', axis=1)
X_names = X.columns

data.head()

推荐阅读