python数据挖掘分析python数据挖掘分析_Python数据挖掘003-数据特征分析

本文介绍了Python数据挖掘中的数据特征分析,包括数据分布分析、属性对比、统计量(集中趋势、离中趋势)、周期性、贡献度和相关性分析。通过实例展示了如何使用matplotlib和pandas进行数据可视化和计算,如直方图、饼图、条形图、散点图和相关系数计算。
摘要由CSDN通过智能技术生成

在对数据进行质量分析以后,就需要通过绘制图表,计算某些特征量等手段进行数据的特征分析。

1. 数据分布分析

可以揭示出数据的分布特征和分布类型,对于定量数据,要查看分部形式是对称还是不对称,绘制频率分布表,直方图,茎叶图进行只管分析。对于定性分类数据,可以用饼状图,条形图。

对定量数据,绘制其频率分布直方图,用plt绘制时,要指定bins,即绘制的组数。

data.hist(bins=30)

image.png

可以看出这个数据集大体上服从正态分布

对于定性数据的分布分析,主要采用饼图和条形图来判断。

image.png

2. 属性之间的对比分析

对比分析是指把两个相互联系的指标进行比较,查看各种关系是否协调,比如指标间的横纵向比较,时间序列的比较分析等。

在对比分析中,选择合适的对比标准是非常关键的步骤。

这个一般用图表来看数据的变化情况。

3. 统计量分析

用统计指标进行统计分析,主要有两个方面:集中趋势,离中趋势。

集中趋势就是平均水平,其指标是对个体集中趋势的度量,常用均值和中位数。

而离中趋势指的是个体离开平均水平的度量,使用较广泛的是标准差(方差),四分位间距。

3.1 集中趋势

均值:即平均值。还有加权平均值,反应的是均值中不同成分所占的不同重要程度。为数据集中的每一个xi都赋予权重wi,就得到了加权平均值。

但均值的主要问题是对极端值很敏感,如果数据中存在极端值或者数据是偏态分布,那么均值就不能很好的度量数据的集中趋势。此时可以用截断均值或者中位数来度量

中位数:间一组观察值按小到大排列,位于中间的那个数就是中位数,所以在全部数据中,小于和大于中位数的数据个数相等。

3.2 离中趋势

极差:对数据集的极端值非常敏感,且忽略了位于最大值和最小值之间的数据分布的情况。

标准差:度量数据偏离均值的程度。

变异系数:度量的是标准差相对于均值的离中趋势。

四分位数间距:上四分位数与下四分位数之差,其间包含了全部观察值的一半,其值越大,说明数据的变异程度越大,反之,说明变异程度越小。

4. 周期性分析

探索某个变量是否随着时间变化而呈现出某种周期变化的趋势。

image.png

比如上图中可以看出用电量呈现一定的周期变化。

5. 贡献度分析

贡献度分析又称为帕累托分析,原理是帕累托法则,即二八法则。如下图:

image.png

菜品对盈利的影响中,盈利最高的7个菜品占据月盈利的85%,所以要增加前面7个菜品的成本投入,而减少A8-10的投入。

绘制这个佩雷托图的代码位:

import matplotlib.pyplot as plt #导入图像库

plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签

plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

plt.figure()

data.plot(kind='bar') # 柱状图

plt.ylabel('盈利(元)')

p = 1.0*data.cumsum()/data.sum() # 累计盈利百分比

p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2)

# plt.annotate(format(p[6], '.4%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

#添加注释,即85%处的标记。这里包括了指定箭头样式。

plt.ylabel('盈利(比例)')

plt.show()

6. 相关性分析

分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程叫做相关性分析。

6.1 直接绘制散点图

img1.PNG

6.2 绘制散点图矩阵

可以利用散点图矩阵同时绘制各变量间的散点图,从而快速发现多个变量间的主要相关性,这在进行多元线性回归时显得非常重要。

6.3 计算相关系数

注意,相关性分析只能得到特征之间的线性相关性。

为了更加准确的描述变量之间的线性相关程度,可以通过计算相关系数来进行相关分析。主要有三个计算方法:Pearson相关系数,Spearman相关系数和判定系数。

image.png

Pearson线性相关系数要求连续变量的取值服从正态分布,不服从正太分布的变量,分类或等级变量之间的关联性可用Spearman相关系数来描述。

在正太分布假设下,Spearman相关系数和Pearson相关系数在效率上时等级的,而对于连续测量数据,更适合用Pearson相关系数来进行分析。

判定系数R^2, 用来衡量回归方程对y的解释程度,取值为0-1之间,越接近1表明x和y之间的相关性越强,越接近0,表明两个变量之间几乎没有直线相关关系。

计算相关性在pandas中非常方便:

df.corr()会得到一个相关性df,可以直接获取数据。

参考资料:

《Python数据分析和挖掘实战》张良均等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值