首页 > 其他分享 >样本不均衡与异常点检测处理|SMOTE|LOF|IForest

样本不均衡与异常点检测处理|SMOTE|LOF|IForest

时间:2024-11-07 17:14:58浏览次数:5  
标签:LOF IForest SMOTE clf 样本 算法 异常

       在机器学习中,数据样本不均衡和异常值检测是数据科学家和机器学习工程师经常面临的挑战。这些问题如果不加以处理,会严重影响模型的性能和准确性。本文将概述这些问题,并提出相应的解决方案。

样本不均衡概述

在分类任务中,样本不均衡指的是不同类别的样本数量相差悬殊,比如y值中的正负样本不均衡。这种情况在实际应用中非常常见,比如在信贷审批中,违约的客户(负样本)往往远少于未违约的客户(正样本)。这种不均衡会导致模型在预测时偏向于多数类,从而降低对少数类的预测性能。

解决方案
  1. 下探

    下探是指在被拒绝的客户中放一部分人进来,即通过牺牲一部分收益,积累负样本,供后续模型学习。然而,下探的代价是风险增加和成本上升。它会造成信用质量的恶化,不是每个平台都愿意承担这部分坏账。并且,往往很难对每次下探的量给出一个较合适的参考值。

  2. 代价敏感(设置参数)

    代价敏感方法通过改变样本的权重来解决不均衡问题。类权重的计算方法通常如下:

    textweight=(n_classes×np.bincount(y))n_samples​

    其中,n_samples 为样本数,n_classes 为类别数量,np.bincount(y) 会输出每个类别的样本数量。

    逻辑回归模型在创建时,可以通过设置 class_weight='balanced' 参数来实现代价敏感。此外,还可以通过fpr和tpr的最大差值计算KS值来验证模型性能,KS值越大越好。

  3. 采样算法

    • 欠采样:通过减少多数类样本的数量来平衡数据集。

    • 过采样:通过增加少数类样本的数量来平衡数据集。

      其中,SMOTE算法是一种常用的过采样技术。它通过计算每个少数类样本的K个近邻,并从这些近邻中随机挑选样本进行线性插值,从而构造新的少数类样本。然而,SMOTE算法会放大数据集中的噪声和异常,因此需要对训练样本进行清洗。另一种随机过采样方法则是简单复制现有样本,但这种方法会导致训练得到的模型泛化能力较差。

      SMOTE算法的使用可以通过以下代码实现:

      from imblearn.over_sampling import SMOTE 
      
      
      smote = SMOTE( 
      k_neighbors=K, # 找K个邻居 
      n_jobs=1, 
      random_state=random_state 
      ) 
      
      
      x_resampled, y_resampled = smote.fit_resample(x, y)
异常点检测概述

异常值在实际数据中不可避免,异常点检测是数据处理的重要步骤。异常值通常指的是那些与大多数样本显著不同的样本点,它们可能是由于测量错误、数据录入错误或异常事件产生的。

解决方案
  1. z-score

    z-score是一种基于统计思想的异常值检测方法。它通过将每个样本点与其均值之间的差值除以标准差来计算z值,然后根据z值的绝对值大小来判断样本点是否为异常值。

  2. LOF(Local Outlier Factor)

    LOF是一种无监督的异常点检测算法。它基于密度来计算局部异常因子,密度越大说明样本越正常,反之则样本异常。LOF算法的实现流程如下:

    • 首先对样本空间进行去重,并计算每个样本到其余点的距离。
    • 将距离升序排列,并指定近邻样本个数k。
    • 对于每个样本点,寻找其k近邻样本,并计算LOF分数作为异常分数。

    LOF算法的使用可以通过以下代码实现:

    from pyod.models.lof import LOF 
    
    
    clf = LOF(n_neighbors=k) 
    clf.fit(x) 
    y_pred = clf.predict(x)
  3. Isolation Forest

    Isolation Forest是一种基于树模型的异常点检测算法。它从样本的分割难易程度来区分正常点和异常点。Isolation Forest的构建过程类似于随机森林,但每个决策树的构建过程不同。它随机选择一个特征和一个特征值作为分割点,将样本空间划分为两部分,直到所有样本都被孤立或达到树的深度限制。

    Isolation Forest的使用可以通过以下代码实现:

    from pyod.models.iforest import IForest 
    
    
    clf = IForest( 
    behaviour='new', # 为了兼容后续版本 
    n_estimators=500, 
    n_jobs=-1 
    ) 
    
    
    clf.fit(x) 
    y_pred = clf.predict(x)

