数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

这篇具有很好参考价值的文章主要介绍了数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

​ 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。

​ 因此,数据挖掘在人工智能和大数据的时代下显得尤为重要。本人在工作中也会经常为数据挖掘方面的任务头疼,所以想将所见、所学、所整理的数据挖掘学习资料进行总结。

​ 首先,就来说一下数据挖掘最常见的手段:相关性分析

一、什么是相关性分析

​ 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。相关性不等于因果性,也不是简单的个性化,相关性所涵盖的范围和领域几乎覆盖了我们所见到的方方面面,相关性在不同的学科里面的定义也有很大的差异。

二、常见的相关性分析方法

​ 常见的相关性分析方法有三种:Pearson相关系数、Spearman等级相关系数和Kendall相关系数。现实场景中使用Pearson相关系数的情况比较多。

相关分析系数 适用场景 备注
Pearson 定量数据,数据满足正态分布 正态图可查看正态性,散点图展示数据关系
Spearman 定量数据,数据不满足正态分布 正态图可查看正态性,散点图展示数据关系
Kendall 定量数据一致性判断 通常用于评分数据一致性水平研究【非关系研究】
如评委打分,数据排名等

数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

三、Pearson相关系数

​ Pearson相关性系数可以看做是升级版的欧式距离平方,因为它提供了对于变量取值范围不同的处理步骤。因此对不同变量间的取值范围没有要求,最后得到的相关性所衡量的是趋势,而不同变量量纲上的差别在计算过程中去掉了,等价于z-score标准化。【源自:如何理解皮尔逊相关系数(Pearson Correlation Coefficient)?】

使用pandas对数据做Pearson相关性分析

import pandas  as pd
import numpy   as np
import matplotlib.pyplot as plt
import seaborn as sns

# 1.造数据
df = pd.DataFrame()
df["x"] = np.random.uniform(-2, 2, 1_000_000)
df["error"] = np.random.uniform(-0.5, 0.5, 1_000_000)
df["y"] = df["x"] * df["x"] + df["error"]
df["y_perfect"] = df["x"] * df["x"]

# 2.相关分析热力图可视化, df.corr()默认参数为pearson
plt.figure(figsize=[10, 6])
sns.heatmap(df.corr(), vmin=0, vmax=1, cmap="Reds", linewidths=0.5, annot=True)
plt.show()

数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

四、Spearman等级相关系数

4.1 什么是等级相关

等级相关,也称为秩相关,属于非参数统计方法,但对原变量的分布不作要求。适用于那些不服从正态分布的数据,还有总体分布未知和原始数据用等级表示的数据。

4.2 为什么要运用等级相关?

实际中,如果遇到定类变量或者定序变量的“相关系数”,就需要用到Spearman(斯皮尔曼)等级相关系数和Kendall(肯德尔)的tau相关系数。

4.3 使用pandas对数据做Spearman相关性分析

import pandas  as pd
import numpy   as np
import matplotlib.pyplot as plt
import seaborn as sns

# 1.造数据
df = pd.DataFrame()
df["x"] = np.random.uniform(-2, 2, 1_000_000)
df["error"] = np.random.uniform(-0.5, 0.5, 1_000_000)
df["y"] = df["x"] * df["x"] + df["error"]
df["y_perfect"] = df["x"] * df["x"]

# 2.相关分析热力图可视化, df.corr() method=spearman指定系数
plt.figure(figsize=[10, 6])
sns.heatmap(df.corr(method='spearman'), vmin=0, vmax=1, cmap="Reds", linewidths=0.5, annot=True)
plt.show()

数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

五、Kendall相关系数

Kendall协调系数,也称作Kendall和谐系数,或Kendall一致性系数。通常用于比较多组数据的一致性程度

kendall 相关是反映顺序变量之间的相关程度的量,使用该相关分析方法时不需要变量所在的总体一定要呈正态分布,也不需要样本容量大于30,可见,Kendall相关归属于非参数检验

使用pandas对数据做Kendall相关性分析

import pandas  as pd
import numpy   as np
import matplotlib.pyplot as plt
import seaborn as sns

# 1.造数据
df = pd.DataFrame()
df["x"] = np.random.uniform(-2, 2, 1_000_000)
df["error"] = np.random.uniform(-0.5, 0.5, 1_000_000)
df["y"] = df["x"] * df["x"] + df["error"]
df["y_perfect"] = df["x"] * df["x"]

# 2.相关分析热力图可视化, df.corr() method=kendall指定系数
plt.figure(figsize=[10, 6])
sns.heatmap(df.corr(method='kendall'), vmin=0, vmax=1, cmap="Reds", linewidths=0.5, annot=True)
plt.show()

数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

六、下三角相关性矩阵

相关性矩阵绘制的是两两变量之间的相关性,所以是一个对称的矩阵,所以只需保留上三角矩阵或者下三角矩阵的内容即可。

import pandas  as pd
import numpy   as np
import matplotlib.pyplot as plt
import seaborn as sns

# 1.造数据
df = pd.DataFrame()
df["x"] = np.random.uniform(-2, 2, 1_000_000)
df["error"] = np.random.uniform(-0.5, 0.5, 1_000_000)
df["y"] = df["x"] * df["x"] + df["error"]
df["y_perfect"] = df["x"] * df["x"]

# 2.下三角相关矩阵热力图
plt.figure(figsize=[10, 6])
matrix = df.corr()
cmap = sns.diverging_palette(250, 15, s=75, l=40, n=9, center="light", as_cmap=True)
# mask掉上三角部分
mask = np.triu(np.ones_like(matrix, dtype=bool))
plt.figure(figsize=(12, 8))
sns.heatmap(matrix,  mask=mask, center=0, annot=True, fmt='.2f', square=True, cmap=cmap) 
plt.show()

