逻辑回归
熟悉了线性回归之后, 我们接下来看看逻辑回归怎么处理.
介绍
泰坦尼克号是一艘英国皇家邮轮,也是白星航运公司旗下的3艘奥林匹克级邮轮之一,在其服役时间是全世界最大的海上船舶,由贝尔法斯特哈兰德与沃尔夫造船厂建造,号称“永不沉没”、“梦幻之船”。
1912年4月10日,泰坦尼克号展开首航,也是唯一一次的载客出航,最终目的地为纽约。部分乘客为当时世界上顶尖富豪,以及许多来自英国、爱尔兰、斯堪的纳维亚和整个欧洲其他地区的移民,他们寻求在美国展开新生活的机会。4月14至15日子夜前后,在中途发生碰撞冰山后沉没的严重灾难。2,224名船上人员中有1,514人罹难,成为近代史上最严重的和平时期船难。船长爱德华·约翰·史密斯最终与船一起沉没;泰坦尼克号总设计师汤玛斯·安德鲁斯也在这起灾难中死亡。
本问题是 Kaggle 竞赛的一个入门题目,要根据乘客信息,判断乘客能否活下来。
视频教程
基准工作流
如下建立一个简单的基准工作流
使用文件小部件,导入 Titanic.csv 数据,并且设置 Survived
为目标
观察测试与评分的结果,选择 随机抽样, 将 重复训练/测试 增加为 5, 可见准确率 CA
(classification accuracy) 为 0.781。
特征工程
探索性数据分析
这里我们使用分布小部件来查看数据. 前面介绍的散点图适合可视化数值数据,但是这里的目标是乘客是否存活,是一个分类数据,所以更适合使用直方图和柱状图,它们都可以通过分布小部件来查看。
最基本的就是先查看目标 Survived 本身,可以发现死亡人数大于存活人数
接着我们想根据 Sex 分割数据查看分布。可以明显发现男性的死亡率远远大于女性的。
还想通过 pclass 等数据做分割查看分布,但是发现只可以由分类数据做分割,不能以数值数据做分割,而 Pclass 却是数值数据。有些变量虽然读取的是数值的,但是它们可能更适合作为分类数据,如 Pclass,Sibsip 和 Parch,如图将它们设置为分类数据,点击“应用”后,CA 升到了 0.791。
删除无关特征
比如这里的 PassengerId 就与目标无关,可以删除。双击文件,如图将其设置为忽略
。
处理缺失值
另一个重要的特征工程步骤就是处理缺失值。对于缺失值过多的数据,比如 Cabin,软件会将其设置为 元数据(即描述数据的数据)。 逻辑回归小部件自动判断哪些特征有缺失值,是否可以填充缺失值,如果某特征不能处理缺失值就不会采用此特征;如果可以填充缺失值,就会采取简单的比如使用平均值填充的方法将缺失值填充。通过将文件连接到数据表,可以发现 Age 特征有不少缺失值(显示“?”的数据),这些缺失值就会被软件设置为平均值。不管如何处理,有缺失值特征一定不能随便删除。
处理复杂特征
更多的特征工程比如如何使用 Name 特征比较复杂,读者可以尝试使用自然语言处理功能完成。
模型解释
类似前面线性回归, 逻辑回归也可以方便地进行模型解释. 简单来说:
- 符号为正就是正影响,负就是负影响。
- 系数绝对值大,影响会大。
观察下图,发现 Sex=female 的数据,是一个很大的正数,这个与女性乘客存活率远大于男性乘客相符。另外 Pclass=1 也符合我们的认识,即头等舱乘客更容易存活。总之,观察模型参数,会对你对问题的认识有帮助。
资源下载
反馈问题
文档有问题? 或者有其他意见和建议? 请在本文档的 Github 仓库直接反馈
点我反馈进入反馈页面不知道如何反馈, 请点击这里