python-kaggle之旅(2)
对数据特征经过“清洗”后,现在训练数据中只剩下相关的变量,通过皮尔森系数探索相关变量对预测变量的影响,并将相关关系进行可视化:
(1)colormap=plt.cm.viridis:设置图谱色系
(2)plt.figure:绘图,其中参数可有:num(图像编号或名称),figsize(指定宽和高),dpi(指定绘图对象的分辨率),facecolor(背景颜色)edgecolor(边框颜色)frameon(是否显示边框)
(3)sns.heatmap():热力图用于分析特征的两两相关。
!在输出热力图时可能会出现中文乱码的问题,这是因为matplotlib中默认字体没有中文字体,此时在文件开头处导入
import matplotlib as mpl
mpl.rcParams['font.sans-serif']=['SimHei'] SimHei是黑体即可。
得到皮尔森相关系数热力图后,分析特征之间的关系,皮尔森系数在[-1,1],越接近1或-1,表明正/反线性关系越强,为0则表示两个变量间没有线性关系。
发现对于“Survived”变量来说“Sex”和“Title”相关性较大,而“Sex”和“Title”两者之间的相关性很强,这就说明两个特征是有相同的作用的,类比PCA主成分分析的方法,这两个特征之间选一个主成分即可。现在分析每一种特征对幸存的影响。
(1)数据“清洗”过程中将Title最后映射为了5种:Mr:1;Miss:2;Mrs:3;Master:4;Rare:5
计算每一个值下幸存占该类总人数的比例,由此得到哪一类人最有可能幸存。
Sex也使用同样的方法,通过分组聚合计算每一类下的值。
最后通过计算比例发现:Title的信息值比Sex更明显,这也符合我们的直觉,因为Title称呼中一般隐含了性别的信息,为了证实这个结论,可以使用原始数据(未经过映射)检查由Title分组得到的Sex分布。mean=sum/count;很明显在这里sum为男人的数量。最后的数据显示Title可以捕捉到Sex中的信息,结论得到证实。
另外Title可能对其他特征例如年龄、社会级别、名人等是有价值的。
经过以上的分析,Title极有可能是决策树中的第一特征,Sex可能就是无用的特征。