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')
蓝色越深相关性越高,比如第64行, 第13列的数据相关性高一些,深蓝色斜线行列都是同一个特征,所以相关度为1