python資料相關性分析實踐
阿新 • • 發佈:2019-02-12
分析特徵之間的相關性,得到哪個兩個特徵的具有關係,這樣對於後期的資料分析可以提供幫助。
資料來源示例: (每列都是一個特徵,每行為一個使用者)
[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