实战美年健康AI大赛之三_大数据量的简化

1. 说明

 美年健康也是一个认真打的比赛,初赛B榜最高分0.0279,排名15.
 最初是想用它实践一下自然语言处理,后面发现,另一个与之前比赛不同的地方,就是数据量很大,之前也做过几十上百万条记录的,但是特征少,这次57000多个记录,2700多个特征.从提取特征到训练完成,我的代码要跑近三个小时,后来审核代码的阶段,在群里看到很多人代码都需要运行很长时间.
 初赛90%以上的时间都花在自然语言处理上了,像去噪,特征筛选,调参,模型组合,结果分析几乎都没做,能刷到第15,应该偷笑了.
 在初赛结束后的几天里,开始尝试特征选择,希望优化整个过程,才发现数据量大的不能像之前那么处理.上述没做的那些,不是没有精力,是没时间.在大数据上做这些太花时间.在”大数据”里面,应该先要做一些简化,否则很多时间都浪费掉了.
 本篇就来说说大数据和小数据的不同点以及应对方法.

2. 提取特征

 这个题里面有些文本特征,和一些文本数值混合特征.首先要做的是清理和提取,尤其是”-1”,”正常”,”未见异常”,”阴性”,其实是同一种情况,还有不同单位换算,如果这些不处理好,用什么模型效果都不好.
 尽管特征已经很多,但还得加,因为像B超结果,它确实能提供数值以外的其它信息.
 文本中携带的信息太多了,总结一下大家的做法:
(1) 先把文本为主的和数据为主的分开.
(2) 对文本为主的:分词,提取关键字,统计出现频率(TF/IDF,聚类等等).
(3) 判断高频词是否在字段是存在,生成一些的的布尔特征.
(4) 人工检查高频文本,选出像"脂肪肝","高血糖"这样的关键字及字段写正则.
(5) 还有直接在Excel里用公式做的,手工改的…
 总的来说,还是"数据太多",如果只有几个文本字段,且每个都不长,写判断或者正则就好了.但如果是上百个特征,就只能采取一些自动的方法了.
 在这种情况下,注意边取边筛,使用一些"单变量特征选择"的方法,比如计算特征与目标的相关性,分析残差等方法,以避免爆炸式增长.

3. 特征筛选

(1) 删掉缺失值太多的特征

 怎么衡量缺失值的多少?比如说决策树每个叶节点至少20个实例,那么非空实例小于20的特征肯定没用.从本文中提取特征,也是同理.

(2) 删掉无意义特征

 如果该特征所有取值都是1,它就没有判断价值,很少有这样的.但可能会有如果有值则为1,其它全空的情况,这就要看如何处理缺失值.如果均值填充就变成全1了.还有枚举型某种取值实例太少,不足一个叶节点的情况.总之,需要看看分布.

(3) 删掉重复特征

 可以直接用drop_duplicates删掉的并不多,但在上千个特征的采集过程中,一般都会有些显性和隐性的重复,比如:"子宫","输卵管"这些关键字与"血压"强相关,原因是"性别"和"血压"强相关.所以这样的关键字提取很多也没什么用.
 此时可以分析特征间的相关性corr().corr()只能检测线性相关,所以绝对值如果低并不说明无关,但如果值高,一定相关.那如果两个特征相关性为1,就可以去掉其中一个了?也不行!计算相关性时一般忽略掉空值,这个也要考虑在内.

(4) 单变量特征筛选

 Sklearn也提供了一些特征筛选的方法:sklearn.feature_selection.*,比如SelectKBest可以支持卡方Chi2.Sklearn对数据有一些要求,比如有的要求非空.
 另外用于检测单变量与目标相关性的还有互信息,皮尔森相关系数,最大信息系数等等.
 残差分析也是一种常用方法.简单地说就是:计算当X位于不同取值范围时,Y均值的变化.从而检查X是否对Y有影响,它能检测到一些非线性相关的情况.

(5) 基于模型的特征选择

 基于模型的特征选择,指用模型训练完成之后,通过模型输出的特征重要性feature_importances_,选取其前N个特征.
这个是训练之后才能得到的数据,都训练完了,时间都花掉了,才选出特征有什么用呢?这是个先有鸡还是先有蛋问题.
 首先,用这种方法选出的重要特征可以更好地解释模型和数据.而且它是多特征组合的结果,不只考虑了局部特征.
 另外,还可以用它筛掉一些干涉性特征,比如做10折交叉验证,其中9次都认为某特征不重要,其余那一次,很可能是干扰,也算一种统计吧.
 一个小技巧是,在提取特征的过程中,可以边提取边训练(设置参数,少量实例,少量特征以快速训练)至少能粗分出某个新特征重要与否,是否应该保留.

(6) 其它方法

 还有主成分分析PCA等方法.方差分析 ANOVA,信息值分析IV等等.
 上述都是从特征角度筛选,还有从实例角度筛选(不限于此题),比如分析广告和购买时,那些从来不买东西,从来不点广告的人,可能就需要另外处理,或者在回归前先做个分类,计算一些统计特征(有点跑题了).

4. 选择模型

 在梯度下降决策树GBDT类算法为例,不同的工具,用时不同,优势不同.
 xgboost比sklearn自带的GBDT快,lightgbm比xgboost快,catboost最慢,但它在小数据集中效果好.一般情况下,xgboost得分一般比lightgbm要高一点.
 也没有哪个好,哪个不好,针对不同的情况选择不同的模型吧.像这种"大数据"的,lightgbm相对快一些.

5. 交叉验证

 GBDT类模型一般都会配合交叉验证,这样可以把所有训练数据都用起来,还能得到一个靠谱的本地得分.之前都用5折交叉验证,这次从5折改到10折,分数有明显提高.
 折数设定和数据量相关,假设只有1000个实例,用10折交叉,仅有100个实例用来测试,可想而知,很多情况都测不到,结果不够稳定.如果有40000个实例,10折测试数据也有4000个,子训练集增加了4000,相对更合理.
 但也有相应的问题,就是数据集越大,训练时间越长,5折变为10折,训练时间也会翻倍.

6. 总结

 对于海量数据,除了建立集群,Hadoop以外,从特征到模型,能做的事情还很多.在数据多的情况下,无论是数据分析,去噪,筛选都需要自动做.我觉得还是多研究现有工具和自己写一些通用的工具吧.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容