九、探索性数据分析的应用

1.探索性数据分析概述

探索性数据分析主要包括以下方面的内容:

  • 探索性数据分析的概念
  • 探索性数据分析的目的
  • 探索性数据分析的常见工具
  • 探索变量关系及其可视化

2 探索性数据分析的概念

  • 1977年John Wilder Tukey第一次系统性地论述了探索性数据分析
    九、探索性数据分析的应用_第1张图片
  • EDA是指对已有的数据通过作图、制表、计算特征等手段探索数据的结构和规律的一种数据分析方法;
  • 探索性数据分析(EDA)注重对数据进行概括性描述,不受模型和科研假设的限制;
  • 适用于当对数据中的信息没有足够的经验,不知道不知道该用何种传统统计方法进行分析时

3 探索性数据分析的目的

** EDA的目的**

  • 通过可视化对数据构建初始认知
  • 对于数据集中的某些现象原因提出假设
  • 论证该使用何种统计推断进行分析
  • 为后续使用合适的统计工具及技术提供支持
  • 对进一步的数据手机及调查做基础
  • 通常情况,对于未知的数据先进行EDA

4 探索性数据分析的常见工具

  • EDA常用工具—基于图像的量化技术
    九、探索性数据分析的应用_第2张图片
  • Matplotlib
  1. 用于创建图标的工具库
  2. import matplotlib.pyplot as plt
  3. pyplot模块包含了常用的API函数
    九、探索性数据分析的应用_第3张图片
  • Seaborn
  1. Python中的制图工具库,包含大量的统计图
  2. 支持numpy和pandas的数据结构可视化,甚至是scipy和statsmodels的统计模型可视化
  • Seaborn的特点
  1. 多个内置主题和颜色主题
  2. 可视化单一变量、二维变量用于比较数据集中的分布情况
  3. 可视线性回归模型中的独立变量及不独立变量
  • Bokeh
  1. 度量的HTML文档或服务器端程序
  2. 可以处理大量、动态或数据流
  3. 支持Python、Scala、Julia…
  4. 不需要使用Javascript

5 探索变量关系及其可视化

5.1 简单案例

  1. 数据集:来自World Bank的Life Expectancy(平均寿命)
  2. 包含1960~2013年全球各国的平均寿命
  3. 通过一下几个问题来进行EDA
  4. 1960~2013年间,整体的平均寿命是否延长?
  5. 1960年哪些国家拥有最长/最短的平均寿命?
  6. 1960年寿命的最大、最小及平均值?

5.2 准备工作及加载数据

  • 1. 导入数据分析所需要的工具库
    九、探索性数据分析的应用_第4张图片
  • 2. 设置索引列
    九、探索性数据分析的应用_第5张图片
  • 3. 1960~2013年间,整体的平均寿命是否延长?
    九、探索性数据分析的应用_第6张图片
  • 1960年哪些国家拥有最长/最短的平均寿命?

    idxmax 和 idxmin 提供列中对应数据最大值和最小值的索引值

    print(lexp[‘1960’].idxmax())
    print(lexp[‘1960’].idxmin())
    Norway
    Mali
  • 1960年寿命的最大、最小及平均值

    max and min provide the values

    print(np.round(lexp[‘1960’].max()))
    print(np.round(lexp[‘1960’].min()))
    print(np.round(lexp[‘1960’].mean()))
    74.0
    28.0
    54.0

6 完整代码

# *-* coding:utf-8 *-*
import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
import matplotlib; matplotlib.style.use('ggplot')

from pandas import set_option
set_option("display.max_rows", 16)

LARGE_FIGSIZE = (12, 8)

# 读取csv数据集
lexp = pd.read_csv('lexpectancy.csv')
lexp.head()

# 设置行索引为'Country'列
lexp = lexp.set_index('Country')
lexp.head()

# 1960~2013年间,整体的平均寿命是否延长?
lexp.mean().plot()
plt.show()

# 1960年哪些国家拥有最长/最短的平均寿命?

# idxmax 和 idxmin 提供列中对应数据最大值和最小值的索引值
print(lexp['1960'].idxmax())
print(lexp['1960'].idxmin())

# 1960年寿命的最大、最小及平均值?
print(np.round(lexp['1960'].max()))
print(np.round(lexp['1960'].min()))
print(np.round(lexp['1960'].mean()))))

# 1960年寿命的最大、最小及平均值?
print(np.round(lexp['1960'].max()))
print(np.round(lexp['1960'].min()))
print(np.round(lexp['1960'].mean()))

你可能感兴趣的:(数据挖掘)