使用pandas的相关matrix

我有一个具有大量特征的数据集,因此分析相关matrix变得非常困难。 我想绘制一个相关matrix,我们使用pandas库中的dataframe.corr()函数。 有没有pandas库提供的内置函数来绘制matrix?

你可以使用matplotlib中的matshow()

plt.matshow(dataframe.corr())

试试这个函数,它也显示相关matrix的variables名称:

 def plot_corr(df,size=10): '''Function plots a graphical correlation matrix for each pair of columns in the dataframe. Input: df: pandas DataFrame size: vertical and horizontal size of the plot''' corr = df.corr() fig, ax = plt.subplots(figsize=(size, size)) ax.matshow(corr) plt.xticks(range(len(corr.columns)), corr.columns); plt.yticks(range(len(corr.columns)), corr.columns); 

Seaborn的热图版本:

 import seaborn as sns corr = dataframe.corr() sns.heatmap(corr, xticklabels=corr.columns.values, yticklabels=corr.columns.values) 

您可以通过从海鸟绘制热图或从pandas散射matrix来观察特征之间的关系。

分散matrix:

 pd.scatter_matrix(dataframe, alpha = 0.3, figsize = (14,8), diagonal = 'kde'); 

如果你想要显示每个特征的偏度,请使用seaborn对图。

 sns.pairplot(dataframe) 

Sns热图:

 import seaborn as sns f, ax = pl.subplots(figsize=(10, 8)) corr = dataframe.corr() sns.heatmap(corr, mask=np.zeros_like(corr, dtype=np.bool), cmap=sns.diverging_palette(220, 10, as_cmap=True), square=True, ax=ax) 

输出将是特征的相关图。 即看到下面的例子。

在这里输入图像说明

食品和洗涤剂之间的相关性很高。 同理:

产品高度相关:

  1. 杂货和洗涤剂。

中等相关产品:

  1. 牛奶和杂货
  2. 牛奶和洗涤剂_纸

低相关产品:

  1. 牛奶和熟食
  2. 冷冻和新鲜。
  3. 冷冻和熟食。

来自Pairplots:您可以从对偶图或散布matrix观察相同的一组关系。 但是从这些我们可以说数据是否是正态分布的。

在这里输入图像说明

注意:以上是从数据中获取的相同graphics,用于绘制热图。