• Three ways to detect outliers


    Z-score

    import numpy as np
    
    def outliers_z_score(ys):
        threshold = 3
    
        mean_y = np.mean(ys)
        stdev_y = np.std(ys)
        z_scores = [(y - mean_y) / stdev_y for y in ys]
        return np.where(np.abs(z_scores) > threshold)

    Modified Z-score

    import numpy as np
    
    def outliers_modified_z_score(ys):
        threshold = 3.5
    
        median_y = np.median(ys)
        median_absolute_deviation_y = np.median([np.abs(y - median_y) for y in ys])
        modified_z_scores = [0.6745 * (y - median_y) / median_absolute_deviation_y
                             for y in ys]
        return np.where(np.abs(modified_z_scores) > threshold)

    IQR(interquartile range)

    import numpy as np
    
    def outliers_iqr(ys):
        quartile_1, quartile_3 = np.percentile(ys, [25, 75])
        iqr = quartile_3 - quartile_1
        lower_bound = quartile_1 - (iqr * 1.5)
        upper_bound = quartile_3 + (iqr * 1.5)
        return np.where((ys > upper_bound) | (ys < lower_bound))
    

    Conclusion

    It is important to reiterate that these methods should not be used mechanically. 
    They should be used to explore the data – they let you know which points might be worth a closer look. 
    What to do with this information depends heavily on the situation. 
    Sometimes it is appropriate to exclude outliers from a dataset to make a model trained on that dataset more predictive. 
    Sometimes, however, 
    the presence of outliers is a warning sign that the real-world process generating the data is more complicated than expected.
    
    As an astute commenter on CrossValidated put it: 
    “Sometimes outliers are bad data, and should be excluded, such as typos.
    Sometimes they are Wayne Gretzky or Michael Jordan, and should be kept.” 
    
    Domain knowledge and practical wisdom are the only ways to tell the difference.
    

      

    摘自:http://colingorrie.github.io/outlier-detection.html

  • 相关阅读:
    点击按钮生成遮罩层后这个按钮被遮住还可以点击解决办法
    关于jq的load不用回调获取其中dom元素方法
    移动端默认返回按键,使用h5+修改默认事件
    移动端解决input focus后键盘弹出,高度被挤压的问题
    模拟移动端上拉超过页面实际高度
    软工作业
    一周进度汇报
    alhpa阶段回顾
    一周进度汇报
    一周进度汇报
  • 原文地址:https://www.cnblogs.com/standby/p/9403999.html
Copyright © 2020-2023  润新知