python数据分析新手入门课程学习——(二)探索分析与可视化(来源:慕课网)
一,单因子与对比分析可视化
数据
[code]import pandas as pd df = pd.read_csv('./HR.csv') #查看前十条数据 df.head(10)
以下为显示的结果
我们可以看出:
第一个属性satisfaction_level(满意度)的取值应该是在0-1之间;
last_evaluation(最近一次的评价)也是在0-1之间;
number_project(每个员工做的项目数);
average_monthly_hours(平均每个月的工作时长),这里取整了;
time_spend_company(在公司呆了多长时间),单位是年;
Work_accident(是否有工作事故),0表示没有,1表示有;
左(最近是否离职),1表示离职,0表示没有离职;
promotion_last_5years(最近五年是否晋升),1表示晋升,0表示没有晋升;
部门(每个员工所在的部门);
工资(工资),分三等级:低,中,高。
2.理论铺垫
(1)集中趋势:数据聚拢程度的一种衡量,表示数据聚拢在哪个位置。
++ 均值:经常用来衡量一些分布比较规律的连续值的集中趋势。
++ 中位数:衡量一些异常值的集中趋势,如特大,特小的值。
++ 众数:用在离散值的集中趋势衡量。
++ 分位数:跟其他几个值共同作用,产生不错的效果常用的是四分位数。
(补)四分位数计算:
(2)离中趋势:数据离散程度的衡量
++ 标准差(如下),方差(标准差的平方):越大表示数据越离散,越小表示数据越聚。
注:关于正态分布的离中趋势的一个重要概念 - 对于正态分布的数据来说,数据落在-1倍标准差和+1倍标准差内的概率为69%,落在-1.96倍标准差和1.96倍标准差内的概率为95%,落在-2.58倍标准差和2.58倍标准差内的概率为99%,也就是这部分面积可以达到99%。
(3)数据分布:偏态与峰度
++偏态系数S: 。数据平均值偏离状态的一种衡量中位数与均值相差得多,就说这是有偏态的,分布值为正,正偏,它的均值比较大;负值,负偏,它的均值较小。
++峰态系数K: 数据分布集中强度的衡量值越大,顶越尖;值越小,分布越平缓正态分布的峰态系数一般是3,经常有算法将这个值直接减3再把正态分布的峰值系数定为0也是可以的。如果有个分布峰态系数<3或> 5,则此分布不是正态分布。
++正态分布(公式如下)与三大分布(卡方分布,T分布和F分布):其应用详见下节。
卡方分布(χ2分布):几个标准正态分布(均值为0,方差为1)的平方和满足于分布,这个分布就是卡方分布。
T分布:正态分布的一个随机变量除以一个服从卡方分布的变量,就是吨分布经常用来根据小样本来估计呈正态分布且方差未知的总体的均值。
F分布:是由构成两个服从卡方分布的随机变量的比构成的。
(4)抽样理论
抽样分类:重复抽样与非重复抽样
抽样方式:完全随机抽样,等差距抽样,分类和分层抽样
++抽样误差(公式如下):
N——表示抽样的数量,N——总体的数量
当N = 1时,重复抽样与不重复抽样公式一样
当N = n时,没有误差,抽样可代表整体。
某些情况下,我们需要根据控制在误差水平之内确定抽样的数量,使用以下公式:
3. 数据分类
定类(类别):根据事务离散,无差别属性进行的分类例如:性别,民族
定序(顺序):可以界定数据的大小,但不能测定差值例:收入的低中高
定距(间隔):可以界定数据大小的同时,可测定差值,但无绝对零点(乘法,除法无意义)例如:摄氏度
定比(比率):可以界定数据大小,可测定差值,有绝对零点例如:身高,体重,长度,体积
4. 单属性分析
异常值分析:离散异常值,连续异常值,常识异常值。
++连续异常值(可以直接舍弃或取边界值代替异常值):
上下界之间的为正常值,其余为异常值。K = 1.5时,邻近边界算是中等异常; K = 3时,是非常异常。异常值的出现很有可能让大部分代表数据属性的值失去意义(如,人均收入又被超高收入平均了,这个时候均值不如中位数更有说服力)。
Q1——下四分位数;
Q2——中位数;
Q3——上四分位数;
四分位间距——Q1与Q3之间的间距;
上四分位数向上取ķ倍,K一般取1.5〜3,可以确定个上界;同理,得下界。
连续异常值++离散异常值(直接舍弃,也可把所有异常值当成一个单独的值来处理(用个特殊标记标记,以区分其与正常值)):
离散属性定义范围外的所有值均为异常值(如:空值;收入离散化有中高低三类,其他值就为异常值)。
++知(常)识异常值:在限定知识与常识范围外的所有值均为异常值。(如:身高超过10米,就不符合常理)。
对比分析:绝对数与相对数,(怎么比)时间,空间,理论维度比较
++绝对数比较:比较收入,身高,评分之类的
++相对数比较:
1)结构相对数:像用产品合格率来评价产品质量;或用考试通过率来评价学生的整体水平或考题难度之类的;
2)比例相对数:总体内用不同部分的数值进行比较比如说,传统意义上的,三大产业,农业,重工业和服务业的比例来相互比较,如哪个产业相对于哪个产业的比例发生什么样的变化。
3)比较相对数:同一时空下的,相似或同质的指标进行对比。如不同时期下的同一样商品的价格;不同互联网公司的待遇水平。
4)动态相对数:有时间的概念在里面。如:物理上的速度,用户数量的增速。
5)强度相对数:性质不同但又相互联系的属性进行联合如:人均(GDP),粮食亩产,密度。
++时间:现在跟过去比,过去跟未来比,由此未来推断走势。我们常会听到两个词——同比(和去年同期进行比较),环比(比上个月)。
++空间:可以指现实方位上的空间,如不同城市,国家,地区等;也可以指逻辑上的空间,如一家公司的不同部门或者不同公司间进行比较。
++经验与计划:经验的比较,如历史上失业率达到百分之几就很可能发生暴乱,各国之间失业率进行比较;计划的比较,我们做工作需要排期,一个实施进度需要和计划的排期进行比较。
结构分析(可看作对比分析中比例相对数的比较):各组成部分的分布与规律
++静态结构分析:直接分析系统的组成,如十一五期间三大产业的组成,第一产业13%,第二产业46%,第三产业41%,由此可确定我国的产业结构;同时,我们还可以把它跟美国,印度等国家进行比较,来衡量产业结构是否均衡,下一步该怎么决策等等。
++动态结构分析:以时间为轴,分析结构变化的趋势。我们知道十一五期间三大产业的占比,那么此期间三大产业是如何变化的,就能反应我们国家性质上的变化方向(第一产业大幅降低,第二产业小幅升高,而第三产业大幅升高,这就说明我们国家产业在转型)。
分布分析:数据分布频率的显式分析
++直接获得概率分布:得到的数进行排列或将各个离散值的数量数出来进行排列就可得到它的分布。(可能没什么意义,此时或进行比较或进行复合分析,得到的分布才会有意义。)
++判断一个分布是不是正态分布:
意义:如果一个分布为正态分布,那我们可轻易地用已有的性质 - 均值,方差等来快速定位某具体值相对于整体的位置如:如果得到一组数是正态分布的结论,我们分析其中一个具体的数比较接近均值减去一倍标准差的位置,那么我们基本就可以推断大概有84.5%的样本要比这个值大。那么,84.5%是怎么来到呢?像我们讲过,正态分布正负一倍标准差的值占全部值的69%,那么两个边缘以外的地方就各占到了15.5%,所以比这个值大的样本就占到了84.5%。
快速判断一个分布不是正态分布的方法:
1)如果一个分布偏态绝对值比较大,那就不是正态分布。这个值一般取到零点几,具体的值要依据数据质量和业务场景而定。
2)如果正态分布的峰态系数定为3,那么<1和> 5的肯定不是正态分布。同样,若正态分布峰值定为0,那么<-2和> 2的不是正态分布。
++极大似然(相似程度的衡量):可以表示一连串的数和分布到底有多像。给出一串数字,我们知道它是属于正态分布的,就一定可以确定一个均值,一个方差,使该均值和方差确定的正态分布下。这串数字的这几个点在这个确定的分布的取值就是他们的概率。这几个值的和或积,在刚刚确定的均值和方差下是最大的。那么对这几个和或积取对数,就叫极大似然。还是那串数,怎么判断它更接近正态分布,而不接近牛逼分布呢?可以对比它在不同分布下的极大似然。哪个极大似然越大,它就更接近哪个分布。当然最大的极大似然是我们直接获得的分布,但这个分布可能没有意义,和已有的分布建立联系,可能它的作用会更大。
阅读更多- Python数据分析入门——无监督学习部分
- Python 数据分析微专业课程--项目05 多场景下的图表可视化表达
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- python数据分析入门学习笔记
- python数据挖掘课程 十一.Pandas、Matplotlib结合SQL语句可视化分析
- python数据分析入门学习笔记儿
- 转载]利用Python进行数据分析——绘图和可视化 xticks-学习笔记
- python数据分析入门学习笔记儿
- 【python数据挖掘课程】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
- JAVA从菜鸟【入门】到新手【实习】一一Python学习历程:游戏学Python:《兔子和獾》的塔防游戏源代码分析
- Data Analysis学习笔记 --- Python数据分析入门知识
- Python 数据分析微专业课程--项目实战11 中国城市资本流动问题探索
- python数据分析pandas包入门学习(三)汇总和统计描述
- 利用Pythonj进行数据分析学习笔记——第五章 pandas入门
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- (转)Python爬虫、数据分析、数据可视化学习书单
- 数据可视化的优秀入门书籍有哪些,D3.js 学习资源汇总
- 探索性数据分析与可视化
- 利用python进行数据分析-pandas入门3
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #4 -- 数据新增、删除、修改(ObkectContext的 .SaveChange()方法)