如何应用sklearn的EllipticEnvelope来查找给定数据集中的最高异常值?

时间:2015-11-18 11:24:41

标签: python scikit-learn outliers

我正在使用sklearn' EllipticEnvelope来查找数据集中的异常值。但我不确定如何模拟我的问题?我应该只使用所有数据(不分为培训和测试集)并应用fit吗?另外,我如何获得每个数据点的外围性?我应该在同一数据集上使用predict吗?

2 个答案:

答案 0 :(得分:1)

是的,请致电Fit以使用您的所有数据进行培训。然后,您可以使用所有数据调用Predict,对于异常值返回1,为异常值返回-1,或者建立所有点的矩阵(以包含所有数据点)并调用Predict在每个点上,然后绘制结果,这将给你一个很好的椭圆图像。

这是与其他方法进行比较的full example

答案 1 :(得分:1)

正确的方法是:

  1. 将数据划分为normaloutliers
  2. normal数据中的大样本作为normal_train,以拟合新颖性检测模型。
  3. 以某种方式创建一个测试集,其中包含来自normal的未在培训中使用的样本(例如normal_test)和来自outlier的样本(例如outlier_test)这样test数据(normal_test + outlier_test)的分布保留了人口分布。
  4. 预测此test数据以获取常用指标(accuracysensitivitypositive-predictive-value等。)
  5. 哇。我走了很长的路!