通过合理的策略处理样本不均衡和异常值,可以显著提高模型的性能和准确性。在实际应用中,需要根据具体的数据集和任务需求选择合适的解决方案。

标签:LOF,IForest,SMOTE,clf,样本,算法,异常
From: https://blog.csdn.net/DREAM_xs/article/details/143451170

相关文章

  • 大模型微调j技术:GaLore、BAdam、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-D
    引言1.1大模型微调的重要性随着人工智能技术的飞速发展,大型语言模型(LLMs)如GPT-3、BERT等已经成为自然语言处理(NLP)领域的核心技术。这些模型通过在大规模文本数据上的预训练,掌握了丰富的语言知识和统计特征。然而,尽管这些预训练模型在通用任务上表现出色,但在特定任务或领......
  • 2024年图像配准最新算法EfficientLoFTR(cvpr2024) 【补丁For 双鱼眼全景视频拼接】
    前言对于双鱼眼全景拼接这个项目来说,单应性矩阵是最重要的一环。单应性矩阵中它既包含了相机的内参,也包含了相机的外参。因此就算你的相机没有特别好的定位,也能通过好的单应性矩阵救回来。2024最新DNN配准算法在双鱼眼相机拼接中,特征点检测与匹配是影响单应性矩阵最......
  • 过采样SMOTE逻辑回归、SVM、随机森林、AdaBoost和XGBoost对不平衡数据分析预测
    全文链接:https://tecdat.cn/?p=37115原文出处:拓端数据部落公众号分析师:YimengLi近几年,伴随着互联网的发展,在线食品配送业务成为了新潮流。在此背景下,我们帮助客户对“在线食品交付偏好-班加罗尔地区”数据开展研究,建立印度在线食品配送平台消费者的用户画像,研究影响顾客购买意......
  • SMOTE与SMOGN算法R语言代码
      本文介绍基于R语言中的UBL包,读取.csv格式的Excel表格文件,实现SMOTE算法与SMOGN算法,对机器学习、深度学习回归中,训练数据集不平衡的情况加以解决的具体方法。  在之前的文章SMOGN算法Python实现:解决回归分析中的数据不平衡中,我们介绍了基于Python语言中的smogn包,实现SMOGN算......
  • CompletableFuture allOf 和 anyOf
    CompletableFuture<String>future1=CompletableFuture.supplyAsync(()->{List<String>objects=newArrayList<>();Strings=objects.get(0);return"成功";}).exceptionally(ex->{//这样的话future2就可以正常执行......
  • 为什么 InputComponent->BindAxis(TEXT("ViewHorizontalOffSet"),this,&AMarioControl
    在UnrealEngine中,InputComponent->BindAxis和事件绑定(如OnComponentBeginOverlap)使用不同的系统和要求。这些差异导致了在绑定函数时对UFUNCTION()宏的不同需求。BindAxis和UFUNCTION()宏BindAxis:用于绑定输入轴(如游戏手柄的移动或旋转)。当绑定轴输入时,BindAxis函数直接引用......
  • 深度学习技巧应用39-深度学习模型训练过程中数据均衡策略SMOTE的详细介绍,以及SMOTE的
    大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用39-深度学习模型训练过程中数据均衡策略SMOTE的详细介绍,以及SMOTE的算法原理与实现,本文介绍了一种用于处理分类数据不平衡问题的过采样方法——SMOTE算法。SMOTE算法通过在少数类的样本之间插值来创建新的样本,从而增加少......
  • YOLOF:单层特征检测也可以比FPN更出色 | CVPR 2021
     论文通过分析发现FPN的成功在于divide-and-conquer策略解决了目标检测的优化问题,借此研究设计了仅用单层特征预测的高效检测网络YOLOF。YOLOF在结构上没有很多花哨的结构,却在准确率、推理速度和收敛速度上都有不错的提升,相对于眼花缭乱的FPN魔改结构,十分值得学习来源:晓飞的算......
  • Paper Reading: SMOTE for Regression
    目录研究动机文章贡献本文方法relevance回归的欠采样回归的SMOTE实验结果数据集和实验设置对比实验PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原......
  • 不平衡数据集神经网络回归SMOTE、SMOGN算法:R语言代码
      本文介绍基于R语言中的UBL包,读取.csv格式的Excel表格文件,实现SMOTE算法与SMOGN算法,对机器学习、深度学习回归中,训练数据集不平衡的情况加以解决的具体方法。  在之前的文章SMOGN算法的Python实现:不平衡数据的深度学习回归中,我们介绍了基于Python语言中的smogn包,实现SMOGN算......