内容简介:嘿嘿,总算又更新了。这次就用一个小比赛来检验一下吧。
嘿嘿,总算又更新了。
这次就用一个小比赛来检验一下吧。
本篇主要讲了 数据探索、特征生成 ,以及一些常用的建模方法,
比如 用xgboost生成特征、blend、神经网络 等等。
按照惯例,可以在这找到notebook文件直接运行: https://github.com/wmpscc/DataMiningNotesAndPractice
如果你觉得这里的排版看着不爽,可以滑到底下直接看原文
介绍
地震后建筑修复建议是SofaSofa提供的练习比赛,可以说它是一个多分类问题,也可以说它是一个小型的推荐系统。因为它有四个类,评价标准是 map@2
。
写这个比赛的目的是练习一下前面学的 数据探索(EDA)
和 数据预处理
,还有建模时用到的 blend
和 stacking
。具体代码都在jupyter notebook 文件里,这里简单介绍一下。
EDA
首先从最基本的开始,
相关性矩阵
数据离散化
数据离散化是有风险的,因为离散化后的数据效能未必会比离散化之前好,一般是根据专家的建议设置区间,而不是随意猜测一个区间。这里是利用无监督模型(K-means 算法)聚类,将id类的数据分段。
首先看下数据的分布,猜测一下应该聚成几类,因为k-means算法要求提供聚类的簇数。利用seaborn可视化数据:
根据可视化后的数据分布,猜测可以聚为6类。(聚成几类是没有一个确定的答案的,可以多尝试几种情况,取最好的)
这里id类型的数据,我都是这样处理的。
处理异常值
age
属性。
可视化后是这样的
一直延续到1000,猜测可能有问题。绘制散点图看看。
1000那里突然就出现一堆数据 ,猜测可能是出题热故意设置的,处理方法是直接删除。
floors
属性
数据集中提供了楼层前后高度信息,猜测可能会存在一些异常值,地震楼层数会比地震前还有高。首先进行可视化
地震前: floors_before
地震后: floors_after
地震前后楼层数对比
从图上可以发现,确实有些数据像说的那样。先计算下个数
有1838个,直接删除
height
属性
height
也提供了前后高度,处理方法是一样的。
标签数据-独热编码(one-hot)
构造属性
加减乘数,构造属性
标签数据编号
用one-hot后的数据构造新属性
lightGBM模型生成特征重要性图
生成新的相关性矩阵
可以看出构造出的几个属性相关性较强。
建模
构建评分函数
它的评分标准是 map@2
简单来说,对于每一个建筑,若主修复意见正确,得1分;若次修复意见正确,得0.5分;若都不正确,记0分。所有建筑的得分的均值就是map@2
XGBOOST
LightGBM
神经网络
XGBOOST生成新特征
blend
Stacking
emmmm,这个我不确定是不是这样写。
加权投票
总结
这次主要是锻炼之前学到的东西,实际比赛排名不是很高。
长按识别二维码
获取更多AI资讯
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 宜宾地震提前预警,地震预测难关终于攻克了吗?
- 花莲地震前 20 秒就已报警,地震精准预测不再遥远?
- “四川长宁6.0级地震,提前61秒预警”安防这10项技术都跟地震有关
- “地震波还有61秒到达”
- 谷歌和哈佛团队利用深度学习来预测地震余震
- HITB | 360议题分享:卫星可欺骗 地震警报可伪造
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。