【问题标题】:Outlier-Detection in Scikit-learn( Isolation Forest) in a pipeline管道中 Scikit-learn(隔离森林)中的异常值检测
【发布时间】:2020-10-20 19:32:25
【问题描述】:

我遇到了这个问题,因为我无法在 Sklearn 管道中使用隔离森林算法。我正在尝试使用 Kaggle 信用卡欺诈检测数据集来预测信用卡违约。我正在尝试在数据分区后修复所有内容,以避免数据泄漏。 (通过使用管道进行每个交叉验证,因为我在不使用管道的情况下使用 K 折交叉验证中的逻辑回归获得了几乎 100% 的 F1 分数)大多数机器学习算法都可以使用(逻辑回归、随机森林分类器、等)但不适用于某些异常检测算法,例如 IsolationForest。我想知道如何将这些异常检测算法放入管道中。谢谢。

Some details for X and Y (Y- 0 as a normal transaction, 1 as fraudulent transaction)

pipe =Pipeline([
    ('sc', StandardScaler()),
    ('smote', SMOTE()),
    ('IF', IsolationForest())
])

print(cross_val_score(pipe, X,Y, scoring='f1_weighted' ,cv=5))

# Result: [3.01179163e-06 3.53204982e-06 6.55363495e-06 3.51940600e-06 4.52981524e-06]

【问题讨论】:

  • 如果需要,请提供代码sn-ps和示例数据,以便其他用户更好地了解您的问题并提出解决方案。
  • 已经添加了一些细节。如果还不清楚,请随时询问。

标签: python machine-learning scikit-learn


【解决方案1】:

如果没有更多信息,我猜您的 Pipeline 导入来自 sklearn.pipelines。只需将其替换为:

from imblearn.pipeline import Pipeline

更多信息this帮助了我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-16
    • 2017-12-16
    • 2017-03-09
    • 2013-04-26
    • 2015-03-28
    • 1970-01-01
    • 2016-06-22
    • 2017-03-26
    相关资源
    最近更新 更多