通过金属学习自动检测异常值(为新数据集选择/推荐OD模型)
metaod的Python项目详细描述
Development Status:截至2020年9月26日,MetaOD正在积极开发中,并处于其alpha阶段。请跟随star和fork获取最新更新! 有关纸张的再现性,请参阅纸张再现性文件夹中的说明。在
给定一个新数据集的无监督异常值检测(OD)任务,如何自动选择一个好的异常值检测方法及其超参数(统称为模型)? 到目前为止,OD的模型选择一直是一门“黑色艺术”;因为任何模型评估都是不可行的,因为缺乏(i)带有标签的数据,以及(ii)通用的目标函数。 在这项工作中,我们开发了第一个原则性的数据驱动的OD模型选择方法,称为MetaOD,基于元学习。 简言之,MetaOD在广泛的OD基准数据集上进行培训,以利用先前的经验,以便it可以为看不见的数据集选择潜在的最佳性能模型。在
使用MetaOD很容易。 您可以传入一个数据集,MetaOD将为它返回最执行异常值检测模型,这既提高了检测质量,又降低了运行多个模型的成本。在
API演示,用于选择新数据集上的异常值检测模型(3行以内):
frommetaod.models.utilityimportprepare_trained_modelfrommetaod.models.predict_metaodimportselect_model# load pretrained MetaOD modelprepare_trained_model()# use MetaOD to recommend models. It returns the top n model for new data X_trainselected_models=select_model(X_train,n_selection=100)
Preprint paper| Reproducibility instruction
引用MetaOD:
如果您在科学出版物中使用MetaOD,我们将不胜感激 引用以下论文:
^{pr2}$或者:
Zhao, Y., Rossi, R., and Akoglu, L., 2020. Automating Outlier Detection via Meta-Learning. arXiv preprint arXiv:2009.10606.
目录:
- Installation
- API Cheatsheet & Reference
- Quick Start for Model Selection
- Quick Start for Meta Feature Generation
系统介绍
如下图所示,MetaOD包含离线元学习者培训和在线模式选择。 对于一个新的数据集选择离群点检测模型,只需要在线模型选择。具体来说,要完成。在
安装
建议使用pip进行安装。请确保 安装了最新版本,因为MetaOD经常更新:
pip install metaod # normal install pip install --upgrade metaod # or update if needed pip install --pre metaod # or include pre-release version for new features
或者,您可以克隆并运行设置.py文件:
git clone https://github.com/yzhao062/metaod.git
cd metaod
pip install .
必需的依赖项:
- Python 3.5、3.6或3.7
- joblib>;=0.14.1
- 联席会议
- 数量=1.18.1
- scipy>;=0.20
- scikit_learn==0.22.1
- 熊猫>;=0.20
- pyod>;=0.8
{str}我们需要学习{/str}的模型,因为我们需要安装 到0.20。我们建议您在完全新鲜的env中使用MetaOD,以获得正确的依赖性。在
选型快速入门
“examples/model_selection_example.py” 提供一个使用MetaOD在完全无监督的新数据集上选择顶级模型的示例。在
关键步骤如下:
加载一些合成数据集
# Generate sample dataX_train,y_train,X_test,y_test= \ generate_data(n_train=1000,n_test=100,n_features=3,contamination=0.5,random_state=42)
在使用MetaOD选择前100个型号
frommetaod.models.utilityimportprepare_trained_modelfrommetaod.models.predict_metaodimportselect_model# load pretrained modelsprepare_trained_model()# recommended models. this returns the top model for X_trainselected_models=select_model(X_train,n_selection=100)
在显示所选模型的性能评估。在
1stmodelAveragePrecision0.972983316133471110thmodelAveragePrecision0.963178702925674250thmodelAveragePrecision0.9228434081007967100thmodelAveragePrecision0.9228434081007967
在
元特征生成快速入门
获取任意数据集的嵌入是MetaOD的第一步 由我们专门的元特征生成功能来完成。在
它也可用于其他目的,例如,测量 两个数据集。在
# import meta-feature generatorfrommetaod.models.gen_meta_featuresimportgen_meta_featuresmeta_features=gen_meta_features(X)
使用TSNE和 我们的元特性如下所示。左边的环境是合成的 100个相似的数据集,同一颜色代表同一组数据集。 左边的环境是合成的 62个没有已知相似性的数据集。我们的元功能成功捕获 潜在的sim卡左图中的ilarity。在
- 项目
标签: