如何应用 sklearn 的 EllipticEnvelope 找出给定数据集中的最高异常值?
How to apply sklearn's EllipticEnvelope to find out top outliers in the given dataset?
我正在使用 sklearn 的 EllipticEnvelope
来查找数据集中的异常值。但是我不确定如何为我的问题建模?是不是直接用所有的数据(不分训练集和测试集)套用fit
?另外,我将如何获得每个数据点的离群值?我应该在同一个数据集上使用 predict
吗?
是的,请致电 Fit
使用您的所有数据对其进行训练。然后,您可以使用所有数据调用 Predict
,其中 returns 1 表示异常值,-1 表示异常值,或者构建所有点的矩阵(以包含所有数据点)并调用 Predict
在每个点上,然后绘制结果,这将为您提供一个漂亮的椭圆图像。
这里是 full example 与其他方法的比较。
正确的做法是:
- 将数据分为
normal
和outliers
。
- 从
normal
数据中提取大样本作为 normal_train
用于拟合新颖性检测模型。
- 使用
normal
中未在训练中使用的样本(比如 normal_test
)和 outlier
中的样本(比如 outlier_test
)创建一个测试集test
数据 (normal_test
+ outlier_test
) 的分布保持人口分布的一种方式。
- 预测此
test
数据以获得常用指标(accuracy
、sensitivity
、positive-predictive-value
等)
哇。我已经走了很远!
我正在使用 sklearn 的 EllipticEnvelope
来查找数据集中的异常值。但是我不确定如何为我的问题建模?是不是直接用所有的数据(不分训练集和测试集)套用fit
?另外,我将如何获得每个数据点的离群值?我应该在同一个数据集上使用 predict
吗?
是的,请致电 Fit
使用您的所有数据对其进行训练。然后,您可以使用所有数据调用 Predict
,其中 returns 1 表示异常值,-1 表示异常值,或者构建所有点的矩阵(以包含所有数据点)并调用 Predict
在每个点上,然后绘制结果,这将为您提供一个漂亮的椭圆图像。
这里是 full example 与其他方法的比较。
正确的做法是:
- 将数据分为
normal
和outliers
。 - 从
normal
数据中提取大样本作为normal_train
用于拟合新颖性检测模型。 - 使用
normal
中未在训练中使用的样本(比如normal_test
)和outlier
中的样本(比如outlier_test
)创建一个测试集test
数据 (normal_test
+outlier_test
) 的分布保持人口分布的一种方式。 - 预测此
test
数据以获得常用指标(accuracy
、sensitivity
、positive-predictive-value
等)
哇。我已经走了很远!