zoukankan      html  css  js  c++  java
  • 数据预处理 | 通过 Z-Score 方法判断异常值

    判断异常值方法:Z-Score

    计算公式 Z = (X-μ)/σ 其中μ为总体平均值,X-μ为离均差,σ表示标准差。z的绝对值表示在标准差范围内的原始分数与总体均值之间的距离。当原始分数低于平均值时,z为负,以上为正。

    代码演示

    1 生成一个 df

    1 import pandas as pd  # 导入pandas库
    2 # 生成异常数据
    3 df = pd.DataFrame({'col1': [1, 120, 3, 5, 2, 12, 13],
    4                    'col2': [12, 17, 31, 53, 22, 32, 43]})

    2 通过Z-Score方法判断异常值

     1 df_zscore = df.copy()  # 复制一个用来存储Z-score得分的数据框
     2 cols = df.columns  # 获得数据框的列名
     3 
     4 for col in cols:  # 循环读取每列
     5     df_col = df[col]  # 得到每列的值
     6     z_score = (df_col - df_col.mean()) / df_col.std()  # 计算每列的Z-score得分
     7     # 判断Z-score得分是否大于2.2,(此处2.2代表一个经验值),如果是则是True,否则为False
     8     df_zscore[col] = z_score.abs() > 2.2  
     9 
    10 print(df_zscore)  # 打印输出

    3 删除异常值所在的行

      留下==False的,df_zscore['col1'] == True 的就能丢掉了

    1 df_drop_outlier = df[df_zscore['col1'] == False]
    2 print(df_drop_outlier)
  • 相关阅读:
    DOM_节点操作创建表格
    表单提交
    HTML常用标签
    网络通讯详解
    java===TCP(多线程多客户端同时上传字节数据:图片为例)
    java===TCP(文件上传功能)
    java===UDP
    java==IO=随机读写文件
    git中的基本命令
    ansible中roles的简单使用
  • 原文地址:https://www.cnblogs.com/ykit/p/12371461.html
Copyright © 2011-2022 走看看