1. 程式人生 > >特徵工程前的資料視覺化技巧

特徵工程前的資料視覺化技巧

以泰坦尼克乘客生還資料為例。

讀取資料後:

data.head()
data.describe()
data.info()

觀察資料大概情況。

plt.figsize=(16,8)
sns.countplot('Survived',data=data)
plt.title('Survived')

在這裡插入圖片描述
sex:

f,ax=plt.subplots(1,2,figsize=(18,8))

data[['Sex','Survived']].groupby(['Sex']).mean().plot.bar(ax=ax[0])
ax[0].set_title('Sex vs Survived')

sns.countplot('Sex',hue='Survived',data=data,ax=ax[1])
ax[1].set_title('Sex:Survived or dead')

在這裡插入圖片描述
Pclass:

f,ax=plt.subplots(1,2,figsize=(18,8))

data['Pclass'].value_counts().plot.bar(color='Black',ax=ax[0])
ax[0].set_title('Pclass vs Survived')
ax[0].set_ylabel('Count')

sns.countplot('Pclass',hue='Survived',data=data,ax=ax[1],palette='Set2')
ax[1].set_title('Pclass:Survived or dead')

在這裡插入圖片描述
船艙等級和性別對結果的影響:

sns.factorplot('Pclass','Survived',hue='Sex',data=data,palette='Set2')

在這裡插入圖片描述
age(連續值特徵對結果的影響):

f,ax=plt.subplots(1,2,figsize=(18,8))

sns.violinplot('Pclass','Age',hue='Survived',split=True,data=data,ax=ax[0],palette='Set2')
ax[0].set_title('Pclass and Age vs Survived')
ax[0].set_yticks(range(0,110,10))

sns.violinplot('Sex','Age',hue='Survived',split=True,data=data,ax=ax[1],palette='Set2')
ax[1].set_title('Sex and Age vs Survived')
ax[1].set_yticks(range(0,110,10))

在這裡插入圖片描述
年齡分佈(缺失值填充後):

f,ax=plt.subplots(1,2,figsize=(18,8))

data[data['Survived']==0].Age.plot.hist(bins=20,ax=ax[0],edgecolor='black',color='red')
ax[0].set_title('Survived=0')
x1=list(range(0,85,5))

data[data['Survived']==1].Age.plot.hist(bins=20,ax=ax[1],edgecolor='black',color='blue')
ax[1].set_title('Survived=1')
x2=list(range(0,85,5))

在這裡插入圖片描述
embarked:

sns.factorplot('Embarked','Survived',data=data)

在這裡插入圖片描述

f,ax=plt.subplots(2,2,figsize=(20,15))

sns.countplot('Embarked',data=data,ax=ax[0,0],palette='Set2')
ax[0,0].set_title('NO. of passengers boarded')

sns.countplot('Embarked',hue='Sex',data=data,ax=ax[0,1],palette='Set2')
ax[0,1].set_title('Male-Female split for embarked')

sns.countplot('Embarked',hue='Survived',data=data,ax=ax[1,0],palette='Set2')
ax[1,0].set_title('Embarked vs Survived')

sns.countplot('Embarked',hue='Pclass',data=data,ax=ax[1,1],palette='Set2')
ax[1,1].set_title('Embarked vs Pclass')

plt.subplots_adjust(wspace=0.3,hspace=0.3)

在這裡插入圖片描述

sns.factorplot('Pclass','Survived',hue='Sex',col='Embarked',data=data)

在這裡插入圖片描述
Fare:

facet = sns.FacetGrid(data,hue = 'Survived',aspect=3)  #給FacetGrid傳入原始資料,按hue進行分類
facet.map(sns.kdeplot,'Fare',shade = True)
facet.set(xlim=(data['Fare'].min(),data['Fare'].max()))
facet.add_legend()  #add_legend 新增圖例

在這裡插入圖片描述