教女朋友学数据挖掘——泰坦尼克号获救预测( 五 )


f,ax=plt.subplots(1,3,figsize=(20,8))sns.distplot(data[data['Pclass']==1].Fare,ax=ax[0])ax[0].set_title('Fares in Pclass 1')sns.distplot(data[data['Pclass']==2].Fare,ax=ax[1])ax[1].set_title('Fares in Pclass 2')sns.distplot(data[data['Pclass']==3].Fare,ax=ax[2])ax[2].set_title('Fares in Pclass 3')plt.show()
概括地观察所有的特征:
性别:与男性相比,女性的生存机会很高 。
:有,第一类乘客给你更好的生存机会的一个明显趋势 。对于成活率很低 。对于女性来说,从生存的机会几乎是 。
年龄:小于5-10岁的儿童存活率高 。年龄在15到35岁之间的乘客死亡很多 。
港口:上来的仓位也有区别,死亡率也很大!
家庭:有1-2的兄弟姐妹、配偶或父母上1-3显示而不是独自一人或有一个大家庭旅行,你有更大的概率存活 。
五、特征工程和数据清洗 5.1 特征之间的相关性(热度图)
sns.heatmap(data.corr(),annot=True,cmap='RdYlGn',linewidths=0.2) #data.corr()-->correlation matrixfig=plt.gcf()fig.set_size_inches(10,8)plt.show()
首先要注意的是,只有数值特征进行比较
正相关:如果特征A的增加导致特征b的增加,那么它们呈正相关 。值1表示完全正相关 。
负相关:如果特征A的增加导致特征b的减少,则呈负相关 。值-1表示完全负相关 。
现在让我们说两个特性是高度或完全相关的,所以一个增加导致另一个增加 。这意味着两个特征都包含高度相似的信息,并且信息很少或没有变化 。这样的特征对我们来说是没有价值的!
那么你认为我们应该同时使用它们吗? 。在制作或训练模型时,我们应该尽量减少冗余特性,因为它减少了训练时间和许多优点 。
现在,从上面的图,我们可以看到,特征不显著相关 。
当我们得到一个具有特征的数据集时,是不是所有的特性都很重要?可能有许多冗余的特征应该被消除,我们还可以通过观察或从其他特征中提取信息来获得或添加新特性 。
5.2 年龄特征:
正如我前面提到的,年龄是连续的特征,在机器学习模型中存在连续变量的问题 。
如果我说通过性别来组织或安排体育运动,我们可以很容易地把他们分成男女分开 。
如果我说按他们的年龄分组,你会怎么做?如果有30个人,可能有30个年龄值 。

教女朋友学数据挖掘——泰坦尼克号获救预测

文章插图
我们需要对连续值进行离散化来分组 。
好的,乘客的最大年龄是80岁 。所以我们将范围从0-80成5箱 。所以80/5=16 。
data['Age_band']=0data.loc[data['Age']<=16,'Age_band']=0data.loc[(data['Age']>16)&(data['Age']<=32),'Age_band']=1data.loc[(data['Age']>32)&(data['Age']<=48),'Age_band']=2data.loc[(data['Age']>48)&(data['Age']<=64),'Age_band']=3data.loc[data['Age']>64,'Age_band']=4data.head(2)
and
, Mr. Owen
male
22.0
A/5 21171
7.2500
NaN
Mr
, Mrs. John(Th...
38.0
PC 17599
71.2833
C85
Mrs
data['Age_band'].value_counts().to_frame().style.background_gradient(cmap='summer')#checking the number of passenegers in each band
382
325
104
69
11
sns.factorplot('Age_band','Survived',data=http://www.kingceram.com/post/data,col='Pclass')plt.show()