科研作图-heatmap(二)

1.简介
上次我们简单说了seaborn.heatmap函数,这一次我们将介绍在机器学习中的显示不同特征之间相关性的热力图和Pyheatmap.heatmap用法。在机器学习中我们在筛选有用特征的时候,常常计算一下不同特征的相关性,便于我们去掉相关性强的特征,我们此次用的数据集为sklearn中的breast_cancer数据集。
2.特征之间相关性的热力图
(1)首先我们导入数据和作图的包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt # 导入作图包
import seaborn as sns    # 导入作图包
from sklearn.datasets import load_breast_cancer # 从sklearn导入数据

(2)查看数据

cancer = load_breast_cancer() 
print(cancer.data)  #输出数据的内容
print(cancer.target) #输出数据的标签

(3)查看数据的列名

col_names = list(cancer.feature_names)  #查看数据的列名
print(col_names)
col_names.append('target')
df = pd.DataFrame(np.c_[cancer.data, cancer.target], columns=col_names) #合并数据和标签并存储成DataFrame在df中
df.head() #展示数据的前五条

在这里插入图片描述
(4)查看数据的基本统计学信息

df.describe()

在这里插入图片描述
(5)查看数据每列信息

df.info()

在这里插入图片描述
(6)生成不同特征之间的相关热力图,可以根据颜色筛选出相关性小的特征组合

plt.figure(figsize=(20,10)) 
sns.heatmap(df.corr(), annot=True) #根据特征相关性绘制热力图
plt.show()

在这里插入图片描述
其中看一下df.corr()方法:

DataFrame.corr(method='pearson', min_periods=1)

参数说明:
method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}

df.corr()  # 默认是pearson相关系数
df.corr('kendall') # Kendall Tau相关系数
df.corr('spearman') # spearman秩相关

关于相关系数的数学计算公式这里就不展开写了,以后会慢慢补上。

3. Pyheatmap.heatmap
官方给了两种说明,一是点击图(使用鼠标点点点,然后生成相应的点击图),二是热力图,根据给定x,y数据生成热力图,生成效果如下:
(点击图)在这里插入图片描述
(热力图)
在这里插入图片描述
使用方法如下:
(1)安装-这里通过Pip

pip install pyheatmap

(2) 官方代码例子

import urllib
from pyheatmap.heatmap import HeatMap

def main():

    # download test data
    url = "https://raw.github.com/oldj/pyheatmap/master/examples/test_data.txt"
    sdata = urllib.urlopen(url).read().split("\n")
    data = []
    for ln in sdata:
        a = ln.split(",")
        if len(a) != 2:
            continue
        a = [int(i) for i in a]
        data.append(a)

    # start painting
    hm = HeatMap(data)
    hm.clickmap(save_as="hit.png")
    hm.heatmap(save_as="heat.png")

if __name__ == "__main__":
    main()

(3)其他例子

from pyheatmap.heatmap import HeatMap
import numpy as np
x = [10,20,30,50,40,30,70,80,50,30,45,50]
y = [30,40,50,30,40,80,50,34,45,95,26,33]
data = []
for i in range(0,11):
    tmp = [int(x[i]), int(y[i]),1]
    data.append(tmp)
heat = HeatMap(data)
heat.clickmap(save_as="1.png") #点击图
heat.heatmap(save_as="2.png") #热图

4.总结
这次我们介绍了在机器学习中的显示不同特征之间相关性的热力图和Pyheatmap.heatmap用法,下次我将介绍场景热力图的使用。
5.参考
https://blog.csdn.net/walking_visitor/article/details/85128461
https://blog.csdn.net/sunmingyang1987/article/details/105459104
https://www.kaggle.com/prashant111/lightgbm-classifier-in-python
https://github.com/oldj/pyheatmap
https://blog.csdn.net/weixin_43289135/article/details/104651047

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值