欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python数据相关性分析实践

程序员文章站 2022-04-03 17:53:48
...

分析特征之间的相关性,得到哪个两个特征的具有关系,这样对于后期的数据分析可以提供帮助。

数据源示例: (每列都是一个特征,每行为一个用户)

[10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0]
[4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0]
[3, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0]
[7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
[6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0]
[9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 0]

#-*- coding: utf-8 -*-

import pandas as pd
import numpy as np
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import seaborn as sns

datas = []
for line in open('pre_matrix.txt'):
    datas.append(eval(line))
datas = np.array(datas)
#print(datas)

new_data = pd.DataFrame(datas)
#datas.corr()[u'健身'] #只显示“健身”与其他特征的相关系数
#datas[u'健身'].corr(datas[u'教育']) #计算“健身”与“教育”的相关系数
corr = new_data.corr()

#corr.to_csv('corr.txt')

#保存图片
f, ax= plt.subplots(figsize = (14, 10))
sns.heatmap(corr,cmap='RdBu', linewidths = 0.05, ax = ax)
# 设置Axes的标题
ax.set_title('Correlation between features')
f.savefig('corr.png', dpi=100, bbox_inches='tight')

python数据相关性分析实践

蓝色越深相关性越高,比如第64行, 第13列的数据相关性高一些,深蓝色斜线行列都是同一个特征,所以相关度为1