美文网首页
数据挖掘(异常检测)——相似度

数据挖掘(异常检测)——相似度

作者: EL33 | 来源:发表于2021-05-21 00:42 被阅读0次

    DataWhale 组队学习 2021.05 组队学习系列笔记四

    异常检测(相似度)

    LOF 方法是一种典型的基于密度的高精度离群点检测方法。
    在 LOF 方法中,通过给每个数据点都分配一个依赖于邻域密度的离群因子 LOF,进而判断该数据点是否为离群点。若 LOF >> 1, 则该数据点为离群点;若 LOF 接近于 1,则该数据点为正常数据点。

    实现(sklearn):

    sklearn.neighbors.LocalOutlierFactor(n_neighbors=20, ***, algorithm='auto', leaf_size=30, metric='minkowski', p=2, metric_params=None, contamination='auto', novelty=False, n_jobs=None)[source]

    • n_neighbors = 20:即k,检测的邻域点个数超过样本数则使用所有的样本进行检测
    • algorithm = 'auto':使用的求解算法,使用默认值即可
    • contamination = 0.1:范围为 (0, 0.5),表示样本中的异常点比例,默认为 0.1
    • n_jobs = -1:并行任务数,设置为-1表示使用所有CPU进行工作
    • p = 2:距离度量函数,默认使用欧式距离。(其他距离模型使用较少,这里不作介绍。具体参考官方文档
        from sklearn.neighbors import LocalOutlierFactor
        clf = LocalOutlierFactor(n_neighbors=k + 1, algorithm='auto', contamination=0.1, n_jobs=-1)
        clf.fit(data)
        # 记录 k 邻域距离
        predict['k distances'] = clf.kneighbors(predict)[0].max(axis=1)
        # 记录 LOF 离群因子,做相反数处理
        predict['local outlier factor'] = -clf._decision_function(predict.iloc[:, :-1])
    

    相关文章

      网友评论

          本文标题:数据挖掘(异常检测)——相似度

          本文链接:https://www.haomeiwen.com/subject/goyijltx.html