是否有比random.sample()更有效的方法对数据进行过采样?
我遇到了一个很大的不平衡分类问题,希望通过对次要类进行过采样来解决这个问题。(N(1类)=8,5mio,N(N类)=3000) 为此,我希望通过以下方式获得n个类中每个类的100000个样本:是否有比random.sample()更有效的方法对数据进行过采样?,random,classification,oversampling,imbalanced-data,Random,Classification,Oversampling,Imbalanced Data,我遇到了一个很大的不平衡分类问题,希望通过对次要类进行过采样来解决这个问题。(N(1类)=8,5mio,N(N类)=3000) 为此,我希望通过以下方式获得n个类中每个类的100000个样本: data_oversampled = [] for data_class_filtered in data: data_oversampled.append(data_class_filtered.sample(n=20000, replace=True)) 其中,data是特定于类的数据帧和l
data_oversampled = []
for data_class_filtered in data:
data_oversampled.append(data_class_filtered.sample(n=20000, replace=True))
其中,data
是特定于类的数据帧和len(data)=10
,data.shape=(9448788,97)
这正如预期的那样有效,但不幸的是,这需要永远的时间。有没有更有效的方法来做同样的事情?你说的“永远”是什么意思?什么是
len(数据)
数据帧是什么形状?从统计角度来看:复制相同的值~33次似乎会很快使估计值产生偏差。也许你可以使用一个模型来更直接地处理这个问题?我添加了一些关于数据len(data)=10
,data.shape=(9448788,97)
的信息。你知道什么是过采样的可测量维度的经验法则吗?至少需要几个小时。这是大量数据,你确定你的计算机没有交换吗?9.5M*97float64
s需要~7GB,其他数据类型可能会更多!交换会使事情变得慢一百万倍,从数据帧中随机采样会导致你没有提供足够的细节让我评论统计数据。可能会专门发布另一个问题,可能是