发布历史#
版本 0.12.4#
2024年10月4日
更新日志#
兼容性#
与NumPy 2.0+的兼容性 #1097 由 Guillaume Lemaitre.
版本 0.12.3#
2024年5月28日
更新日志#
兼容性#
与scikit-learn 1.5的兼容性 #1074 和 #1084 由 Guillaume Lemaitre.
版本 0.12.2#
2024年3月31日
更新日志#
错误修复#
修复我们在测试套件中检查特定Python版本的方式。 #1075 由 Guillaume Lemaitre。
版本 0.12.1#
2024年3月31日
更新日志#
错误修复#
修复了
InstanceHardnessThreshold
中的一个错误,其中estimator
不能是Pipeline
对象。 #1049 由 Gonenc Mogol 提交。
兼容性#
不要在测试中使用
distutils
,因为它已被弃用。 #1065 由 Michael R. Crusoe.修复测试中的scikit-learn导入以兼容版本1.4.1.post1。 #1073 由 Guillaume Lemaitre。
修复测试以兼容Python 3.13。 #1073 由 Guillaume Lemaitre。
版本 0.12.0#
2024年1月24日
更新日志#
错误修复#
修复了
SMOTENC
中的一个错误,其中独热编码的条目应该被sqrt(2)
而不是2
除,考虑到它们被插入到欧几里得距离计算中。 #1014 由 Guillaume Lemaitre 提交。当所有支持向量都被标记为噪声时,在
SVMSMOTE
中引发一个信息丰富的错误消息。 #1016 由 Guillaume Lemaitre 提交。修复了
SMOTENC
中的一个错误,其中连续特征的标准差的中位数仅在少数类上计算。现在,我们为每个被上采样的类计算这个统计量。 #1015 由 Guillaume Lemaitre 提交。修复了
SMOTENC
中的一个错误,使得在多类情况下也能处理连续特征的标准差中位数为空的情况。 #1015 由 Guillaume Lemaitre 提交。修复了
BorderlineSMOTE
版本2中的一个错误,其中样本应从整个数据集生成,而不仅仅是从少数类生成。 #1023 由 Guillaume Lemaitre 提交。修复了
NeighbourhoodCleaningRule
中的一个错误,其中kind_sel="all"
未按文献中所述工作。#1012由Guillaume Lemaitre提交。修复了
NeighbourhoodCleaningRule
中的一个错误,其中threshold_cleaning
比率被乘以总样本数而不是少数类样本数。#1012由Guillaume Lemaitre提交。修复了
RandomUnderSampler
和RandomOverSampler
中的一个错误,该错误导致包含仅 NaT的列未被正确处理。 #1059 由 Guillaume Lemaitre 提交。
兼容性#
BalancedRandomForestClassifier
现在支持缺失值和单调约束,如果安装了 scikit-learn >= 1.4。Pipeline
支持元数据路由,如果安装了 scikit-learn >= 1.4。与scikit-learn 1.4的兼容性。 #1058 由 Guillaume Lemaitre.
弃用#
弃用
estimator_
参数,推荐使用estimators_
参数,适用于类CondensedNearestNeighbour
和OneSidedSelection
。estimator_
将在 0.14 版本中移除。 #1011 由 Guillaume Lemaitre 提交。在
:pr:`1012
中弃用kind_sel
,由 Guillaume Lemaitre 完成。
增强功能#
版本 0.11.0#
2023年7月8日
更新日志#
错误修复#
修复了
classification_report_imbalanced
中的一个错误,当output_dict=True
时,参数target_names
未被考虑。 #989 由 AYY7 提交。SMOTENC
现在可以处理混合数据类型,例如bool
和pd.category
,通过将转换委托给 scikit-learn 编码器。 #1002 由 Guillaume Lemaitre 贡献。在
SMOTEN
中处理稀疏矩阵并发出警告,因为它需要转换为密集矩阵。 #1003 由 Guillaume Lemaitre 提交。当少数类被过度采样超过多数类样本数量时,移除引发的虚假警告。 #1007 由 Guillaume Lemaitre 提交。
兼容性#
为了兼容scikit-learn >= 1.3.0的维护版本。 #999 由 Guillaume Lemaitre.
弃用#
在
SMOTENC
中的拟合属性ohe_
已被弃用,并将在0.13版本中移除。请改用categorical_encoder_
。 #1000 由 Guillaume Lemaitre 提供。参数
sampling_strategy
、bootstrap
和replacement
的默认值将在BalancedRandomForestClassifier
中更改,以遵循 原始论文的实现。这些更改将在 0.13 版本中生效。 #1006 由 Guillaume Lemaitre 提交。
增强功能#
SMOTENC
现在接受一个参数categorical_encoder
,允许指定一个带有自定义参数的OneHotEncoder
。 #1000 由 Guillaume Lemaitre 提供。SMOTEN
现在接受一个参数categorical_encoder
,允许指定一个带有自定义参数的OrdinalEncoder
。一个新的拟合参数categorical_encoder_
被暴露出来,以访问拟合的编码器。 #1001 由 Guillaume Lemaitre 提供。RandomUnderSampler
和RandomOverSampler
(当shrinkage is not None
时)现在接受任何数据类型,并且不会尝试任何数据转换。 #1004 由 Guillaume Lemaitre 贡献。SMOTENC
现在支持在传递categorical_features
参数时传递类似数组的str
。 #1008 由 :user`Guillaume Lemaitre`。 SMOTENC
现在支持自动分类推断 当categorical_features
设置为"auto"
时。 #1009 由 :user`Guillaume Lemaitre`.
版本 0.10.1#
2022年12月28日
更新日志#
错误修复#
修复了在过采样器中字符串
minority
被拒绝作为无效采样策略的回归问题。 #964 由 Prakhyath Bhandary 提交。
版本 0.10.0#
2022年12月9日
更新日志#
错误修复#
确保
Substitution
在使用python -OO
时能够正常工作,该选项会将__doc__
替换为None
。 #953 由 Guillaume Lemaitre。
兼容性#
维护版本以兼容 scikit-learn >= 1.0.2。 #946, #947, #949 由 Guillaume Lemaitre.
添加对自动参数验证的支持,如 scikit-learn >= 1.2 中的功能。 #955 由 Guillaume Lemaitre 提供。
为所有采样器添加对
feature_names_in_
以及get_feature_names_out
的支持。 #959 由 Guillaume Lemaitre贡献。
弃用#
参数
n_jobs
已从类ADASYN
,BorderlineSMOTE
,SMOTE
,SMOTENC
,SMOTEN
, 和SVMSMOTE
中弃用。相反,传递一个设置了n_jobs
的最近邻估计器。 #887 由 Guillaume Lemaitre 提供。参数
base_estimator
已被弃用,并将在版本 0.12 中移除。它影响了以下类:BalancedBaggingClassifier
,EasyEnsembleClassifier
,RUSBoostClassifier
. #946 由 Guillaume Lemaitre 提交。
增强功能#
添加支持以仅通过鸭子类型接受兼容的
NearestNeighbors
对象。例如,它允许接受cuML实例。 #858 由 NV-jpt 和 Guillaume Lemaitre。
版本 0.9.1#
2022年5月16日
更新日志#
此版本提供了修复,使imbalanced-learn
能够与最新发布的scikit-learn
(1.1.0
)一起工作。
版本 0.9.0#
2022年1月11日
更新日志#
此版本主要提供了一些修复,使imbalanced-learn
能够与最新版本的scikit-learn
(1.0.2
)兼容。
版本 0.8.1#
2020年9月29日
更新日志#
维护#
使
imbalanced-learn
与scikit-learn
1.0兼容。 #864 由 Guillaume Lemaitre。
版本 0.8.0#
2021年2月18日
更新日志#
新功能#
添加函数
imblearn.metrics.macro_averaged_mean_absolute_error
返回 MAE的类别平均值。此指标用于序数分类。 #780 由 Aurélien Massiot 提供。添加类
imblearn.metrics.pairwise.ValueDifferenceMetric
来计算仅包含分类值的样本之间的成对距离。 #796 由 Guillaume Lemaitre 提供。添加类
imblearn.over_sampling.SMOTEN
以对仅包含分类特征的数据进行过采样。 #802 由 Guillaume Lemaitre 提供。增加了在
imblearn.ensemble.BalancedBaggingClassifier
中传递任何类型采样器的可能性,解锁了基于重采样装袋的方法的实现。 #808 由 Guillaume Lemaitre 提供。
增强功能#
在
imblearn.metrics.classification_report_imbalanced
中添加选项output_dict
以返回字典而不是字符串。 #770 由 Guillaume Lemaitre 提供。添加了一个选项以在
imblearn.over_sampling.RandomOverSampler
中生成平滑的bootstrap。它由参数shrinkage
控制。此方法也被称为随机过采样示例(ROSE)。 #754 由 Andrea Lorenzon 和 Guillaume Lemaitre 提供。
错误修复#
修复了
imblearn.under_sampling.ClusterCentroids
中的一个错误,其中voting="hard"
可能导致从任何类别中选择样本,而不是目标类别。 #769 由 Guillaume Lemaitre 提交。修复了在
imblearn.FunctionSampler
中的一个错误,即在调用fit
时,即使validate=False
,仍然执行了验证。 #790 由 Guillaume Lemaitre 提交。
维护#
移除需求文件,改为在
setup.py
文件中的extras_require
中添加包。 #816 由 Guillaume Lemaitre 提交。将网站模板更改为使用
pydata-sphinx-theme
。 #801 由 Guillaume Lemaitre。
弃用#
上下文管理器
imblearn.utils.testing.warns
在0.8版本中已被弃用,并将在1.0版本中移除。 #815 由 Guillaume Lemaitre 提交。
版本 0.7.0#
2020年6月9日
更新日志#
维护#
确保当
memory
被激活且joblib==0.11
时,imblearn.pipeline.Pipeline
正常工作。 #687 由 Christos Aridas 提供。重构通用测试以使用来自
scikit-learn
0.23的开发工具。 #710 由 Guillaume Lemaitre。移除由
scikit-learn
0.23发出的FutureWarning
。 #710 由 Guillaume Lemaitre。仅在
scikit-learn
中强制使用关键字参数。 #721 由 Guillaume Lemaitre 提交。
更改的模型#
由于更改,以下模型可能会给出一些不同的结果:
错误修复#
将默认值
min_samples_leaf
更改为与 scikit-learn 一致。 #711 由 zerolfx 提交。修复由于
imblearn.metrics.make_index_balanced_accuracy
中scikit-learn
0.23的更改导致的bug。该函数无法使用。 #710 由 Guillaume Lemaitre 提交。当在
imblearn.over_sampling.SMOTENC
中只提供数值或分类特征时,引发适当的错误消息。 #720 由 Guillaume Lemaitre 提交。修复了当标准差的中位数为空时的错误,在
imblearn.over_sampling.SMOTENC
中。 #675 由 bganglia。
增强功能#
在imbalanced-learn中实现的分类器,
imblearn.ensemble.BalancedBaggingClassifier
,imblearn.ensemble.BalancedRandomForestClassifier
,imblearn.ensemble.EasyEnsembleClassifier
, 和imblearn.ensemble.RUSBoostClassifier
, 接受与y
中相同的sampling_strategy
键,而无需预先编码y
。 #718 由 Guillaume Lemaitre。在导入
imblearn.keras
时延迟导入keras
模块 #719 由 Guillaume Lemaitre 提交。
弃用#
弃用参数
n_jobs
在imblearn.under_sampling.ClusterCentroids
中,因为它被sklearn.cluster.KMeans
使用,而后者已弃用它。 #710 由 Guillaume Lemaitre 提交。弃用通过位置传递关键字参数,类似于
scikit-learn
。 #721 由 Guillaume lemaitre。
版本 0.6.2#
2020年2月16日
这是一个错误修复版本,旨在解决一些关于处理数组输入和输出格式的问题。
更新日志#
允许将列向量作为目标传递。 #673 由 Christos Aridas。
为pandas、numpy和普通列表提供更好的输入/输出处理。 #681 由 Christos Aridas。
版本 0.6.1#
2019年12月7日
这是一个主要解决0.6.0版本中一些打包问题的错误修复版本。它还包括一些文档的改进和一些错误修复。
更新日志#
错误修复#
修复了
imblearn.ensemble.BalancedRandomForestClassifier
中的一个错误,该错误导致由于max_samples
而在拟合过程中使用了错误的样本数量,从而导致OOB分数的计算错误。 #656 由 Guillaume Lemaitre 提交。
版本 0.6.0#
2019年12月5日
更新日志#
更改的模型#
由于scikit-learn的变化,以下模型可能会给出一些不同的采样结果:
由于与随机状态内部使用相关的更改,以下采样器将给出不同的结果:
错误修复#
imblearn.under_sampling.InstanceHardnessThreshold
现在考虑了random_state
并将给出确定性的结果。此外,cross_val_predict
被用来利用并行性。#599 由 Shihab Shahriar Khan 提供。修复了
imblearn.ensemble.BalancedRandomForestClassifier
中的一个错误,该错误导致OOB分数的计算错误。 #656 由 Guillaume Lemaitre 提交。
维护#
在scikit-learn中的一些模块被私有化后,更新了导入。 以下导入已被更改:
sklearn.ensemble._base._set_random_states
,sklearn.ensemble._forest._parallel_build_trees
,sklearn.metrics._classification._check_targets
,sklearn.metrics._classification._prf_divide
,sklearn.utils.Bunch
,sklearn.utils._safe_indexing
,sklearn.utils._testing.assert_allclose
,sklearn.utils._testing.assert_array_equal
,sklearn.utils._testing.SkipTest
. #617 by Guillaume Lemaitre.同步
imblearn.pipeline
与sklearn.pipeline
。 #620 由 Guillaume Lemaitre。同步
imblearn.ensemble.BalancedRandomForestClassifier
并添加 参数max_samples
和ccp_alpha
。 #621 由 Guillaume Lemaitre。
增强功能#
imblearn.under_sampling.RandomUnderSampling
,imblearn.over_sampling.RandomOverSampling
,imblearn.datasets.make_imbalance
接受 Pandas DataFrame 作为输入, 并将输出 Pandas DataFrame。同样,它也接受 Pandas Series 作为输入, 并将输出 Pandas Series。 #636 由 Guillaume Lemaitre 提供。imblearn.FunctionSampler
接受一个参数validate
,允许 检查或不检查输入X
和y
。 #637 由 Guillaume Lemaitre 提供。imblearn.under_sampling.RandomUnderSampler
,imblearn.over_sampling.RandomOverSampler
可以在X
中存在非有限值时进行重采样。 #643 由 Guillaume Lemaitre 提供。如果输入的是Pandas DataFrame,所有采样器都会输出一个Pandas DataFrame。 #644 由 Guillaume Lemaitre.
在
imblearn.over_sampling.ADASYN
,imblearn.over_sampling.SMOTE
,imblearn.over_sampling.BorderlineSMOTE
,imblearn.over_sampling.SVMSMOTE
,imblearn.over_sampling.KMeansSMOTE
,imblearn.over_sampling.SMOTENC
中的样本生成现在已向量化,当X
为稀疏时,提供了额外的加速。 #596 和 #649 由 Matt Eding 提供。
弃用#
以下类别在2个弃用周期后已被移除:
ensemble.BalanceCascade
和ensemble.EasyEnsemble
。 #617 由 Guillaume Lemaitre。以下函数在2个弃用周期后已被移除:
utils.check_ratio
. #617 由 Guillaume Lemaitre.参数
ratio
和return_indices
已从所有采样器中移除。 #617 由 Guillaume Lemaitre 提交。参数
m_neighbors
,out_step
,kind
,svm_estimator
已从imblearn.over_sampling.SMOTE
中移除。 #617 由 Guillaume Lemaitre 提交。
版本 0.5.0#
2019年6月28日
更新日志#
更改的模型#
即使相同的数据 X
和 y
相同,以下模型或函数可能会给出不同的结果。
imblearn.ensemble.RUSBoostClassifier
默认的估计器从具有完整深度的sklearn.tree.DecisionTreeClassifier
更改为决策树桩(即,树的最大深度为max_depth=1
)。
文档#
在使用
float
进行过采样和欠采样的采样策略时,修正比例的定义。 #525 由 Ariel Rossanigo.在API文档中添加
imblearn.over_sampling.BorderlineSMOTE
和imblearn.over_sampling.SVMSMOTE
。 #530由Guillaume Lemaitre贡献。
增强功能#
为SMOTEENN和SMOTETomek添加并行化。 #547 由 Michael Hsieh.
添加了
imblearn.utils._show_versions
。更新了贡献指南和问题模板,展示了如何从命令行打印系统和依赖信息。#557 由 Alexander L. Hayes。添加
imblearn.over_sampling.KMeansSMOTE
,这是一个在应用SMOTE之前对聚类点进行过采样的工具。 #435 由 Stephan Heijl 提供。
维护#
使得可以
import imblearn
并访问子模块。 #500 由 Guillaume Lemaitre.移除对Python 2的支持,移除来自scikit-learn 0.21的弃用警告。 #576 由 Guillaume Lemaitre.
错误#
修复了在
keras.layers.BatchNormalization
的错误使用,在porto_seguro_keras_under_sampling.py
示例中。批归一化 被移到了激活函数之前,并且从密集层中移除了偏置。 #531 由 Guillaume Lemaitre。修复了在将矩阵堆叠时转换为COO格式稀疏矩阵时的错误,该错误仅存在于旧版本的scipy中。
imblearn.over_sampling.SMOTENC
。此错误仅存在于旧版本的scipy中。 #539 由 Guillaume Lemaitre 提交。修复了
imblearn.pipeline.Pipeline
中的一个错误,其中None可能是最终的估计器。 #554 由 Oliver Rausch 提交。修复了
imblearn.over_sampling.SVMSMOTE
和imblearn.over_sampling.BorderlineSMOTE
中的错误,其中默认参数n_neighbors
未正确设置。 #578 由 Guillaume Lemaitre 提交。通过更改
imblearn.ensemble.RUSBoostClassifier
中的默认深度来修复错误,以获取如原始论文中的决策树桩作为弱学习器。 #545 由 Christos Aridas 提交。允许直接从
tensorflow
导入keras
在imblearn.keras
中。 #531 由 Guillaume Lemaitre贡献。
版本 0.4.2#
2018年10月21日
更新日志#
错误修复#
修复了
imblearn.over_sampling.SMOTENC
中的一个错误,该错误使用了标准差的中位数而不是标准差中位数的一半。 由Guillaume Lemaitre在#491中修复。当传递不支持的目标时引发错误,即回归目标或多标签目标。Imbalanced-learn 不支持这种情况。 由 Guillaume Lemaitre 在 #490 中提出。
修复了
imblearn.over_sampling.SMOTENC
中的一个错误,该错误在inverse_transform
期间将稀疏矩阵密集化。 由Guillaume Lemaitre在#495中修复。修复了
imblearn.over_sampling.SMOTE_NC
中的一个错误,其中平局打破错误地进行了采样。 由Guillaume Lemaitre在#497中修复。
版本 0.4#
2018年10月12日
警告
版本0.4是imbalanced-learn支持Python 2.7和Python 3.4的最后一个版本。Imbalanced-learn 0.5将需要Python 3.5或更高版本。
亮点#
此版本带来了一系列新功能以及一些API更改,以加强imbalanced-learn的基础。
作为新功能,新增了两个模块 imblearn.keras
和
imblearn.tensorflow
,在这些模块中可以使用不平衡学习采样器来生成平衡的小批量数据。
模块 imblearn.ensemble
已经与新分类器整合:
imblearn.ensemble.BalancedRandomForestClassifier
,
imblearn.ensemble.EasyEnsembleClassifier
,
imblearn.ensemble.RUSBoostClassifier
.
在
imblearn.over_sampling.RandomOverSampler
和
imblearn.under_sampling.RandomUnderSampler
中添加了对字符串的支持。此外,一个新的类
imblearn.over_sampling.SMOTENC
允许生成包含连续和分类特征的数据集的样本。
imblearn.over_sampling.SMOTE
已经被简化并分解为两个额外的类:
imblearn.over_sampling.SVMSMOTE
和
imblearn.over_sampling.BorderlineSMOTE
。
关于API也有一些变化:
引入了参数sampling_strategy
来替换ratio
参数。此外,return_indices
参数已被弃用,所有采样器在可能的情况下都会暴露一个sample_indices_
。
更新日志#
API#
将参数
ratio
替换为sampling_strategy
。 #411 由 Guillaume Lemaitre 提交。启用使用
float
进行二分类的sampling_strategy
。#411 由 Guillaume Lemaitre。启用使用
list
作为清理方法,以指定采样的类。#411 由 Guillaume Lemaitre。将
fit_sample
替换为fit_resample
。为了向后兼容,仍然可以使用别名。此外,sample
已被移除,以避免在不同数据集上进行重采样。 #462 由 Guillaume Lemaitre 提供。
新功能#
添加一个
keras
和tensorflow
模块来创建平衡的小批量生成器。 #409 由 Guillaume Lemaitre。添加
imblearn.ensemble.EasyEnsembleClassifier
,它创建了一个在平衡的引导样本上训练的AdaBoost分类器的集合。 #455 由 Guillaume Lemaitre 提供。添加
imblearn.ensemble.BalancedRandomForestClassifier
,它平衡了提供给森林中每棵树的每个引导样本。 #459 由 Guillaume Lemaitre 提供。添加
imblearn.ensemble.RUSBoostClassifier
,它在 AdaBoost 的每次提升迭代之前应用随机欠采样阶段。 #469 由 Guillaume Lemaitre 提供。添加
imblern.over_sampling.SMOTENC
,它在具有异构数据类型(连续和分类特征)的数据集上生成合成样本。 #412 由 Denis Dudnik 和 Guillaume Lemaitre。
增强功能#
添加一个文档节点,以从平衡的袋装分类器创建平衡的随机森林。#372 由 Guillaume Lemaitre 提供。
记录用于评估不平衡数据集上模型的指标。#367 由Guillaume Lemaitre。
添加对一对一编码目标的支持以支持keras。#409 由 Guillaume Lemaitre。
为使用
BorderlineSMOTE
和SVMSMOTE
的边界线和SVM SMOTE添加特定类。 #440由Guillaume Lemaitre贡献。允许
imblearn.over_sampling.RandomOverSampler
可以使用属性return_indices
返回索引。 #439 由 Hugo Gascon 和 Guillaume Lemaitre 提供。允许
imblearn.under_sampling.RandomUnderSampler
和imblearn.over_sampling.RandomOverSampler
对包含字符串的对象数组进行采样。 #451 由 Guillaume Lemaitre 提供。
错误修复#
修复了
metrics.classification_report_imbalanced
中的错误,其中y_pred
和y_true
被反转了。#394 由 @Ole Silvig. 修复ADASYN中的错误,仅在生成新样本时考虑当前类别的样本。#354 由 Guillaume Lemaitre。
修复了允许
sampling_strategy
字典排序行为的错误,从而在使用相同的随机状态时获得确定性结果。 #447 由 Guillaume Lemaitre 提交。强制克隆作为属性传递给采样器的scikit-learn估计器。 #446 由 Guillaume Lemaitre。
修复了在生成样本时未保留X和y的dtype的错误。 #450 由 Guillaume Lemaitre。
添加将
Memory
对象传递给make_pipeline
的选项,如pipeline.Pipeline
类中所示。 #458 由 Christos Aridas贡献。
维护#
在0.2版本中移除已弃用的参数 - #331 由 Guillaume Lemaitre.
将一些模块设为私有。 #452 由 Guillaume Lemaitre.
升级要求至scikit-learn 0.20。 #379 由 Guillaume Lemaitre。
在测试中捕获弃用警告。 #441 由 Guillaume Lemaitre.
重构并实施
pytest
风格的测试。 #470 由 Guillaume Lemaitre。
文档#
移除一些不必要的文档字符串。 #454 由 Guillaume Lemaitre.
修复了当
sampling_strategy
参数用作浮点数时的文档。 #480 由 Guillaume Lemaitre.
弃用#
弃用
ratio
,改用sampling_strategy
。#411 由 Guillaume Lemaitre 提出。弃用
dict
用于清理方法。应使用list
。#411由Guillaume Lemaitre。弃用
random_state
在imblearn.under_sampling.NearMiss
,imblearn.under_sampling.EditedNearestNeighbors
,imblearn.under_sampling.RepeatedEditedNearestNeighbors
,imblearn.under_sampling.AllKNN
,imblearn.under_sampling.NeighbourhoodCleaningRule
,imblearn.under_sampling.InstanceHardnessThreshold
,imblearn.under_sampling.CondensedNearestNeighbours
.弃用
kind
,out_step
,svm_estimator
,m_neighbors
在imblearn.over_sampling.SMOTE
中。用户应使用imblearn.over_sampling.SVMSMOTE
和imblearn.over_sampling.BorderlineSMOTE
。 #440 由 Guillaume Lemaitre。弃用
imblearn.ensemble.EasyEnsemble
,转而使用元估计器imblearn.ensemble.EasyEnsembleClassifier
,它遵循文献中描述的精确算法。 #455 由 Guillaume Lemaitre 提出。弃用
imblearn.ensemble.BalanceCascade
。 #472 由 Guillaume Lemaitre。弃用所有采样器中的
return_indices
。相反,当采样器选择原始样本的子集时,会创建一个属性sample_indices_
。 #474 由 @Guillaume Lemaitre。
版本 0.3#
2018年2月22日
更新日志#
Pytest 被用来替代 nosetests。#321 由 Joan Massich 提供。
添加了用户指南并扩展了一些示例。#295 由 Guillaume Lemaitre。
修复了
utils.check_ratio
中的一个错误,当所需样本数量为负数时会引发错误。#312 由 Guillaume Lemaitre。修复了
under_sampling.NearMiss
版本3中的一个错误。返回的索引是错误的。#312由Guillaume Lemaitre提交。修复了
ensemble.BalanceCascade
和combine.SMOTEENN
以及SMOTETomek
的bug。#295由Guillaume Lemaitre修复。修复了
check_ratio
的bug,使其在ratio
为可调用对象时能够传递参数。#307 由 Guillaume Lemaitre。
在
pipeline.Pipeline
中使用None
对象关闭步骤。由Christos Aridas提供。添加一个获取函数
datasets.fetch_datasets
以便获取一些用于基准测试的不平衡数据集。#249 由 Guillaume Lemaitre 提供。
所有采样器默认接受CSR类型的稀疏矩阵。#316 由 Guillaume Lemaitre 提供。
datasets.make_imbalance
像其他采样器一样采用比例。它支持多类别。#312 由 Guillaume Lemaitre 提供。所有的单元测试都已经被分解,并且从scikit-learn中派生出了一个
utils.check_estimators
。由Guillaume Lemaitre完成。用于自动构建conda包并上传的脚本。#242 由 Guillaume Lemaitre
移除seaborn依赖并改进示例。#264 由 Guillaume Lemaitre贡献。
将所有类调整为多类重采样。#290 由 Guillaume Lemaitre
__init__
已从base.SamplerMixin
中移除,以创建一个真正的混合类。#242 由 Guillaume Lemaitre 提供。创建一个模块
exceptions
来处理一致的错误抛出。#242 由 Guillaume Lemaitre 完成。创建了一个模块
utils.validation
用于检查重复模式。#242 由 Guillaume Lemaitre 完成。将
prototype_selection
和prototype_generation
子模块中的欠采样方法移动,以更清晰地区分。#277由Guillaume Lemaitre。更改
ratio
,使其能够适应多类问题。#290 由 Guillaume Lemaitre。
弃用在
datasets.make_imbalance
中使用min_c_
的做法。#312 由 Guillaume Lemaitre 提出弃用在
datasets.make_imbalance
中使用float作为ratio参数。#290由Guillaume Lemaitre提出。弃用浮点数作为比例,推荐使用字典、字符串或可调用对象。#290 由 Guillaume Lemaitre 提出。
版本 0.2#
2017年1月1日
更新日志#
修复了
under_sampling.NearMiss
中的一个错误,该错误在方法3的下采样过程中没有选择正确的样本。由Guillaume Lemaitre修复。修复了
ensemble.EasyEnsemble
中的一个错误,更正了random_state
的生成。由Guillaume Lemaitre和Christos Aridas完成。修复了
under_sampling.RepeatedEditedNearestNeighbours
中的一个错误,添加了额外的停止标准,以避免少数类变成多数类或某个类消失。由Guillaume Lemaitre贡献。修复了
under_sampling.AllKNN
中的一个错误,添加了停止标准以避免少数类变成多数类或某个类消失。由Guillaume Lemaitre完成。修复了
under_sampling.CondensedNeareastNeigbour
中的一个错误,更正了返回的索引列表。由Guillaume Lemaitre完成。修复了
ensemble.BalanceCascade
中的一个错误,解决了如果需要获取单个数组的问题。由Guillaume Lemaitre贡献。修复了
pipeline.Pipeline
中的一个错误,解决了将Pipeline
嵌入到其他Pipeline
中的问题。#231由Christos Aridas贡献。修复了
pipeline.Pipeline
中的一个错误,解决了将采样器放入同一个Pipeline
中的问题。#188 由 Christos Aridas 提交。修复了
under_sampling.CondensedNeareastNeigbour
中的一个错误,当只选择一个样本时,修正了sel_x
的形状。由Aliaksei Halachkin完成。修复了
under_sampling.NeighbourhoodCleaningRule
中的一个错误,选择邻居而不是少数类被错误分类的样本。#230 由 Aleksandr Loskutov贡献。修复了
over_sampling.ADASYN
中的一个错误,修正了新样本的创建方式,使得新样本位于少数样本和最近邻之间。#235 由 Rafael Wampfler 提交。
添加了AllKNN欠采样技术。由Dayvid Oliveira贡献。
添加了一个模块
metrics
,实现了用于平衡问题的一些特定评分函数。#204 由 Guillaume Lemaitre 和 Christos Aridas 贡献。
增加了对bumpversion的支持。由Guillaume Lemaitre提供。
验证二元采样器中目标的类型。目前会发出警告。由Guillaume Lemaitre和Christos Aridas提供。
由于
sklearn
的弃用周期,从cross_validation
模块更改为model_selection
模块。由Dayvid Oliveira和Christos Aridas完成。
size_ngh
在combine.SMOTEENN
中已被弃用。请使用n_neighbors
代替。由 Guillaume Lemaitre, Christos Aridas, 和 Dayvid Oliveira 提供。size_ngh
已在under_sampling.EditedNearestNeighbors
中弃用。请改用n_neighbors
。由 Guillaume Lemaitre, Christos Aridas, 和 Dayvid Oliveira 提供。size_ngh
已在under_sampling.CondensedNeareastNeigbour
中弃用。请使用n_neighbors
代替。由 Guillaume Lemaitre, Christos Aridas, 和 Dayvid Oliveira 提供。size_ngh
已在under_sampling.OneSidedSelection
中弃用。请改用n_neighbors
。由 Guillaume Lemaitre, Christos Aridas, 和 Dayvid Oliveira 提供。size_ngh
已在under_sampling.NeighbourhoodCleaningRule
中弃用。请改用n_neighbors
。 由 Guillaume Lemaitre、 Christos Aridas 和 Dayvid Oliveira 提供。size_ngh
已在under_sampling.RepeatedEditedNearestNeighbours
中弃用。请使用n_neighbors
代替。由 Guillaume Lemaitre, Christos Aridas, 和 Dayvid Oliveira 提供。size_ngh
在under_sampling.AllKNN
中已被弃用。请使用n_neighbors
代替。由 Guillaume Lemaitre, Christos Aridas, 和 Dayvid Oliveira 提供。已经创建了两个基类
BaseBinaryclassSampler
和BaseMulticlassSampler
来处理目标类型 并在出现异常时发出警告。 由 Guillaume Lemaitre 和 Christos Aridas 创建。将
random_state
移动到SamplerMixin
初始化时分配。由Guillaume Lemaitre完成。在
combine.SMOTEENN
和combine.SMOTETomek
中提供估计器而不是参数。因此,参数列表已被弃用。由Guillaume Lemaitre和 Christos Aridas提供。k
在over_sampling.ADASYN
中已被弃用。请改用n_neighbors
。 #183 由 Guillaume Lemaitre 提供。k
和m
在over_sampling.SMOTE
中已被弃用。请使用k_neighbors
和m_neighbors
代替。 #182 由 Guillaume Lemaitre 提供。n_neighbors
接受基于KNeighborsMixin
的对象,用于under_sampling.EditedNearestNeighbors
,under_sampling.CondensedNeareastNeigbour
,under_sampling.NeighbourhoodCleaningRule
,under_sampling.RepeatedEditedNearestNeighbours
, 和under_sampling.AllKNN
。 #109 由 Guillaume Lemaitre。
替换一些剩余的
UnbalancedDataset
出现。 由 Francois Magimel 提供。在文档中添加了doctest。由Guillaume Lemaitre贡献。
版本 0.1#
2016年12月26日
更新日志#
稳定API的首次发布。由 :user;`Fernando Nogueira
`, Guillaume Lemaitre, Christos Aridas, 和 Dayvid Oliveira.
- Under-sampling
随机多数欠采样与替换
提取多数-少数Tomek链接
使用聚类中心进行欠采样
NearMiss-(1 & 2 & 3)
浓缩最近邻
单边选择
邻域清理规则
编辑最近邻
实例硬度阈值
重复编辑最近邻
- Over-sampling
随机少数类过采样替换
SMOTE - 合成少数类过采样技术
bSMOTE(1 & 2) - 类型1和2的边界SMOTE
SVM SMOTE - 支持向量SMOTE
ADASYN - 用于不平衡学习的自适应合成采样方法
- Over-sampling followed by under-sampling
SMOTE + Tomek 链接
SMOTE + ENN
- Ensemble sampling
EasyEnsemble
平衡级联