精华内容
下载资源
问答
  • 数据科学最重要的技能之一就是数据可视化,在数据建模过程中,我们比较关心数据之间的相关性,而观察数据相关性我们使用最多的技能之一就是相关性矩阵。数据相关性矩阵可以让我们对数据之间的关联关系有更为直观的...

            数据科学最重要的技能之一就是数据可视化,在数据建模过程中,我们比较关心数据之间的相关性,而观察数据相关性我们使用最多的技能之一就是相关性矩阵。数据相关性矩阵可以让我们对数据之间的关联关系有更为直观的理解。这里简单汇总一下使用Python绘制传统相关性矩阵/下三角相关性矩阵/重点相关性矩阵的代码

    1. 传统相关性矩阵

    图片

    import pandas            as pd
    import seaborn           as sns
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    df = pd.read_csv('./data/melb_data.csv')
    # Calculate pairwise-correlation
    matrix = df.corr()
    cmap = sns.diverging_palette(250, 15, s=75, l=40, n=9, center="light", as_cmap=True)
    
    plt.figure(figsize=(12, 8)) 
    sns.heatmap(matrix,  center=0, annot=True,
                 fmt='.2f', square=True, cmap=cmap)

    2. 下三角相关性矩阵

    图片

    import numpy as np
    # 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) 
    

    3. 重点相关性矩阵(即只画出相关性指数大于阈值的那部分)

    图片

    # 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) 

     

     

    展开全文
  • 原标题:R语言学习笔记之相关性矩阵分析及其可视化感谢关注天善智能,走好数据之路↑↑↑欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!...

    原标题:R语言学习笔记之相关性矩阵分析及其可视化

    感谢关注天善智能,走好数据之路↑↑↑

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

    对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

    作者简介:

    taoyan:伪码农,R语言爱好者,爱开源。

    个人博客: https://ytlogos.github.io/

    计算相关矩阵

    R内置函数 cor() 可以用来计算相关系数:cor(x, method = c("pearson", "kendall", "spearman")),如果数据有缺失值,用cor(x, method = "pearson", use = "complete.obs")。

    导入数据

    如果数据格式是txt,用my_data

    csv则用my_data

    data(mtcars)#加载数据集

    mydata

    head(mydata, 6)#查看数据前6行

    计算相关系数矩阵

    res

    round(res, 2)#保留两位小数

    cor()只能计算出相关系数,无法给出显著性水平p-value,Hmisc包里的rcorr()函数能够同时给出相关系数以及显著性水平p-value。rcorr(x, type = c(“pearson”,“spearman”))。

    The output of the function rcorr() is a list containing the following elements : - r : the correlation matrix - n : the matrix of the number of observations used in analyzing each pair of variables - P : the p-values corresponding to the significance levels of correlations.

    library(Hmisc)#加载包

    res2

    res2

    #可以用res2$r、res2$P来提取相关系数以及显著性p-value

    res2$r

    res2$P

    如何将相关系数以及显著性水平p-value整合进一个矩阵内,可以自定义一个函数flattenCorrMatrix。

    # ++++++++++++++++++++++++++++

    # flattenCorrMatrix

    # ++++++++++++++++++++++++++++

    # cormat : matrix of the correlation coefficients

    # pmat : matrix of the correlation p-values

    flattenCorrMatrix

    ut

    column = rownames(cormat)[col(cormat)[ut]], cor =(cormat)[ut], p = pmat[ut] )

    }

    举个栗子

    ---

    res3

    flattenCorrMatrix(res3$r, res3$P)

    可视化相关系数矩阵

    有不同的方法来可视化,主要有下面四种:

    symnum() function

    corrplot() function to plot a correlogram

    scatter plots

    heatmap

    ##symnum() function主要用法:

    symnum(x, cutpoints = c(0.3, 0.6, 0.8, 0.9, 0.95), symbols = c("

    “,”.“,”,“,”+“,”*“,”B“),

    abbr.colnames = TRUE) #很好理解,0-0.3用空格表示, 0.3-0.6用.表示, 以此类推。

    举个栗子

    symnum(res, abbr.colnames = FALSE)#abbr.colnames用来控制列名

    ##corrplot() function to plot a correlogram这个函数来自于包corrplot(),通过颜色深浅来显著相关程度。参数主要有:

    type: “upper”, “lower”, “full”,显示上三角还是下三角还是全部

    order:用什么方法,这里是hclust

    tl.col (for text label color) and tl.srt (for text label string rotation) :控制文本颜色以及旋转角度

    library(corrplot)#先加载包

    corrplot(res, type = "upper", order = "hclust", tl.col = "black", tl.srt = 45)

    ##也可以结合显著性绘制

    # Insignificant correlations are leaved blank

    corrplot(res2$r, type="upper", order="hclust", p.mat = res2$P, sig.level = 0.01, insig = "blank")

    ##Use chart.Correlation(): Draw scatter plotschart.Correlation()来自于包PerformanceAnalytics

    library(PerformanceAnalytics)#加载包

    chart.Correlation(mydata, histogram=TRUE, pch=19)

    解释一下上图:

    对角线上显示的是分布图

    左下部显示的是具有拟合线的双变量散点图

    右上部显示的是相关系数以及显著性水平

    ##heatmap()

    col

    heatmap(x = res, col = col, symm = TRUE)#symm表示是否对称

    责任编辑:

    展开全文
  • 相关性矩阵问题的ADMM算法实现。 ADMM 是交替方向乘子算法, 英文全称是 Alternating Direction Method of Multipliers,本代码文件利用ADMM算法求解了统计中的相关性矩阵问题。更多信息可见http://maths.nju.edu.cn/...
  • 主要介绍了python seaborn heatmap可视化相关性矩阵实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 用于序列间的相关性矩阵计算,其中用到的其他语言包需自行下载,主题可自行调整
  • 方法import pandas as pdimport numpy as npimport seaborn as snsdf = pd.DataFrame(np.random.randn(50).reshape(10,5))corr = df.corr()sns.heatmap(corr, cmap='Blues', annot=True)将矩阵型简化为对角矩阵型:...

    方法import pandas as pd

    import numpy as np

    import seaborn as sns

    df = pd.DataFrame(np.random.randn(50).reshape(10,5))

    corr = df.corr()

    sns.heatmap(corr, cmap='Blues', annot=True)

    将矩阵型简化为对角矩阵型:mask = np.zeros_like(corr)

    mask[np.tril_indices_from(mask)] = True

    sns.heatmap(corr, cmap='Blues', annot=True, mask=mask.T)

    补充知识:Python【相关矩阵】和【协方差矩阵】

    相关系数矩阵

    pandas.DataFrame(数据).corr()import pandas as pd

    df = pd.DataFrame({

    'a': [11, 22, 33, 44, 55, 66, 77, 88, 99],

    'b': [10, 24, 30, 48, 50, 72, 70, 96, 90],

    'c': [91, 79, 72, 58, 53, 47, 34, 16, 10],

    'd': [99, 10, 98, 10, 17, 10, 77, 89, 10]})

    df_corr = df.corr()

    # 可视化

    import matplotlib.pyplot as mp, seaborn

    seaborn.heatmap(df_corr, center=0, annot=True, cmap='YlGnBu')

    mp.show()

    协方差矩阵

    numpy.cov(数据)import numpy as np

    matric = [

    [11, 22, 33, 44, 55, 66, 77, 88, 99],

    [10, 24, 30, 48, 50, 72, 70, 96, 90],

    [91, 79, 72, 58, 53, 47, 34, 16, 10],

    [55, 20, 98, 19, 17, 10, 77, 89, 14]]

    covariance_matrix = np.cov(matric)

    # 可视化

    print(covariance_matrix)

    import matplotlib.pyplot as mp, seaborn

    seaborn.heatmap(covariance_matrix, center=0, annot=True, xticklabels=list('abcd'), yticklabels=list('ABCD'))

    mp.show()

    补充

    协方差

    相关系数

    EXCEL也能做

    CORREL函数

    以上这篇python seaborn heatmap可视化相关性矩阵实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    展开全文
  • 今天学习下相关性矩阵的可视化,可以用来可视化相关性矩阵的包有corrplot包、corrgram包、GGally包、ggcorrplot包等,这些包在大部分情况下都可以满足需求。今天先来学习corrplot包的使用,后面几天有空会详细讲解下...

    今天学习下相关性矩阵的可视化,可以用来可视化相关性矩阵的包有corrplot包、corrgram包、GGally包、ggcorrplot包等,这些包在大部分情况下都可以满足需求。今天先来学习corrplot包的使用,后面几天有空会详细讲解下另外三个包。


    目  录

    • 1. 安装和加载R包

    • 2. 加载数据集

    • 3. 数据处理

      • 3.1 转换矩阵

      • 3.2 计算相关系数

    • 4. 简单绘制

    • 5. 自定义参数

      • 5.1 可视化方法

      • 5.2 矩阵显示类型

      • 5.3 绘制组合图形

      • 5.4 相关矩阵排序

      • 5.5 设置矩阵颜色

      • 5.6 设置文本标签属性

      • 5.7 设置图例属性

      • 5.8 设置图形外观

      • 5.9 设置显著水平


    1. 安装和加载R包

    corrplot包可以用来可视化相关矩阵,这个包中的参数很多,可以很详细的自定义图形。

    第一步先安装和加载好R包。

    install.packages("corrplot"# 安装包
    library(corrplot) # 加载包

    2. 加载数据集

    使用mtcars内置数据集进行演示,先加载包,看下数据集的信息。

    data(mtcars) # 加载数据集
    head(mtcars, 10) # 查看数据集前10行
    065e9ad736a3937f08d2b2e9e58704a9.png

    3. 数据处理

    在使用mtcars数据集绘制图形前需要对数据集进行一些简单处理。

    3.1 转换矩阵

    绘图前可以将数据集转换为矩阵,当然,我也看到很多推文没有将数据集转换成矩阵,一样可以绘制图形,这一步也许可以省略。

    mtcars # 转化为矩阵
    32a0a1804a75846d839a6cc54be30fd0.png

    3.2 计算相关系数

    在绘制图形前,先计算下相关系数,可以使用cor()函数,函数中有"pearson", "kendall", "spearman"三种方法计算,我们选择默认的"pearson"方法即可。

    cor_mtcars 'pearson')
    cor_mtcars
    b3aeb24e634d17db8766e6e8a23b989d.png

    4. 简单绘制

    先简单绘制个基本图形,我们在后面慢慢调整参数自定义图形。

    corrplot(cor_mtcars)
    b810bc11b75e393e809a0b01bccdcd97.png

    如上图所示,一行代码就简单绘制出了图形。

    在上图中,正相关用蓝色显示,负相关用红色显示。颜色强度和圆圈的大小与相关系数成正比。

    下面我们开始慢慢调整参数设置图形。

    5. 自定义参数

    5.1 可视化方法

    在上图中,可视化的方法method参数默认为"circle",也就是圆形显示。还可以使用"square","ellipse","number","pie","shade"和"color"显示,分别表示方形、椭圆形、数字、饼图、阴影、颜色。

    layout(matrix(1:623)) # 分割绘图设备

    corrplot(cor_mtcars, method = "square"# 方形
    corrplot(cor_mtcars, method = "ellipse"# 椭圆形
    corrplot(cor_mtcars, method = "number"# 数字
    corrplot(cor_mtcars, method = "pie"# 饼图
    corrplot(cor_mtcars, method = "shade"# 阴影
    corrplot(cor_mtcars, method = "color"# 颜色
    1822e1d53541faafc97d04fc7ecbea8d.png

    5.2 矩阵显示类型

    在基础图形中,矩阵显示为全矩阵显示,可以设置type参数为"lower"和"upper",来分别显示上三角和下三角矩阵。

    layout(matrix(1:212)) # 分割绘图设备

    corrplot(cor_mtcars, type = "lower"# 下三角矩阵
    corrplot(cor_mtcars, type = "upper"# 上三角矩阵
    0a11a4500a9a5f15af9a64808d763b24.png

    5.3 绘制组合图形

    在上面我们可以绘制出上三角和下三角矩阵图形,然后可以使用add参数来绘制组合图形。

    add为TRUE则可以图形添加到现有图形中。

    corrplot(cor_mtcars, method = "square"
             type = "lower"# 下三角矩阵
    corrplot(cor_mtcars, method = "pie"
             type = "upper", add = TRUE# 上三角矩阵
    00cbcd3f38343c320e2fdac852d61aa3.png

    如上图所示,先绘制一个下三角图形,再将上三角图形添加到图形上。

    5.4 相关矩阵排序

    在corrplot包中,使用order参数设置相关性矩阵排序,排序方法有original(默认)、AOE、FPC、hclust、alphabet等5种。

    我们看看其他四种排序是什么样的。

    layout(matrix(1:422)) # 分割绘图设备

    corrplot(cor_mtcars, order = "AOE"# 特征向量角序
    corrplot(cor_mtcars, order = "FPC"# 第一主成分顺序
    corrplot(cor_mtcars, order = "hclust"# 按层次聚类
    corrplot(cor_mtcars, order = "alphabet"# 按字母顺序
    f1a565f87d7579a91505fc343a5ac92d.png

    当order为"hclust"按层次聚类时,层次聚类方法也有几种,有"ward", "ward.D", "ward.D2", "single", "complete", "average", "mcquitty", "median"或"centroid"等,可以使用hclust.method参数来指定。

    同时也可以设置addrect参数来设置可视化矩阵上聚类矩形的数量,为NULL时默认不添加矩形。

    可以使用rect.col、rect.lwd参数来设置聚类矩形的颜色和线宽。

    layout(matrix(1:623)) # 分割绘图设备

    corrplot(cor_mtcars, order = "hclust"# 按层次聚类
             hclust.method = "ward.D2"#层次聚类方法
    corrplot(cor_mtcars, order = "hclust"
             hclust.method = "median"
    corrplot(cor_mtcars, order = "hclust"
             hclust.method = "single"
    corrplot(cor_mtcars, order = "hclust"
             hclust.method = "complete"
             addrect = 2# 设置聚类矩形的数量
    corrplot(cor_mtcars, order = "hclust"
             hclust.method = "average"
             addrect = 2, rect.col = "red")  # 设置聚类矩形的颜色
    corrplot(cor_mtcars, order = "hclust"
             hclust.method = "mcquitty"
             addrect = 4, rect.lwd = 3# 设置聚类矩形的线宽
    21532f9cbc5b81f138895bcabd744d6b.png

    5.5 设置矩阵颜色

    使用col参数来设置颜色,还可以使用bg参数设置背景颜色。

    layout(matrix(1:313)) # 分割绘图设备
    col = colorRampPalette(c('blue''white''red'))(40)
    corrplot(cor_mtcars, method = "color")
    corrplot(cor_mtcars, method = "color", col = col) # 矩阵颜色
    corrplot(cor_mtcars, method = "circle", bg = "grey"# 背景颜色
    084cb8a0d094846c17ef4a6c95b2789f.png

    还可以设置其他的颜色。

    layout(matrix(1:623)) # 分割绘图设备
    corrplot(cor_mtcars, order = "hclust", col = heat.colors(100))
    corrplot(cor_mtcars, order = "hclust", col = terrain.colors(100))
    corrplot(cor_mtcars, order = "hclust", col = cm.colors(100))
    corrplot(cor_mtcars, order = "hclust", col = gray.colors(100))
    library(RColorBrewer)
    corrplot(cor_mtcars, order = "hclust", col = brewer.pal(n = 8, name = "RdYlBu"))
    corrplot(cor_mtcars, col = brewer.pal(n = 8, name = "PuOr"))
    6cd6ba2c722a07456c122cebee44c4b5.png

    5.6 设置文本标签属性

    layout(matrix(1:422)) # 分割绘图设备
    corrplot(cor_mtcars, tl.pos = "n"# 不显示文本标签
    corrplot(cor_mtcars, tl.pos = "lt"# 在左边和顶部显示
    corrplot(cor_mtcars, tl.cex = 1.5# 设置文本标签的缩放倍数
    corrplot(cor_mtcars, tl.col = "black"# 设置文本标签的颜色
    2b79df6a5d3290c9a04a40eb408f1d26.png

    5.7 设置图例属性

    颜色标签,也就是图形旁边的图例,可以使用cl.pos、cl.cex、cl.ratio、cl.align.text、cl.offset等参数来设置。

    5.7.1 设置图例位置

    corrplot(cor_mtcars, cl.pos = "n"# 不显示图例
    corrplot(cor_mtcars, cl.pos = "r"# 图例放在右边
    corrplot(cor_mtcars, cl.pos = "b"# 图例放在底部
    739b65f5802c0b8868f9b532d094f3b6.png

    5.7.2 设置图例文本属性

    corrplot(cor_mtcars, cl.cex = 1.5# 设置图例中数字标签的缩放倍数
    corrplot(cor_mtcars, cl.ratio = 2.0# 数字,设置图例的宽度
    corrplot(cor_mtcars, cl.align.text = "l"# 字符,设置图例中的数字标签的对齐方式
    990e81045a03ecb2b3228a98afaa9dab.png

    5.8 设置图形外观

    可以设置图形的标题、四边间距、网格线等。

    layout(matrix(1:422)) # 分割绘图设备

    corrplot(cor_mtcars, mar = c(2.22.6,2.8,1.9)) # 设置图形四边间距
    corrplot(cor_mtcars, addgrid.col = "black"# 设置网格线
    corrplot(cor_mtcars, outline = "black"# 设置圆形、椭圆形等外边框
    corrplot(cor_mtcars, tl.pos = "n"
             title  = "R语言统计与绘图 公众号"# 添加图形标题
    efe9942e4a3bf2ce403be5bb0eadbefd.png

    5.9 设置显著水平

    可以在图形上显示显著性水平。

    layout(matrix(1:422)) # 分割绘图设备
    res1 .95)

    corrplot(cor_mtcars, p.mat = res1$p, 
             sig.level = .2# 设置p值>0.2的不显示
    corrplot(cor_mtcars, p.mat = res1$p, 
             sig.level = .05# 设置p值>0.05的不显示
    corrplot(cor_mtcars, p.mat = res1$p, 
             insig = "blank"# 擦除p值>0.05的相关系数,设置为空白
    corrplot(cor_mtcars, p.mat = res1$p, 
             insig = "p-value")
    6d6683f12563c318a57633b345897b87.png

    参考资料

    1. corrplot()函数帮助文件

    既往专辑
    0608ae052ce9a35e0290ca09f54a2c34.png

    f00eb7bbbb707c06d59cf646a15b388a.png

    3bd64765472290a13683a9533e4035fc.png

    c20be4a56e9518c2e06aa0ca0d2223a8.png

    展开全文
  • 先回答问题,一般来说,在这里求协方差矩阵和相关系数矩阵都是可以的,因为在你做到这一步时,两者一般是相等的。因为我们在做FA或者PCA时,由于各个变量的量纲一般不一致,所以需要提前对原始数据进行标准化。而...
  • 代码是python编写的热力图矩阵,可以实现多变量之间的相关性分析,以此用于下一步操作。所用的库有import seaborn as sns import matplotlib.pyplot as plt import numpy as np import pandas as pd
  • python 采用seaborn绘制相关性矩阵 代码: import matplotlib.pyplot as plt import numpy as np import seaborn as sns # 初始化参数 sns.set() uniform_data = np.random.rand(3, 3) x = np.arange(1,4,1) y = np...
  • 今天学习下相关性矩阵的可视化,可以用来可视化相关性矩阵的包有corrplot包、corrgram包、GGally包、ggcorrplot包等,这些包在大部分情况下都可以满足需求。今天先来学习corrplot包的使用,后面几天有空会详细讲解下...
  • python seaborn heatmap可视化相关性矩阵

    千次阅读 2019-06-18 17:15:43
    python seaborn heatmap可视化相关性矩阵方法 方法 import pandas as pd import numpy as np import seaborn as sns df = pd.DataFrame(np.random.randn(50).reshape(10,5)) corr = df.corr() sns.heatmap(corr, ...
  • 我有两个矩阵p(500x10000)和h(500x256),我需要用Python计算相关性。在在Matlab中,我使用corr()函数没有任何问题:myCorrelation=corr(p,h)在numpy中,我尝试了np.corrcoef( p, h ):File "/usr/local/lib/python...
  • 文章目录数据概览相关性矩阵获取数据可视化 数据概览 # 以波士顿房价数据为例 import pandas as pd train=pd.read_csv('/kaggle/input/house-prices-advanced-regression-techniques/train.csv') train.head <...
  • pandas一行代码计算相关性矩阵的条件概率计算A列各属性发生时B列各属性发生的概率 计算A列各属性发生时B列各属性发生的概率 一行代码: pB_A = pd.crosstab(df['A'], df['B'], margins=True).apply(lambda x:x/x[-1]...
  • python相关性矩阵

    千次阅读 2019-05-30 10:50:53
    seaborn作一个看着比较舒服的相关性图 import seaborn as sns sns.heatmap(corrmat,vmax=0.8,cmap='RdBu_r',square=True,center=0) 图片效果如下,正向为红,反向为蓝
  • R语言相关性矩阵绘图

    2021-04-21 16:03:10
    corrgram(Data[,3:9], lower.panel=panel.shade, upper.panel=panel.pie, text.panel=panel.txt, main="相关系数图") 下面板通过阴影颜色的深浅表示相关性的强弱,阴影中的斜线若呈左下至右上则表示正相关,若呈...
  • PyTorch计算局部相关性矩阵

    千次阅读 2019-09-25 11:47:03
    对于给定的数据,其尺寸为N,C,H,W,现在想要计算其局部的相关性,也就是说特定尺寸范围内,例如2x2大小的区域内任意两点之间的点积。 试写出相关的代码。 问题分析 计算局部相关性,而且这里也提到是说使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,541
精华内容 616
关键字:

相关性矩阵