这是一个多维数据异常值检测python库。
pip install mdod
git clone https://github.com/mddod/mdod.git
cd mdod
python setup.py install
PS D:\mdod> python testmdodmodelv3cn.py
生成数据: 1000 样本, 2 维度, 150 异常值
生成数据已保存到 'generated_data.csv'
使用采样率: 0.05
MDOD 决策分数 (前10个):
[-18.35501117 -19.47399109 -19.41190024 -19.49380267 -19.10821045
-19.40054633 -19.67117886 -19.779317 -19.28025311 -18.76932122]
MDOD 预测标签 (异常数): 150
MDOD AUC: 1.0
MDOD 运行时间: 0.006565 秒
MDOD Confusion Matrix:
[[850 0]
[ 0 150]]
MDOD Precision: 1.0000
MDOD Recall: 1.0000
MDOD F1-Score: 1.0000
LOF 决策分数 (前10个):
[1.3914752 0.98461504 0.96843988 0.99806687 1.08945498 1.06411694
0.97248439 0.97285236 1.03958174 1.22721841]
LOF 预测标签 (异常数): 150
LOF AUC: 1.0
LOF 运行时间: 0.032463 秒
LOF Confusion Matrix:
[[850 0]
[ 0 150]]
LOF Precision: 1.0000
LOF Recall: 1.0000
LOF F1-Score: 1.0000
比较结果:
Spearman 相关系数: 0.9191 (p-value: 0.0000)
MDOD AUC: 1.0000, LOF AUC: 1.0000
算法复杂度比较(实证运行时间):MDOD 0.006565s vs LOF 0.032463s
测试数据对比 (前10行):
Feature_1 Feature_2 True_Label MDOD_Score MDOD_Label LOF_Score LOF_Label
0 -0.270380 0.475626 0.0 -18.355011 0 1.391475 0
1 0.148810 0.084334 0.0 -19.473991 0 0.984615 0
2 0.035218 0.135820 0.0 -19.411900 0 0.968440 0
3 0.173876 0.134433 0.0 -19.493803 0 0.998067 0
4 -0.096058 -0.407006 0.0 -19.108210 0 1.089455 0
5 0.313824 -0.072688 0.0 -19.400546 0 1.064117 0
6 0.002351 0.048765 0.0 -19.671179 0 0.972484 0
7 -0.018743 -0.034689 0.0 -19.779317 0 0.972852 0
8 0.274687 -0.030421 0.0 -19.280253 0 1.039582 0
9 0.344621 -0.285760 0.0 -18.769321 0 1.227218 0
完整数据已保存到 'test_data_comparison.csv'
测试输出数据已保存到 'test_output_data.csv'
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: cHRM chunk does not match sRGB
下载 testmdod_simple_example_cn.py 从csv文件读取数据。
D:\mdodtest>
D:\mdodtest>
D:\mdodtest>py testmdod_simple_example_cn.py
数据维数: 2
数据点数量: 1000
异常值数量: 150
已将数据保存到: testmdod_simple_example_output_data.csv
使用采样率: 0.05
MDOD 运行时间: 0.0799 秒
MDOD 决策分数 (前10个 - 最大值):
[-6.62289984 -6.77322132 -6.92891522 -7.18871113 -7.23625849 -7.24312221
-7.31773667 -7.32676678 -7.33133378 -7.33982723]
MDOD 决策分数 (后10个 - 最小值):
[-19.84866083 -19.82038598 -19.82010554 -19.80062169 -19.80051546
-19.76201034 -19.76181435 -19.75729718 -19.75229983 -19.74520579]
MDOD的参数
包括:norm_distance
:虚拟维度的距离(默认1.0,影响相似度计算)。top_n
:考虑用于统计的最临近点的数量(选择合适的数量用于异常值识别区分)。contamination
:设置的异常比例(默认0.1,用于阈值计算)。sampling_rate
:采样率(0~1,默认1.0,低值加速计算)。random_state
:随机种子。