手机浏览器扫描二维码访问
他先快速浏览数据:乘客Id、舱位等级、姓名、性别、年龄、同船兄弟姐妹配偶数量、同船父母子女数量、船票号、票价、客舱号、登船港口。
幸存情况是二分类(01)。
“先从最简单的逻辑回归开始”
。
他自语道,手指开始在单元格里敲入代码。
导入pandas、numpy、sklearn,读取数据,查看基本信息、缺失值。
“年龄有缺失,客舱号缺失更多,登船港口也有少量缺失……”
他一边记录,一边思考处理方法。
对于年龄,他采用了中位数填充;客舱号缺失太多,暂时放弃这个特征,只提取是否有客舱号作为一个二值特征;登船港口用众数填充。
特征工程方面,他根据常识和快速浏览的讨论区提示,做了几项简单处理:
从姓名中提取称呼(mr、mrs、miss等)作为新特征,将性别映射为数值,将舱位等级(pclass)视为有序分类特征,计算家庭规模(SibSp+parch+1),并创建是否独自乘船的特征。
“好了,先跑一个基线模型”
。
他将处理后的训练集分割出20%作为验证集,用标准化后的特征训练了一个逻辑回归模型。
验证集准确率:78.5%。
林晨挑了挑眉。
这个成绩……在他快速查看的公开排行榜上,目前顶尖队伍的准确率已经超过82%,甚至83%。
他这个78.5%,估计排在很后面。
但他没气馁,这本来就是“第一次”
。
他开始尝试其他模型:随机森林、支持向量机、梯度提升树(用sklearn的Gradientboostingclassifier)。
调参是门学问,他暂时采用网格搜索(GridSearchcV)进行简单优化,同时注意使用交叉验证避免过拟合。
一番折腾后,随机森林模型在验证集上达到了80.1%的准确率。
提升有限,但聊胜于无。
“特征工程可能还是太粗糙了”
。
他意识到问题。
于是,他点击竞赛页面的“Kernels”
标签,按“投票数”
排序,找到几个高赞的公开代码。
点开一个标题为“prehensivedataexplorationwithpython”
的Kernel,林晨立刻被吸引住了。
作者不仅用精美的可视化(Seaborn库)深入分析了每个特征与幸存率的关系,还提出了许多他没想到的特征构造思路:
比如根据票价和舱位等级推断社会地位,根据客舱号前缀推断甲板位置,将年龄分段并与其他特征组合,甚至利用姓氏关联家庭成员可能一起遇难或幸存的情况……
...
关于借你一方炽热,驱我半生阴寒天生阴寒体弱之人,经神秘先生指引,需与至阳之人一起生活。寄养的几年,二人情愫渐生,彼此承诺约定终生。门庭差异,门户之见,相聚又离别,终是抵不过心底的眷恋。无意中,发现多年前谒语。一番探知与寻觅,却难寻真义。终有后人解谜,方知早已缘定今生。...
TXT下载,无错,番外...
无cp,主角不怼天不怼地(主角本来是反派组转型过来的,这里的反派组不是逆袭反派组类似于被控制做一些不想做的那种反派,这个部门本身是惩罚犯错的任务者主角当初会被分过去也是被人算计的,所以一开始会不太适应,做任务会避开男女主,后期会慢慢适应过来的)秦戈快穿局反派部门的优秀员工,申请到休闲部门,遇上主系统被攻击意外到了新...
TXT下载,最新章节,无错,番外...
...