关于seaborn.pairplot 的笔记
- 参考自seaborn.pairplot
- 自己对这个统计图形的思考
为什么是pairplot
pairplot绘制的是成对的变量关系图表。这就说明,我们在做相关的数据分析探索的时候,用seaborn.pairplot()不仅可以绘制特征变量和预测变量
关系,还可以绘制特征变量
间的关系。
绘制函数
以最常见的机器学习数据集House Prices Prediction作为样例,详见Kaggle
from __future__ import print_function, division
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
import pandas as pd
train_file = './data/train.csv'
df_train = pd.read_csv(train_file)
## 我们已经通过heatmap找到与'SalePrices'相关系数大于0.5的变量,
## 同时经过一定的分析删除了一些变量后剩余的变量。
sns.set()
cols = ['SalePrice', 'OverallQual', 'GrLivArea',
'GarageCars', 'TotalBsmtSF', 'FullBath', 'YearBuilt']
sns.pairplot(df_train[cols], size = 2.5)
plt.show()

重点在于分析
- 主对角线是对应单变量的直方图分布(默认),可以使用参数diag_kind="kde"将其变为分布函数形式。但是根据实际情况,如果即存在数值型变量也存在标签型变量,那么用直方图合适。如果全是数值型变量,用分布函数最好。
- 找出特征变量中所有标签型变量和数值型变量。标签型: 'OverallQual', 'GarageCars', 'FullBath'。数值型: 'YearBuilt','GrLivArea','TotalBsmtSF',
- 只分析特征变量和预测变量时,我们看第一列。我们发现:这六个变量和预测变量是存在线性关系的。
- 分析特征变量间的关系时,我们发现: 1. 'GrLivArea'和'TotalBsmtSF'可能有一定的线性关系,2. 'YearBuilt'和'SalePrice'的上方出现截断。
- 这个只是初步分析的结果,深入分析还需更进一步。
注意事项
- 注意这里使用的数据类型是pandas.DataFrame,不是numpy。
- 绘制多样图时, 参见seaborn.pairplot
网友评论