kaggle介绍

kaggle创办于2010,后被google收购,是一个数据科学、机器学习竞赛和分享平台。

kaggle winner = feature engineering + ensemble + good machine + domain knowledge

feature engineering(取决于对数据领域的了解程度) 为主,ensemble为辅

1. kaggle网站介绍

  1. competitions

    1. 面向初学者

      • getting started
        • 新手上路
      • playground
        • 有趣的比赛,主要看创意,而非具体的研究问题
      • in class
        • 学校老师布置的作业,有些是公开的,有些不公开
    2. 面向竞赛者

      • featured

        • 解决商业问题,提供奖金
      • research

        • 解决学界前沿问题,有的有奖金
      • recruitment

        • 提供实习,面试机会
  2. datasets

    • 比赛所用到的数据集都在这(数据主要为csv格式,提交也是csv)
  3. kernels(类似ipython notebook,文本和代码组成的块,可以评论)

    • 支持线上调试和运行你的代码
    • 可以看到其他参赛者资源公开的模型代码,学习交流最佳所在
    • 分public kernel和private kernel(仅组员可看)
  4. disscussion

    • 论坛
    • CV score 模型本地交叉验证(cross-validation)的得分
    • LB score 提交后的排行榜(Leader Board) 得分。
      • public LB 临时排名会抽取提交数据的25%左右
      • private LB 比赛结束时会重新进行最终的排名(用剩下的75%的数据)

2. kaggle竞赛排名机制

  • 参赛者每天最多提交5次测试集的预测结果(若原先进行比赛的多个人忽然组队,其提交总数<=比赛开始天数x5),每次提交,kaggle从中抽25%~33%,根据准确率进行临时排名(pubic LB)

  • 结束前,参赛者可指定2个已经提交的结果,kaggle计算每个结果 private LB 得分并自动挑选得分高的一个作为你的最终成绩。

    • 可选出同时兼顾准确率和泛化能力的模型

3. 常用模型

  1. 主流:

    • Random Forest 随机森林
    • Gradient Boosting 梯度提升树 (难度稍高,但可视化效果会好很多)
    • GBDT 梯度决策树 (Gradient Boosted Decision Trees)
    • Extra Randomized Trees 极端随机树(随机森林的变种)
    • xgboost(梯度提升的高级实现)
  2. 性能稍差

    • SVM

    • Logistic Regression

    • Linear Regression

    • Neural Networks

4. 比赛任务

  • 分类

  • 回归

  • 推荐

  • 排序

5. 比赛类型

  • 数据挖掘(大部分)
    • 分类、回归、预测
    • 面对结构化数据(表格数据),包含各种预测问题(预测销量,预测点击率,推荐排序),共性是理解数据,理解问题,从数据中找到有用的信息来预测,故关键在特征上
    • 主流算法:
      • 梯度决策树(GBDT)
        • 现成的包有:xgboost、lightgbm、catboost
        • lightgbm速度快,单模型的效果也更好
      • 随机森林
      • 梯度提升树
  • cv图像处理
    • 分类、定位、检测、分割
    • 主要用到深度学习的技术,基于其进行改进,较少涉及特征
  • NLP 文本
    • 情感分析(sentiment analysis)
    • 主流评价指标(Evaluation Metric)
      • Multi-Class Log-Loss
    • 常用算法
      • TF-IDF 词频-逆文档频率
      • Logistic Regression 逻辑斯蒂回归
      • Naive Bayesian 朴素贝叶斯
      • SVM 支持向量机(数据标准化?)
      • xgboost(boosting的一种)
      • word2vec
      • LSTM
      • NLTK
      • gensim(Word2Vec)
      • xgboost
      • lightgbm
  • NLP speech 语音
    • 分类

6. kaggle比赛大致流程

  1. 理解背景

  2. EDA(Exploratory Data Analysis)数据探索性分析(数据探索和验证)

    • 统计分析(panda)

      • 对于数值变量

        • 获得统计量(min, max, mean, std,meduim)

        • 观察label是否均衡,不均衡的话需进行多抽(over sample)少数类,少抽(down sample)多数类

        • 统计数值变量两两之间相关系数

      • 对于文本变量

        • 词频TF、TF-IDF、文本长度
    • 可视化(matplotlib, seaborn) 理解数据

      • 查看目标变量的分布,当分布不平衡时,评分标准和使用模型的不同,可能严重影响性能。
      • 对数值变量:Box Plot 直观查看分布
      • 对坐标类数据:Scatter Plot 查看分布趋势,和是否有离群点
      • 对于分类问题:数据label的不同,用不同颜色绘制,有助于feature的构造
      • 绘制变量两两之间的分布和相关系数矩阵
    • target 的预测偏差 90% 是异常值贡献的,

  3. Data Preprocessing(数据预处理) 在构造feature之前,进行预处理

    1. 数值变量(Numerical Variable):处理离群点,缺失值,异常值
    2. 类别型变量(Categorical Variable):转化为one-hot编码
      • 独热编码(one-hot Encoding) 使数据变得稀疏
        • 对n个状态用n个比特表示 eg: 有3个状态,就是:001、010、100
  4. Feature Engineering 特征工程

    • 挑选重要的特征 (比如 top10) 进行分析和构建新特征,然后测试,然后扩大范围 (比如 top20) 重复以上过程
  5. 模型(如果有时间,各种常见的模型都试试)

    • 比赛一般先训练一个baseline model(基模型),然后再优化。
    • 零模型:不用模型去预测,直接把结果设置为全0或全均值提交。
      • 先提交零模型再提交基模型,可以看模型的效果,更方便对模型进行评估
      • 如果基模型还不如零模型,可能是太多异常值导致
    • 模型选择和交叉验证
      • 交叉验证
      • 数据分布较随机时,5-fold(5折)就够了,不放心,可提到10折,折数越大,越
  6. Ensemble 模型融合(涉及到集成学习:将多个弱学习器结合成一个强学习器)

    • 训练完模型后,要考虑模型的效率
      • 研究模型学习曲线,判断模型是否存在过拟合或欠拟合现象,做出调整
      • 分析模型权重参数,对权重绝对值过高/低的特征,可进行细化或特征组合
      • 分析bad-case,是否还有优化的地方
      • 模型融合,将多个个体学习器按一定策略结合成一个学习器(集成)
    • 有四种思想:
      • 主流
        • bagging(代表:随机森林RF)
        • boosting(提升。代表:梯度提升树GB)
      • 不太主流
        • stacking(堆叠)
        • blending(混合)
  7. 本地评估体系

    trust your cv

    • 以本地cv为评估体系,而不是public LB上得分,因为最后的排名是private LB,private LB和public LB的得分不一定是高度一致的。
      • eg: 手动校正异常值可以提高public LB得分,但是对private LB 得分无帮助(在public LB中异常点比随机水平高时)
  8. 本地评估体系

    trust your cv

    • 以本地cv为评估体系,而不是public LB上得分,因为最后的排名是private LB,private LB和public LB的得分不一定是高度一致的。
      • eg: 手动校正异常值可以提高public LB得分,但是对private LB 得分无帮助(在public LB中异常点比随机水平高时)
发布了151 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/puspos/article/details/104743726