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


生存率随年龄的增加而减少,不论 。
5.3 :家庭总人数
光看兄弟姐妹和老人孩子看不太直接,咱们直接看全家的人数
data['Family_Size']=0data['Family_Size']=data['Parch']+data['SibSp']#family sizedata['Alone']=0data.loc[data.Family_Size==0,'Alone']=1#Alonef,ax=plt.subplots(1,2,figsize=(18,6))sns.factorplot('Family_Size','Survived',data=http://www.kingceram.com/post/data,ax=ax[0])ax[0].set_title('Family_Size vs Survived')sns.factorplot('Alone','Survived',data=data,ax=ax[1])ax[1].set_title('Alone vs Survived')plt.close(2)plt.close(3)plt.show()
= 0意味着是孤独的 。显然,如果你是单独或 = 0,那么生存的机会很低 。家庭规模4以上,机会也减少 。这看起来也是模型的一个重要特性 。让我们进一步研究这个问题 。
sns.factorplot('Alone','Survived',data=http://www.kingceram.com/post/data,hue='Sex',col='Pclass')plt.show()
5.4 船票价格
因为票价也是连续的特性,所以我们需要将它转换为数值 。
.qcut
data['Fare_Range']=pd.qcut(data['Fare'],4)data.groupby(['Fare_Range'])['Survived'].mean().to_frame().style.background_gradient(cmap='summer_r')
(-0.001, 7.91]
0.
(7.91, 14.454]
0.
(14.454, 31.0]
0.
(31.0, 512.329]
0.
如上所述,我们可以清楚地看到,船票价格增加生存的机会增加 。
data['Fare_cat']=0data.loc[data['Fare']<=7.91,'Fare_cat']=0data.loc[(data['Fare']>7.91)&(data['Fare']<=14.454),'Fare_cat']=1data.loc[(data['Fare']>14.454)&(data['Fare']<=31),'Fare_cat']=2data.loc[(data['Fare']>31)&(data['Fare']<=513),'Fare_cat']=3
sns.factorplot('Fare_cat','Survived',data=http://www.kingceram.com/post/data,hue='Sex')plt.show()
显然,随着增加,存活的几率增加 。随着性别的变化,这一特性可能成为建模过
程中的一个重要特征 。
将字符串值转换为数字,因为我们不能把字符串带入一个机器学习模型 。
data['Sex'].replace(['male','female'],[0,1],inplace=True)data['Embarked'].replace(['S','C','Q'],[0,1,2],inplace=True)data['Initial'].replace(['Mr','Mrs','Miss','Master','Other'],[0,1,2,3,4],inplace=True)
去掉不必要的特征:
data.drop(['Name','Age','Ticket','Fare','Cabin','Fare_Range','PassengerId'],axis=1,inplace=True)sns.heatmap(data.corr(),annot=True,cmap='RdYlGn',linewidths=0.2,annot_kws={'size':20})fig=plt.gcf()fig.set_size_inches(18,15)plt.xticks(fontsize=14)plt.yticks(fontsize=14)plt.show()
现在从以上的相关图,我们可以看到一些正相关的特征 。他们中的一些人sibsp和和干燥和一些负面的孤独和 。
六、 机器学习建模 6.1 分类算法预测
我们从EDA部分获得了一些见解 。但是,我们不能准确地预测或判断一个乘客是否会幸存或死亡 。现在我们将使用一些很好的分类算法来预测乘客是否能生存下来:
1)回归
2)支持向量机(线性和径向)
3)随机森林
4)k-近邻
5)朴素贝叶斯
6)决策树