Kaggle的技巧总结学习

前面写了一些简单的pandas,numpy等使用方法,但是还是一直不清楚使用他们的目的真正带来的好处是什么。

我对于DS目前的总体理解

目前DS notebook里面所做的数据处理有2个不同的目的:

  1. 为了写分析报告(analysis report):很多做了很多的图,比较了两个参数,然后就没有对于模型准确率的改善有任何帮助,但是却是报告的重要组成部分,帮助不认识这个数据的人尽快熟悉数据。
  2. 为了之后模型准确率的改善,而作的一系列预处理。

目前我对于kaggle的理解层面在:

  • 第一步: 数据基本统计
  • 第二步: 找到missing value
  • 第三步: 显示数据correlation
  • 第四步: 填充数据missing value
  • 第五步: 数据内部挖掘feature engineering:为了获取和target variable最有相关性的数据,对原数据进行加工,其中包括:
    • categorical的处理(encoding)
    • feature scaling
    • 新建feature
  • 第六步: 预测
    • 可以使用ensembling(计算feature importance)但具体的不太了解
    • 可以使用单一模型然后tune参数

Kaggle进阶技巧

参考Kaggle Glossary的一个Notebook对于技巧的总结,这里先进行理论/背景知识的总结,之后再写单章的代码分析。
技巧总结是第7章,其余的都是模型的实现。分类的标题按照的原文,其中和我的习惯想法有点不同,尽量在括号内注明。

预处理preprocessing

EDA

特征工程feature engineering

特征选择feature selection

处理异常值outlier treatment

异常值检测anomaly detection

SMOTE算法

省略值missing value

降维dimentionality reduction

拆分数据集dataset decomposition

PCA+tsne

后处理 post modelling techniques

model selection

集成ensembling

ensemble

stack(多个弱分类器输出+一个弱分类器的叠加)

bagging(每个模型权重相同+从数据集中随机抽样子数据集)

blend (混合使用模型-可被认为是stack的一种形式)