我是Python的新手,也是数据科学的新手。
我有一个大型数据集,我一直在使用有监督的机器学习(带有scikit-learn的CART)进行分类。在大多数情况下,我都使用pandas数据帧对数据进行操作。数据如下:
| F00 F01 F02 F03 ... C0 |
| ... .. .. ... ... .....|
| FN0 FN1 FN2 FN3... CN |
其中Fij是第i行的第j个特征,而Ck是该行/实例的真实类。
问题是6个班级之一的培训样本所占比例更大。我已经查找了上采样,但这似乎是指(毫无疑问)随机采样数据的情况,就像处理超大型数据集一样。
我想要的是高档而不是上采样-也就是说,用少数类的替换随机实例进行复制,然后将它们添加到数据集中,直到所有类的大小匹配为止。
到目前为止,我还没有用熊猫做这种事,我想知道您是否能够提供帮助?
答案 0 :(得分:0)
答案 1 :(得分:0)
原始询问者在这里:
对于有兴趣的人,我使用imblearn软件包进行了以下操作:
from imblearn.over_sampling import RandomOverSampler, SMOTE, ADASY
def organize_data(data, upsample=False, upmethod = None): # entire organizing, cleaning data function
...
if upsample:
upsampler = upmethod()
features, true_class = upsampler.fit_sample(features, true_class)
只需使用RandomOverSampler作为天真的方法来扩展我的少数族裔类别(适合我的数据)。