Python数据分析与挖掘实战学习笔记(2)

本文详细介绍了Python数据分析中的数据探索,包括数据质量分析(缺失值、异常值、一致性分析)和数据特征分析(分布、对比、统计量、周期性、贡献度和相关性)。强调了数据质量对模型准确性的重要性,提供了各种分析方法和实例。

Chapter3 数据探索

序言

 根据观测、调查收集到初步的样本数据集后,接下来要考虑的问题是:样本数据集的数量和质量是否满足模型构建的要求?是否出现从未想过的数据状态?其中有没有什么明显的规律和趋势?各因素之间有什么样的关联性?
 通过检验数据集的数据质量、绘制图表、计算某些特征量等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。
 本章从数据质量分析和数据特征分析两个角度对数据进行探索。

数据质量分析

 数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础,没有可信的数据,数据挖掘构建的模型将是空中楼阁。
 数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据。在常见的数据挖掘工作中,脏数据包括如下内容:

  1. 缺失值
  2. 异常值
  3. 不一致的值
  4. 重复数据及含有特殊符号的数据

缺失值分析

 数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确,以下从缺失值产生的原因及影响等方面展开分析。
(1). 缺失值产生的原因
1). 有些信息暂时无法获取,或者获取信息的代价太大。
2). 有些信息是被遗漏的。可能是因为输入时认为不重要、忘记填写或对数据理解错误等一些人为因素而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障等非人为原因而丢失。
3). 属性值不存在。在某些情况下,缺失值并不意味着数据有错误。对一些对象来说某些属性值是不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入等。
(2). 缺失值的影响
1). 数据挖掘建模将丢失大量的有用信息。
2). 数据挖掘模型所表现出的不确定性更加显著,模型中蕴含的规律更难把握。
3). 包含空值的数据会使建模过程陷入混乱,导致不可靠的输出。
(3) 缺失值的分析
 使用简单的统计分析,可以得到含有缺失值的属性的个数,以及每个属性的未缺失数、缺失数与缺失率等。
 从总体上来说,缺失值的处理分为删除存在缺失值的记录、对可能值进行插补和不处理3种情况。

异常值分析

 异常值分析是检验数据中是否含有录入错误以及含有不合常理的数据。忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,对结果会产生不良的影响;重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。
 异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值分析也称为离群点分析。

# 查看餐饮系统的日销量数据的基本情况
import pandas as pd
catering_sale = './data/catering_sale.xls'  # 餐饮数据
data = pd.read_excel(catering_sale, index_col=u'日期')  # 读取数据,指定"日期"列为索引树
print(data.describe())
          销量
count   200.000000
mean   2755.214700
std     751.029772
min      22.000000
25%    2451.975000
50%    2655.850000
75%    3026.125000
max    9106.440000

 count是非空值数,通过len(data)可以知道数据记录有201条,因此缺失值数为1。

# 餐饮销额数据异常值检测代码
import pandas as pd
catering_sale = './data/catering_sale.xls'
data = pd.read_excel(catering_sale, index_col=u'日期')  # 读取数据,指定"日期"列为索引树
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.figure() # 建立图像
p = data.boxplot(return_type='dict')  # 画箱线图,直接使用DataFrame的方法
x = p['fliers'][0].get_xdata()  # 'fliers'即为异常值的
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值