關(guān)于seaborn.pairplot 的筆記
- 參考自seaborn.pairplot
- 自己對(duì)這個(gè)統(tǒng)計(jì)圖形的思考
為什么是pairplot
pairplot繪制的是成對(duì)的變量關(guān)系圖表。這就說明,我們?cè)谧鱿嚓P(guān)的數(shù)據(jù)分析探索的時(shí)候,用seaborn.pairplot()不僅可以繪制特征變量和預(yù)測(cè)變量
關(guān)系,還可以繪制特征變量
間的關(guān)系。
繪制函數(shù)
以最常見的機(jī)器學(xué)習(xí)數(shù)據(jù)集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)
## 我們已經(jīng)通過heatmap找到與'SalePrices'相關(guān)系數(shù)大于0.5的變量,
## 同時(shí)經(jīng)過一定的分析刪除了一些變量后剩余的變量。
sns.set()
cols = ['SalePrice', 'OverallQual', 'GrLivArea',
'GarageCars', 'TotalBsmtSF', 'FullBath', 'YearBuilt']
sns.pairplot(df_train[cols], size = 2.5)
plt.show()

pairplot.png
重點(diǎn)在于分析
- 主對(duì)角線是對(duì)應(yīng)單變量的直方圖分布(默認(rèn)),可以使用參數(shù)diag_kind="kde"將其變?yōu)榉植己瘮?shù)形式。但是根據(jù)實(shí)際情況,如果即存在數(shù)值型變量也存在標(biāo)簽型變量,那么用直方圖合適。如果全是數(shù)值型變量,用分布函數(shù)最好。
- 找出特征變量中所有標(biāo)簽型變量和數(shù)值型變量。標(biāo)簽型: 'OverallQual', 'GarageCars', 'FullBath'。數(shù)值型: 'YearBuilt','GrLivArea','TotalBsmtSF',
- 只分析特征變量和預(yù)測(cè)變量時(shí),我們看第一列。我們發(fā)現(xiàn):這六個(gè)變量和預(yù)測(cè)變量是存在線性關(guān)系的。
- 分析特征變量間的關(guān)系時(shí),我們發(fā)現(xiàn): 1. 'GrLivArea'和'TotalBsmtSF'可能有一定的線性關(guān)系,2. 'YearBuilt'和'SalePrice'的上方出現(xiàn)截?cái)唷?/li>
- 這個(gè)只是初步分析的結(jié)果,深入分析還需更進(jìn)一步。
注意事項(xiàng)
- 注意這里使用的數(shù)據(jù)類型是pandas.DataFrame,不是numpy。
- 繪制多樣圖時(shí), 參見seaborn.pairplot