• 箱线图,QQ图,核密度图,直方图学习及Python代码


    箱线图组成原理:

     

     箱线图的用途:

    1:检测异常值

     2:比较同类型数据的分布状况定性对比

    Python实例(sns库boxplot)

    1:检测异常值:(导入工业蒸汽训练数据第一列)

    1. import pandas as pd
    2. import matplotlib.pyplot as plt
    3. import seaborn as sns
    4. train_data=pd.read_csv(r"C:\Users\Administrator\Desktop\数据挖掘项目\蒸汽预测数据\zhengqi_train.txt",sep='\t',encoding='utf-8')
    5. fig = plt.figure(figsize=(4,6)) # 制定图像大小
    6. sns.boxplot(train_data['V0'],orient='v',width=0.5) # 用于查看V0这一列数据是否有异常值
    7. plt.show()

      可以看出在下边缘之下的全为异常值。

     

    2:同类数据分部对比(用的少)

    1. import pandas as pd
    2. import matplotlib.pyplot as plt
    3. import seaborn as sns
    4. train_data=pd.read_csv(r"C:\Users\Administrator\Desktop\数据挖掘项目\蒸汽预测数据\zhengqi_train.txt",sep='\t',encoding='utf-8')
    5. test_data=pd.read_csv(r"C:\Users\Administrator\Desktop\数据挖掘项目\蒸汽预测数据\zhengqi_test.txt",sep='\t',encoding='utf-8')
    6. fig = plt.figure(figsize=(4,4)) # 制定图像大小
    7. plt.subplot(1, 2, 1)
    8. sns.boxplot(train_data['V0'],orient='v',width=0.5)
    9. plt.subplot(1, 2, 2)
    10. sns.boxplot(test_data['V0'],orient='v',width=0.5)
    11. # 分别查看train和test的V0列数据分布状况对比,从图来看,看不出明显分布差异
    12. plt.show()

     

     直方图和QQ图原理:

    直方图(y轴为频率/组距)就是绘制数据的分布(加窗平滑后曲线为概率密度曲线),以块状图形式给出。而QQ图原理如下:

     

    Python代码原理解析 (注释中含解析)

    1. import pandas as pd
    2. import matplotlib.pyplot as plt
    3. import seaborn as sns
    4. from scipy import stats
    5. train_data=pd.read_csv(r"C:\Users\Administrator\Desktop\数据挖掘项目\蒸汽预测数据\zhengqi_train.txt",sep='\t',encoding='utf-8')
    6. test_data=pd.read_csv(r"C:\Users\Administrator\Desktop\数据挖掘项目\蒸汽预测数据\zhengqi_test.txt",sep='\t',encoding='utf-8')
    7. plt.figure(figsize=(10,5))
    8. plt.subplot(1, 2, 1)
    9. # 绘制VO列数据的分布,并且绘制其曲线(蓝线),同时与标准正态分布(黑线)对比
    10. sns.distplot(train_data['V0'],fit=stats.norm)
    11. plt.subplot(1, 2, 2)
    12. # 数据线与直线重合,说明符合标准正态分布,反之,不符合
    13. stats.probplot(train_data['V0'],plot=plt)
    14. plt.show()

     

     KDE核密度图原理:

    绘制单变量的数据分布曲线图(概率密度图),图面积为1。可以看出数据的分布状况,可以理解为对直方图的加窗平滑处理。

    作用:通常用来查看同类两组数据的分布情况:

    1. import pandas as pd
    2. import matplotlib.pyplot as plt
    3. import seaborn as sns
    4. from scipy import stats
    5. train_data=pd.read_csv(r"C:\Users\Administrator\Desktop\数据挖掘项目\蒸汽预测数据\zhengqi_train.txt",sep='\t',encoding='utf-8')
    6. test_data=pd.read_csv(r"C:\Users\Administrator\Desktop\数据挖掘项目\蒸汽预测数据\zhengqi_test.txt",sep='\t',encoding='utf-8')
    7. plt.figure(figsize=(10,5))
    8. ax = sns.kdeplot(train_data['V0'], color= "Red")
    9. ax = sns.kdeplot(test_data['V0'], color= "Blue")
    10. ax.set_xlabel('V0')
    11. ax.set_ylabel("概率密度")
    12. ax.legend(["train", "test"])
    13. plt.show()

     

     

  • 相关阅读:
    20种最常见的网络安全攻击类型
    java过滤器(Filter)
    Windows 11 设置 wsl-ubuntu 使用桥接网络
    万字详细总结 Promise(期约)及其方法
    [Django学习]查询过滤器(lookup types)
    word转PDF的方法 简介快速
    机器学习(19)——回归与聚类算法(补充)
    计蒜客 T1895切蛋糕(单调队列)
    python3-- Pillow10 ‘FreeTypeFont‘ object has no attribute ‘getsize‘报错解决
    面试官:设计模式之简单工厂模式
  • 原文地址:https://blog.csdn.net/qq_44386182/article/details/126900446