zoukankan      html  css  js  c++  java
  • 数据挖掘比赛----Kaggle实战

           数据挖掘--非常火爆的一个话题,跟大数据结合的模式也是赚足了噱头,工业界各土豪公司也是砸下重金网罗各种数据挖掘/机器学习人才。如今掌握一门挖掘技巧的实用性跟急迫性。在学习的过程中,除了相关理论的学习之外,最重要的就是如何把理论用于实践,当然做项目是最直接有效的实践方式,除此之外,参加一些数据挖掘比赛也是非常不错的经历,比赛过程中,我们不仅能加深模型/算法的学习,也能从别的参赛队员中学习他们的技巧。下面,想跟大家分享下,我最近参加的几个数据挖掘比赛(由于参加比赛非常需要精力跟时间,而本人已经参加工作,只能利用业余的时间探索数据,主要以学习他人方法为主,另外以下比赛均在www.kaggle.com上面)。

            一:Higgs Boson Machine Learning Challenge

                这个比赛(共1785支队伍)是关于高能物理粒子的预测,二分类问题,具体来说数据集中,每个样本都有一个权重,权重越大,表明该样本越重要。这个比赛火了一个工具包:XGboost,该工具的作者陈天奇同学也是KDDcup2012Track1的冠军成员,写的代码非常短小精悍,值得深度(目前我也在熟读这份代码),用这个工具调好参数,能取得Top50的好成绩。第一名的方案,是Bag了70个神经网络模型, 数据预处理先做了特征选择,剔除掉5较差特征,同时添加了10个meta-feature。具体链接请参见https://www.kaggle.com/c/higgs-boson/forums/t/10344/winning-methodology-sharing?page=2。我的方案:模型用了Stacking的方法,基本分类器用了XGboost,RGF(loss=Logloss),RGF(loss=Exploss指数loss,就是adaboost的loss函数),二级分类器用了Logistic Regression,模型最好的结果能排到25位。

            二:Display Advertising Challenge

                这是一个关于广告CTR预估的比赛,由全球知名广告公司Criteo赞助举办,先简单介绍下数据背景:4千万的训练样本,13个数值特征+26个分类特征,500万的测试样本,模型的评价指标为传统的logloss。从整体的思路来看:特征的处理+线性模型,对26个分类特征进行one-hot 编码,能扩展至千万级别的特征。第一名方案非常有意思,GBDT+FM的组合,其中的特征处理非常有技巧(GBDT训练高阶特征+hash技巧),值得学习。关于FM模型,由于我本周会跟团队有一个分享,完后再博客里贴出来跟大家一起分享。我的方案:特征预处理,缺失值直接用0取代(不影响后续的模型),分类特征直接用one-hot编码(这里做了一个特殊的处理,对于频数小于10词的取值,统一作为一个取值),最后用FM跑处理后的数据(参数调优要非常小心),最终的结果在718只队伍里面第42位。

             三:Tradeshift Text Classification

                 这是文本分类问题,并且是多类别的分类,也就是一本文档有可能属于多个类别,数据集中是33个分类,共145个特征(50个bool型特征+10个分类特征+85个数值特征),比赛评价的指标仍然是logloss,当然这里是33个logloss之和。这个比赛比较有意思的是采用了二级分类的思路:随机森林训练bool/数值特征 + 线性SVM训练稀疏特征作为第一级分类,它们的输出作为随机森林的输入,这是第二级分类,第一名的方案:随机森林训练bool/数值特征 + SGD训练稀疏特征+在线的逻辑回归训练所有feature+XGboost训练所有feature 作为第一级方案,它们的输入扔到XGboost模型里面,最终输出结果。我的方案:随机森林训练bool/数值特征 + 线性SVM训练稀疏特征作为第一级分类,它们的输出作为XGboost的输入,最终的结果是375支队伍里面第19位。

            以上是我的一些心得体会,写的也比较简短,也欢迎大家讨论交流

           Ps:另外非常希望那些已经掌握理论还没开始实践的朋友,多找项目/比赛练手,另外常备几个高效的数据挖掘工具箱,并选其中2-3个熟读其源码,做到理论、实践两不误~

           下面简单介绍下GBDT/GBRT模型,以下图片是前段时间做的一个分享~

  • 相关阅读:
    gitlab 搭建(基于现有nginx)
    CENTOS 7平滑升级PHP到最新版7.3
    zabbix 5.0安装
    禅道 基于原lnmp 搭建
    mysql5.5升级至5.7 或升级至8.0
    gitlab搭建
    Autoboxing an autounboxing in genral
    java concurrency
    Why use interface type to declare a collectio
    Java coding style
  • 原文地址:https://www.cnblogs.com/kobedeshow/p/4118361.html
Copyright © 2011-2022 走看看