数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

七、重点相关性矩阵

在相关矩阵热力图中,我们可以依据颜色的深浅来判别特征之间的强弱相关性,但是在实际场景中我们只想关注相关性较高的那块,可以通过过滤来实现。

import pandas  as pd
import numpy   as np
import matplotlib.pyplot as plt
import seaborn as sns

# 1.造数据
df = pd.DataFrame()
df["x"] = np.random.uniform(-2, 2, 1_000_000)
df["error"] = np.random.uniform(-0.5, 0.5, 1_000_000)
df["y"] = df["x"] * df["x"] + df["error"]
df["y_perfect"] = df["x"] * df["x"]

# 2.重点相关性矩阵热力图
plt.figure(figsize=[10, 6])
matrix = df.corr()
cmap = sns.diverging_palette(250, 15, s=75, l=40, n=9, center="light", as_cmap=True)
# mask掉上三角 & 小于某个阈值的值
mask1 = np.triu(np.ones_like(matrix, dtype=bool))
mask2 = np.abs(matrix) <= 0.1
mask = mask1 | mask2

plt.figure(figsize=(12, 8))
sns.heatmap(matrix, mask=mask, center=0, annot=True, fmt='.2f', square=True, cmap=cmap)
plt.show()

数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

八、参考资料:

【知乎】皮尔逊相关性分析怎么看?

【知乎】斯皮尔曼等级相关(Spearman’s correlation coefficient for ranked data)

【知乎】Spearman等级相关

【微信公众号-kaggle竞赛宝典】特征相关性挖掘神器-线性非线性关系一键挖掘!文章来源地址https://www.toymoban.com/news/detail-432056.html

到了这里,关于数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【hive】相关性函数进行相关性分析

    在Hive SQL中,使用类似的相关性函数进行相关性分析。常见的相关性函数包括CORR、COVAR_POP、COVAR_SAMP、STDDEV_POP、STDDEV_SAMP等。 举个例子,假设有一个表格sales,其中包含两列数据 sales_amt 和 advertising_amt ,我们可以使用CORR函数来计算这两列数据的相关性: 这将返回一个值,表示

    2024年02月21日
    浏览(20)
  • 表达矩阵任意两个基因相关性分析 批量相关性分析 tcga geo 矩阵中相关性强的基因对 基因相关性 ecm matrisome与gpx3

    使用场景 1.已经确定研究的基因,但是想探索他潜在的功能,可以通过跟这个基因表达最相关的基因来反推他的功能,这种方法在英语中称为 guilt of association,协同犯罪 。 2.我们的注释方法依赖于TCGA大样本,既然他可以注释基因,那么任何跟肿瘤相关的基因都可以被注释,

    2024年02月01日
    浏览(27)
  • 常见的相关性分析

    方差分析和相关性分析都是描述特征之间的关系的统计方法,但它们关注的方面略有不同。 方差分析主要用于研究一个或多个自变量对因变量的影响,即研究因素之间的差异性。通过比较不同组之间的方差,可以确定哪些因素对结果变量的影响比较重要,以及不同组之间的显

    2024年02月11日
    浏览(19)
  • 【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析

    目录 1 描述性统计(Descriptive Statistics) 2 数据分组和聚合 3 数据透视表 4 相关性分析

    2024年02月07日
    浏览(20)
  • 相关性分析和热图绘制

    一、什么是相关性分析? 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。在组学测序(如转录组)中需设置多个生物学重复,而对多个生物学重复

    2024年02月10日
    浏览(20)
  • 数学建模:相关性分析

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 Pearson Spearman Kendall tua-b t检验(t-test)临界值表-t检验表.xls T检验代码: myTtest005.m 相关性分析及SPSS软件操作.pdf

    2024年02月09日
    浏览(19)
  • 机器学习案例:运营商客户流失的数据分析 #数据去重#数据分组整合#缺失值处理#相关性分析#样本平衡#决策树、随机森林、逻辑回归

    前提: 随着业务快速发展、电信市场的竞争愈演愈烈。如何最大程度地挽留在网用户、吸取新客户,是电信企业最 关注的问题之一。 客户流失 会给企业带来一系列损失,故在发展用户每月增加的同时,如何挽留和争取更多 的用户,也是一项非常重要的工作。 能否利用大数

    2024年02月08日
    浏览(28)
  • Pearson相关性分析& plot绘图(相关性系数柱状图、绘制非空值数量柱状图)

    Pearson相关性分析是一种用于检测两个变量之间线性关系强度的统计方法,其结果介于-1和1之间。一个相关系数为1表示完全正相关,-1表示完全负相关,0则表示没有线性关系。 Pearson相关性分析假设数据来自正态分布,并且对异常值敏感。

    2024年02月09日
    浏览(17)
  • 数据的特征分析及房价增幅与M2增幅的相关性案例(axis=1为横向,axis=0为纵向)

    .sort_index()方法在指定轴上根据 索引 进行排序,默认升序 .sort_index(axis=0, ascending=True) axis=0 表示的是纵轴 ascending表示是否为递增排序,默认为true  axis为1  这个by是根据你哪个轴的索引进行排序   NaN统一放到排序末尾 我在学习时经常用到axis=0或1,那么axis=0或者1到底是什么

    2023年04月08日
    浏览(24)
  • 数学建模-相关性分析(Matlab)

     注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231   //清风数学建模 连续数据、正态分布、线性关系三者同时满足优先用。 一般处理这种

    2024年02月07日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包