pandas数据处理基础之变量相关性分析

1.各数值变量的相关性分析,绘制相关性矩阵的热力图,矩阵只是数值型

import seaborn as sns
corrmat = data_train.corr() ##corrmat是相关性矩阵
f, ax = plt.subplots(figsize=(20, 9))##绘制画布
sns.heatmap(corrmat, vmax=0.8, square=True) ##得到各特征图的热力图

pandas数据处理基础之变量相关性分析_第1张图片

像素块越红表示两者之间相关性越强,也可以查看corrmat变量查询具体数值。我们可以很清楚地看到与“SalePrice”相关性很强的有:

  • OverallQual:总评价
  • YearBuilt:建造年份
  • ToatlBsmtSF:地下室面积
  • 1stFlrSF:一楼面积
  • GrLiveArea:生活区面积?
  • FullBath:浴室?what。。。到底什么意思,知道的麻烦说一下
  • TotRmsAbvGrd:总房间数(不包括浴室)
  • GarageCars:车库可容纳车辆数
  • GarageArea:车库面积

2.对非数值型变量预处理之后进行相关性分析

上面的矩阵只是数值型的,像Neighborhood这种离散型数据则没有参与计算,所以下面尝试着使用sklearn来对这些特征进行处理。

from sklearn import preprocessing
import matplotlib.pyplot as plt
import seaborn as sns
f_names = ['CentralAir', 'Neighborhood'] #'CentralAir', 'Neighborhood'这两列数据都不是数值型数据
##进行数值化之后进行处理
for x in f_names:
    label = preprocessing.LabelEncoder()
    data_train[x] = label.fit_transform(data_train[x])
corrmat = data_train.corr()
f, ax = plt.subplots(figsize=(20, 9)) ##绘制画布
sns.heatmap(corrmat, vmax=0.8, square=True)##绘制相关矩阵的热力图

pandas数据处理基础之变量相关性分析_第2张图片

 

3.显示和主变量相近的十个变量的关系矩阵

  • annot: 默认为False,为True的话,会在格子上显示数字
  • vmax, vmin: 热力图颜色取值的最大值,最小值,默认会从data中推导
import matplotlib.pyplot as plt
import seaborn as sns
k  = 10 # 关系矩阵中将显示10个特征
cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index ##显示和saleprice相近的十个关系变量矩阵
cm = np.corrcoef(data_train[cols].values.T)
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values)
plt.show()

 

pandas数据处理基础之变量相关性分析_第3张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Python数据分析处理)