方便又好用的不平衡数据处理库:imblearn

在学习机器学习的时候,我们遇到的数据集大多是类别平衡的,即数据集中各个类的样本数都

很接近。但是实际问题中我们遇到的大部分数据集都是不均衡的。常用的处理方法如下:

  • 对数据进行预处理,进行欠采样或者过采样等处理,使数据分布较为均衡。
  • 对算法进行改进,使其对少数类更加敏感。

python提供了就是一个处理不均衡数据的imblearn库;其基于机器学习常用sklearn开发而

成,使用方法和sklearn库十分相似,上手非常容易。imblearn库对不平衡数据的主要处理方法主

要分为如下四种:

  • 欠采样
  • 过采样
  • 联合采样
  • 集成采样

包含了各种常用的不平衡数据处理方法,例如:随机过采样,SMOTE及其变形方法,tom-

links欠采样,编辑最近邻欠采样方法等等。

使用方法也很简单,下述代码就是使用随机欠采样方法平衡数据集,其他方法也类似。

<code>from imblearn.under_sampling import RandomUnderSampler
rus = RandomUnderSampler(random_state=0)
X_resampled, y_resampled = rus.fit_resample(X, y)
print(sorted(Counter(y_resampled).items()))
# [(0, 64), (1, 64), (2, 64)]/<code>
方便又好用的不平衡数据处理库:imblearn

上图右一为原始数据集,右三为使用随机欠采样方法处理得到的数据集。

imblearn也提供了用户手册:3. Under-sampling。可以方便的查看其中内置的各种函数的

使用方法及其原理,同时每种算法的说明下面还提供了对应的论文地址。不过现在还没有汉化

的用户手册。

方便又好用的不平衡数据处理库:imblearn

最后安装imblearn库的方法也很简单

<code>pip3 install imbalanced-learn/<code>

成功之后就能在python中导入imblearn包。

imblearn的源代码地址如下,想深入研究的同学门可以clone下来自己深入研究:

https://github.com/scikit-learn-contrib/imbalanced-learn​github.com



分享到:


相關文章: