表格化数据挖掘

经典的结构化数据挖掘方法

什么是结构化数据

  • 结构化数据指的主要是表格数据(Tabular Data)

  • 最简单的想象:可以记载在 Excel 表格中的均是表格数据

    • 每列数据一般称之为一个变量(字段)

    • 变量可以分为离散型变量和连续型变量

  • 绝大多数的数据都是表格数据(或可以转化为表格数据)

结构化数据的传统建模流程

  • 传统来说(在某种意义上仍是如此),结构化数据常常要求大量的业务理解

  • 探索性数据分析往往占很大成分

  • 90% 时间花在清洗数据和探索性分析上

传统建模流程的问题

  • 最核心的悖论:业务理解从哪里来?

  • 一些实际的问题

    • 高维稀疏变量

    • 较差的变量质量

    • 类似的业务理解能力

    • 业务的多变性

表格化数据挖掘基本流程

数据挖掘竞赛和新的建模流程

  • 竞赛基本流程

  • 挑战

    • 无业务理解

    • 少数提交机会

    • 测试集和训练集可能不一样-> 建模结果必须稳定

    • 时间短暂,必须充分利用时间

  • 数据挖掘竞赛和实际业务中的建模有类似挑战,但有一点重要不同

    • 实际业务建模必须要逐步引入更多变量,而竞赛中变量已经给定

新的流程

  • 数据清理和EDA

  • 半自动的变量构建+手动构建

  • 一类模型主要提高准确率,另一些模型做集成备选

    • 传统来说主要用于提高准确率的是靠集成树的方法

    • 近年来神经网络为基础的建模越来越多

  • 集成学习

    • 被集成的模型必须有一定准确性

    • 被集成的模型必须有一定的多样性

关于新的流程的一些说明

  • 前三个环节经常需要反复进行

  • 基本原则:尽可能利用算力和时间

  • 不同人对于 EDA 重要性说法不同,个人建议初学者以实验为主

  • 非常重要的原则:结合全局和局部信息

半自动特征构建

Target Mean Encoding

  • Target Mean Encoding 简介

    • 对于离散变量最有效编码方法之一

    • 对于维度较高的离散性变量效果很好

    • 重点在于防止过拟合

  • 其他的 Groupby 函数应用

    • 实现 Target Mean Encoding 可以使用 df.groupby([A,B])[C].agg(func)

    • Groupby 函数可以应用于任何其他变量,在某种程度上捕捉了多变量之间的交叉效应

    • Func 可以是多种函数,如 mean,std,kurtosis,min,max 等等

    • 可以对残差进行以上操作

Categorical Encoders

  • One-hot Encoder

  • Ordinal Encoder

  • 其他 Encoder

    • Count Encoder

    • HashMap

连续变量的离散化方法

  • 为什么要对连续变量进行离散化

    • 捕捉非线性效应

    • 捕捉交叉效应

  • 常见的离散化方法

    • Uniform

    • 基于 Quantile

    • 基于聚类

    • 基于树

  • 树模型

Entity Embedding

  • Entity Embedding 基础

  • 如何加入 Vincinal Information

连续变量的转换

  • 常见的数据转换方法

  • 基于 ECDF 的方法

  • Box-Cox 变换和 Yeo-Johnson Transform

缺失值和异常值的处理

  • 概述

    • 异常值和缺失值的定义常常是难以确定的

    • 异常值的检验最可靠的方法

      • EDA 加上业务逻辑

      • 可以根据分位数或其他方法(其他方法未必靠谱)

      • 如果异常值是由于输入失误造成的,则可以将之作为缺失值处理

    • 缺失值的填充往往可以根据业务决定

      • 其他可以采用平均值、中位数或众数进行填充

      • 也可以单独构建模型进行预测

  • 常见处理方法

    • 缺失值的填充往往可以根据业务决定

    • 缺失和异常本身可能是有信息量的,可以构造哑变量进行处理

      • 成租的缺失值和异常值本身可能是有信息的
    • 对于部分异常值,还需要进行截断处理

    • 对于重要的缺失变量,很有可能需要进行预测

    • R 中的一些包,如 MICE,可以帮助进行缺失值和异常值的处理

自动特征构建方法

自动特征挖掘

  • 应用

  • 难点:组合优化问题

遗传算法简介

Symbolic Learning 简介

  • 采用遗传算法找寻如何构造衍生变量

  • 在 gplearn 库当中已经实现

AutoCross 简介

  • 第四范式开发(未开源)

  • 主要目的:寻找交叉效应

  • 创新

    • Beam Search

    • 简化的逻辑回归求解方式

  • 可以进行提升

    • Meta Feature

    • 更好的优化方法

降维方法

PCA,NMF 和 tSNE

  • 为什么要降维

    • 找到宏观信息

    • 找到交叉效应

    • 不建议先降维再拟合模型

  • PCA和NMF简介

  • tSNE 简介

  • 实现

    • 在 sklearn 当中均有实现

      • PCA

      • NMF

      • tSNE

  • 应用

    • 隐藏维度的选择取决于数据

    • 数据需要进行预处理

    • 标准化

    • 选取重要变量

    • 去掉过于稀疏的个别变量

    • 可构建2折和3折交叉效应

    • 降维方法的参数并不十分重要,一般来说如果有时间,选取所有参数并拟合模型进行测试

Denoising AutoEncoder

  • Denoising AutoEncoder 简介

  • 实践中的注意事项

    • DAE 一般对多模态有很好效果

    • 一般的噪声范畴:5%-20%

    • 其他降维方法的 trick 也适用于 DAE

    • 注意将中间层均拿出来进行预测

Variational AutoEncoder

  • Variational AutoEncoder 的数学形式

  • 实践中的注意事项

    • VAE 的实现可见

    • VAE 是很火的研究领域

    • 训练常常难以收敛

    • 在实际应用中较罕见

变量选择方法

概述

  • 变量重要 = 哲学问题

  • 优化角度 = 组合优化问题

  • 初步选择可根据数据特点

    • 最重要的指标为缺失值和变化率
  • 其他的一些选择方法

    • “去一”的选择方法(主要方法)

    • 模型相关的方法->和模型高度相关,不可靠

    • 其他优化方法->不成熟

“去一”选择法

  • 整体流程

  • 问题

集成树模型

概述

  • 树模型的缺点和优点

    • 优点

      • 非线性效应

      • 交叉效应

      • 稀疏

    • 缺点

      • 不稳定

      • 表现力差

      • 精度差

  • 集成树模型分类

    • 基本思路

      • 将多个树模型构成进行平均
    • 方法

      • 随机森林类

      • 随机森林

      • ExtraTrees

      • 梯度提升树

        • GBDT

        • XGBoost

        • LightGBM

        • CatBoost

GBDT 和 XgBoost

  • GBDT 的数学

  • XgBoost 的数学

  • XgBoost 的实现

  • XgBoost 的重要参数

    • 最重要的参数

      • 树的深度
    • 其他参数

      • Eta:一般选取为 0.01-0.2

      • min_child_weight:建议进行 CV finetune

      • Gamma:建议进行 CV finetune

整理自:《NLP实战高手课》