数据预处理_数据相关性分析
相关性分析
1、相关性分析是指对多个具备相关关系的变量进行分析,从而衡量变量间的相关程度或密切程度
2、相关性可以应用到所有数据的分析过程中,任何事物之间都是存在一定的联系
3、为了更准确描述变量之间的相关程度,通过计数相关系数来表示,在二元变量的相关分析中用相关系数®表示,而常用的有Pearson相关系数(皮尔逊相关系数) 和Spearman秩相关系数(斯皮尔曼相关系数)
- 相关系数取值范围:-1≤R≤1,R>0为正相关表示两个变量的增长趋势相同,R<0为负相关表示两个变量的增长趋势相反
- 相关性的强弱看相关系数R的绝对值。
- |R|=0,不存在线性关系,|R|=-1,完全线性相关
- |R|≤0.3,极弱线性相关或不存在线性相关
- 0.3<|R|≤0.5,低度线性相关
- 0.5≤|R|≤0.8,显著线性相关
- |R|>0.8,高度线性相关
# 设置cell多行输出from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all' #默认为'last'# 导入相关库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import os
import warningswarnings.filterwarnings('ignore')
os.chdir(r'E:\python_learn\data\python_book_v2\chapter3')
file_name='data5.txt'
data = pd.read_table(file_name,names=list('ABCDEFGHIJ'))
data.head()
A | B | C | D | E | F | G | H | I | J | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 97.45 | 691.56 | 3177.47 | 4635.61 | 25489.35 | 72641.03 | 250230.85 | 1485455.45 | 1485172.77 | 812.46 |
1 | 101.76 | 920.36 | 15768.01 | 3708.48 | 280681.44 | 30220.98 | 6397722.85 | 572076.30 | 571978.86 | 1185.68 |
2 | 98.21 | 894.76 | 8824.03 | 6182.06 | 78489.57 | 53157.32 | 1615678.85 | 1057980.51 | 1058386.64 | 894.41 |
3 | 98.79 | 694.00 | 12996.11 | 2672.94 | 66489.37 | 11927.44 | 1028936.04 | 109382.97 | 60690.05 | 995.97 |
4 | 98.56 | 702.45 | 11696.53 | 4707.07 | 154598.09 | 22076.09 | 3363655.63 | 405832.86 | 118129.15 | 908.55 |
Pearson相关系数 → data.corr(method=‘pearson’)
- pearson相关系数一般用于分析两个连续性变量之间的关系,且要求连续变量的取值服从正态分布。
→pandas的corr()函数可以直接给出数据字段的相关系数矩阵,返各类型之间的相关系数DataFrame表格。
- 参数说明:
- method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}
- pearson:Pearson相关系数来衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性数据便会有误差。
- kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据
- spearman:非线性的,非正太分析的数据的相关系数
- min_periods:样本最少的数据量
- method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}
# 此处假设数据服从正态分布# pearson相关系数矩阵
pearson = round(data.corr(method='pearson',min_periods=1),2) # method默认pearson
pearson
A | B | C | D | E | F | G | H | I | J | |
---|---|---|---|---|---|---|---|---|---|---|
A | 1.00 | -0.04 | 0.27 | -0.05 | 0.21 | -0.05 | 0.19 | -0.03 | -0.02 | 0.95 |
B | -0.04 | 1.00 | -0.01 | 0.73 | -0.01 | 0.62 | 0.00 | 0.48 | 0.51 | -0.04 |
C | 0.27 | -0.01 | 1.00 | -0.01 | 0.72 | -0.00 | 0.65 | 0.01 | 0.02 | 0.28 |
D | -0.05 | 0.73 | -0.01 | 1.00 | 0.01 | 0.88 | 0.01 | 0.70 | 0.72 | -0.05 |
E | 0.21 | -0.01 | 0.72 | 0.01 | 1.00 | 0.02 | 0.91 | 0.03 | 0.03 | 0.21 |
F | -0.05 | 0.62 | -0.00 | 0.88 | 0.02 | 1.00 | 0.03 | 0.83 | 0.82 | -0.05 |
G | 0.19 | 0.00 | 0.65 | 0.01 | 0.91 | 0.03 | 1.00 | 0.03 | 0.03 | 0.18 |
H | -0.03 | 0.48 | 0.01 | 0.70 | 0.03 | 0.83 | 0.03 | 1.00 | 0.71 | -0.04 |
I | -0.02 | 0.51 | 0.02 | 0.72 | 0.03 | 0.82 | 0.03 | 0.71 | 1.00 | -0.02 |
J | 0.95 | -0.04 | 0.28 | -0.05 | 0.21 | -0.05 | 0.18 | -0.04 | -0.02 | 1.00 |
# 用色彩映射表现返回的相关性矩阵的相关性强弱
pearson_abs = np.abs(pearson)
pearson_abs.style.background_gradient(cmap='Blues',axis =1,low=0,high=1)
# cmap:颜色
# axis:映射参考,0为行,1以列
# 用热力图可视化
fig,ax = plt.subplots(1,1,figsize=(8,6))
hot_img = ax.matshow(np.abs(pearson),vmin=0,vmax=1,cmap='Greens')
# vmin=0,vmax=1 设置值域从0-1
fig.colorbar(hot_img) # 生成颜色渐变条(右侧)
ax.set_title('热力图-Pearson相关性矩阵',fontsize=14,pad=12)
ax.set_xticks(range(0,10,1))
ax.set_yticks(range(0,10,1))
ax.set_xticklabels(['x'+str(i) for i in range(len(pearson))],fontsize=12)
ax.set_yticklabels(['x'+str(i) for i in range(len(pearson))],fontsize=12)
Spearman秩相关系数 → data.corr(method=‘spearman’)
- 不服从正态分布的变量、分类或等级变量之间的关联性可采用Spearman秩相关系数来描述,因此Spearman秩相关系数又称为等级相关系数
# Sperman秩相关系数矩阵
spearman = round(data.corr(method='spearman'),2)
spearman
A | B | C | D | E | F | G | H | I | J | |
---|---|---|---|---|---|---|---|---|---|---|
A | 1.00 | 0.11 | 0.30 | 0.01 | 0.20 | -0.01 | 0.18 | -0.03 | -0.03 | 0.94 |
B | 0.11 | 1.00 | 0.03 | 0.78 | 0.03 | 0.69 | 0.02 | 0.54 | 0.58 | 0.10 |
C | 0.30 | 0.03 | 1.00 | 0.01 | 0.74 | 0.02 | 0.70 | 0.03 | 0.02 | 0.32 |
D | 0.01 | 0.78 | 0.01 | 1.00 | 0.03 | 0.92 | 0.02 | 0.76 | 0.77 | -0.00 |
E | 0.20 | 0.03 | 0.74 | 0.03 | 1.00 | 0.04 | 0.95 | 0.04 | 0.03 | 0.20 |
F | -0.01 | 0.69 | 0.02 | 0.92 | 0.04 | 1.00 | 0.03 | 0.84 | 0.84 | -0.02 |
G | 0.18 | 0.02 | 0.70 | 0.02 | 0.95 | 0.03 | 1.00 | 0.03 | 0.02 | 0.18 |
H | -0.03 | 0.54 | 0.03 | 0.76 | 0.04 | 0.84 | 0.03 | 1.00 | 0.72 | -0.05 |
I | -0.03 | 0.58 | 0.02 | 0.77 | 0.03 | 0.84 | 0.02 | 0.72 | 1.00 | -0.03 |
J | 0.94 | 0.10 | 0.32 | -0.00 | 0.20 | -0.02 | 0.18 | -0.05 | -0.03 | 1.00 |
# 用热力图可视化
fig,ax = plt.subplots(1,1,figsize=(8,6))
hot_img = ax.matshow(np.abs(spearman),vmin=0,vmax=1,cmap='Reds')
# vmin=0,vmax=1 设置值域从0-1
fig.colorbar(hot_img) # 生成颜色渐变条(右侧)
ax.set_title('热力图-Pearman相关性矩阵',fontsize=14,pad=12)
ax.set_xticks(range(0,10,1))
ax.set_yticks(range(0,10,1))
ax.set_xticklabels(['x'+str(i) for i in range(len(spearman))],fontsize=12)
ax.set_yticklabels(['x'+str(i) for i in range(len(spearman))],fontsize=12)
- 当数据变量之间的相关性较强的时,说明变量间可能存在共线性相关性,可以采取降维的处理方法,从原有的变量中提取部分特征代替原数据的所有特征。
数据预处理_数据相关性分析相关推荐
- 数据集准备及数据预处理_数据理解和准备–数据集的基础工作
数据集准备及数据预处理 In my previous four articles, I worked on a single variable of a dataset. I have shown e ...
- R 多变量数据预处理_数据科学 | 第3讲 数据清洗与预处理
点击上方蓝字,记得关注我们! 在实际数据挖掘过程中,我们拿到的初始数据,往往存在缺失值.重复值.异常值或者错误值,通常这类数据被称为"脏数据",需要对其进行清洗.另外有时数据的原始 ...
- 数据预处理_数据清理
1.概述 实际的数据库极易受噪声.缺失值和不一致数据的侵扰,因为数据库太大,并且多半来自多个异种数据源.低质量的数据将会导致低质量的挖掘结果.有大量的数据预处理技术: - - 数据清理:可以用来清楚数 ...
- arima 数据预处理_数据预测算法-ARIMA预测
简介 ARIMA: AutoRegressive Integrated Moving Average ARIMA是两个算法的结合:AR和MA.其公式如下: 是白噪声,均值为0, C是常数. ARIMA ...
- CNZZ 移动统计_移动数据统计_移动应用分析_ APP统计
CNZZ 移动统计_移动数据统计_移动应用分析_ APP统计 http://mobile.cnzz.com/help.php?h=Android_SDK_Download_and_Usage_Manu ...
- 竞赛专题 | 数据预处理-如何处理数据中的坑?
点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 为了帮助更多竞赛选手入门进阶比赛,通过数据竞赛提升理论实践能力和团队协作能力.Data ...
- 机器学习项目中的数据预处理与数据整理之比较
要点 在常见的机器学习/深度学习项目里,数据准备占去整个分析管道的60%到80%. 市场上有各种用于数据清洗和特征工程的编程语言.框架和工具.它们之间的功能有重叠,也各有权衡. 数据整理是数据预处理的 ...
- 数据预处理—-(数据探索、数据清理、数据集成、数据规约、数据变换)
数据挖掘概念与技术 定义挖掘目标–>数据取样–>数据探索–>数据预处理–>挖掘建模–>模型评价 第一章.数据 挖掘的数据类型:时间序列,序列,数据流,时间空间数据,多媒体 ...
- 数据预处理Part9——数据降维
文章目录 1. 什么是数据降维? 2. 为什么要进行数据降维? 3. 降维是如何实现的? 4. sklearn中的降维算法 4.1 主成分分析PCA 4.2 因子分析FA 4.3 独立成分分析ICA ...
最新文章
- 在ASP.NET中跨页面实现多选
- 创建响应式布局的优秀网格工具集锦《系列五》
- Java 之 IO 异常的处理【了解】
- IE6、IE7、IE8、Firefox兼容性CSS
- 乐观锁、悲观锁简单分析,回忆旧(新)知识...
- frp后台运行和停止
- 工作三年左右的Java程序员跟大家谈谈从业心得
- Checking battery state… ubuntu
- 你的飞碟在这儿(洛谷-P1200 )
- Visual C#中用WMI控制远程计算机
- 脱离标准文档流(1)---浮动
- java swing 飞机大战游戏 github 免费 开源 公开 源码
- 入侵无盘系统服务器,比有盘还快!梅捷带你体验锐起无盘系统
- c语言补码取反后什么意思,补码为什么取反加一
- js html实体编码转换,字符串js编码转换成实体html编码的方法(防范XSS攻击)
- 单片微型计算机原理和应用答案,《单片微机原理及应用》 试卷A及参考答案
- 多个excel工作簿合并_多个excel工作簿合并到一个工作簿中
- 人工智能与大数据的区别
- 2020年中国水利行业发展状况及未来发展趋势分析[图]
- 关于opencv打开摄像头黑屏的问题