zoukankan      html  css  js  c++  java
  • 深入浅出统计学 第二三章 量度

    量度

    两类量度:

    (1) 集中趋势的量度—>平均值,中位数,众数

    (2) 分散性与变异性的亮度—>全距(极值),四分位数(扩展:箱型图),方差与标准差,标准分

    获取数据

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    # 定义读取数据的函数
    def ReadAndSaveDataByPandas(target_url = None,file_save_path = None ,save=False):
    
        if target_url !=None:
            target_url = ("http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv")   
        if file_save_path != None:
            file_save_path = "/home/fonttian/Data/UCI/Glass/glass.csv"
    
        wine = pd.read_csv(target_url, header=0, sep=";")
        if save == True:
            wine.to_csv(file_save_path, index=False)
    
        return wine
    wine = pd.read_csv("/home/font/Data/UCI/WINE/wine.csv")
    wine.head()

    展示葡萄酒数据集

    代码实现

    利用Pandas实现深入浅出统计学中的这两章内容是十分简单的,大部分都已经封装好,
    只有极值与标准分需要我们自己编写.
    箱型图之前已经给出了相应的画法,所以这次我把它放在了最后.

    print('葡萄酒评分的均值为:%.3f'%(wine['quality'].mean()))
    print('葡萄酒评分的中位数为:%.3f'%(wine['quality'].median()))
    print('葡萄酒评分的众数为:%.3f'%(wine['quality'].mode()))
    葡萄酒评分的均值为:5.636   
    葡萄酒评分的中位数为:6.000
    葡萄酒评分的众数为:5.000
    
    print('葡萄酒评分的全距(极值)为:%.3f'%(wine['quality'].max()-wine['quality'].min()))
    print('葡萄酒评分的方差为:%.3f'%(wine['quality'].var()))
    print('葡萄酒评分的标准差为:%.3f'%(wine['quality'].std()))
    葡萄酒评分的全距(极值)为:5.000
    葡萄酒评分的方差为:0.652
    葡萄酒评分的标准差为:0.808
    
    print('葡萄酒评分的四分位数为:
    ',(wine['quality'].quantile([0,0.25,0.5,0.75,1])))
    葡萄酒评分的全距(极值)为:5.000
    葡萄酒评分的方差为:0.652
    葡萄酒评分的标准差为:0.808
    葡萄酒评分的四分位数为:
     0.00    3.0
    0.25    5.0
    0.50    6.0
    0.75    6.0
    1.00    8.0
    Name: quality, dtype: float64
    

    我们也可以直接使用describe获取我们想要的东西,而标准分的计算则需要我们再多动一动手。
    下面的示例分别有两种不同的实现方式,因为数值问题结果略有差异,但是没有什么影响。

    wine.describe()

    利用Pandas展示基本的统计分析

    def Zscore_columns_bysklearn(Dataframe):
        from sklearn.preprocessing import StandardScaler
        scaler = StandardScaler()    
        Dataframe_tofit = Dataframe.astype('float64')
        scaler.fit(Dataframe_tofit)
        returnResult = pd.DataFrame(scaler.transform(Dataframe))
    
        return 
    
    wine_zscore_quality_bysklearn = Zscore_columns_bysklearn(wine)
    wine_zscore_quality_bysklearn.head()

    计算标准分

    def Zscore_columns(Dataframe):    
        return (Dataframe-Dataframe.mean())/Dataframe.std()
    
    wine_zscore_quality = Zscore_columns(wine)
    wine_zscore_quality.head()

    计算标准分

    wine[['fixed acidity', 'residual sugar', 'alcohol', 'quality']].plot.box()
    
    # vert=False, 横向
    # positions=[1, 4, 6, 8], y轴位置
    # color=color, 颜色
    # sym='r+', 异常点的样式
    color = dict(boxes='DarkGreen', whiskers='DarkOrange', medians='DarkBlue', caps='Gray')
    wine[['fixed acidity', 'residual sugar', 'alcohol', 'quality']].plot.box(vert=False, positions=[1, 4, 6, 8],color=color,sym='r+')
    plt.show()

    箱型图

    横向箱型图

    参考

    1.pandas用户指南 计算工具 中文版
    2.深入浅出统计学 第一章 数据的可视化

  • 相关阅读:
    Defining Database and Instance【数据库与实例】
    安装rlwrap错误的问题解决方法
    ORACLE CONTROL FILE 笔记
    NTP时间服务器配置与解析
    虚拟机下Linux系统安装vmtool工具
    ORACLE clusterware组成
    ORACLE RAC集群硬件资源管理与单节点的区别
    Clusterware后台进程
    oracle数据库重建EM
    微机原理之计算机系统导论
  • 原文地址:https://www.cnblogs.com/fonttian/p/9162715.html
Copyright © 2011-2022 走看看