Box
Box
Posts List
  1. 思路流程
    1. 1-数据探索
      1. 1-1-可视化
    2. 2-数据预处理
      1. 2-1-无量纲化
      2. 2-2-对定量特征二值化
      3. 2-3-对定性特征哑编码
      4. 2-4-缺失值计算
      5. 2-5-数据变换
    3. 3-特征工程
      1. 3-1-特征选择
        1. 3-1-1-过滤式选择(Filter)
        2. 3-1-2-包裹式选择(Wrapper)
        3. 3-1-3-嵌入式选择(Embedded)
      2. 3-2-降维
        1. 3-2-1-主成分分析法(PCA)
        2. 3-2-2-线性判别分析法(LDA)
    4. 4-模型选择
      1. 4-1-模型训练
      2. 4-2-交叉验证
    5. 5-集成学习
    6. 6-管道
      1. 提供两个脑图,以供参考
      2. 链接

ML-Match

“样本和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已!”

思路流程

1-数据探索

  • 工具:Pandas、Matplotlib、Seaborn、Numpy、Jupyter Notebook
  • EDA (Exploratory Data Analysis),对数据进行探索性的分析
1-1-可视化
  • 常见图表和方法:
    • 查看目标变量的分布:绘制变量之间两两的分布和相关度图表
    • 变量:用 Box Plot 来直观地查看它的分布
    • 坐标数据:用 Scatter Plot 来查看它们的分布趋势和是否有离群点的存在
    • 分类问题:将数据根据 Label 的不同着不同的颜色绘制出来,这对 Feature 的构造很有帮助
    • 绘制变量之间两两的分布和相关度图表

2-数据预处理

  • 工具:Jupyter Notebook、Sklearn、Pandas、Numpy、Matplotlib
  • 存在问题:
    • 不属于同一量纲
    • 信息冗余
    • 定性特征不能直接使用
    • 将定性特征转换为定量特征
    • 存在缺失值
    • 信息利用率低
2-1-无量纲化

无量纲化使不同规格的数据转换到同一规格。

  • 标准化:标准化需要计算特征的均值和标准差:$$x^{‘} = \frac{x - \bar{x}}{S}$$
  • 区间缩放法:区间缩放法的思路有多种,常见的一种为利用两个最值进行缩放:$$x^{‘} = \frac{x - Min}{Max - Min}$$
  • 归一化:归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”:$$x^{‘} = \frac{x}{\sqrt{\sum_j^m x[j]^2}}$$
2-2-对定量特征二值化
  • 定量特征二值化的核心在于设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0:

$$x^{‘} =
\left{\begin{matrix}
1, x > threshold \
0, x <= threshold
\end{matrix}\right.
$$

2-3-对定性特征哑编码
2-4-缺失值计算
2-5-数据变换
  • 常见的数据变换有基于多项式的、基于指数函数的、基于对数函数的

3-特征工程

  • 工具:Sklearn、Pandas、Numpy、Matplotlib、Jupyter Notebook或vscode
3-1-特征选择
3-1-1-过滤式选择(Filter)

先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。

  • 方差选择法:使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征
  • 相关系数法:使用相关系数法,先要计算各个特征对目标值的相关系数以及相关系数的P值
  • 卡方检验:经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:$$x^2 = \sum \frac{(A - E)^2}{E}$$
  • 互信息法:经典的互信息也是评价定性自变量对定性因变量的相关性的,互信息计算公式如下:$$I(X;Y) = \sum_{x \epsilon X} \sum_{y \epsilon Y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)}$$
3-1-2-包裹式选择(Wrapper)

选择直接把最终将要使用的学习器的性能作为特征子集的评价标准。

  • 递归特征消除法:递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。
3-1-3-嵌入式选择(Embedded)

将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。

  • 基于惩罚项的特征选择法:使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维
  • 基于树模型的特征选择法:树模型中GBDT也可用来作为基模型进行特征选择
3-2-降维

高维情形下经常会碰到数据样本稀疏、距离计算困难的问题(称为 “维数灾难”),解决方法就是降维。有很多方法,下面是主要的两种方法:

3-2-1-主成分分析法(PCA)
3-2-2-线性判别分析法(LDA)

4-模型选择

  • 工具:vscode、conda、boost相关(xgboost/catboost/lightgbm)
  • 常用算法:
    • Gradient Boosting
    • Random Forest
    • Extra Randomized Trees
    • SVM
    • Linear Regression
    • Logistic Regression
    • Neural Networks
4-1-模型训练
4-2-交叉验证

5-集成学习

  • 常见的 Ensemble 方法:
    • Bagging
    • Boosting
    • Blending
    • Stacking
  • 从理论上讲,Ensemble 要成功,有两个要素:
    • Base Model 之间的相关性要尽可能的小
    • Base Model 之间的性能表现不能差距太大

6-管道

  • 管道:管道是保持数据处理和建模代码组织的简单方法。具体来说,管道束预处理和建模步骤,这样您就可以像使用单个步骤一样使用整个束。
    • 优点:
      • 整洁的代码
      • 较少的bug
      • 更容易重构
      • 模型测试有更多选项
  • 作用:
    • 模块化 | 特征变换:只需写很少的代码就能将新的 Feature 更新到训练集中
    • 自动化 | 网格搜索:只要预先设定好使用的 Model 和参数的候选,就能自动搜索并记录最佳的 Model
    • 自动化 | 集成学习:每个一段时间将现有最好的 K 个 Model 拿来做 Ensemble










提供两个脑图,以供参考








Sklearn类 功能
StandardScaler 无量纲化
MinMaxScaler 无量纲化
Normalizer 归一化
Binarizer 二值化
OneHotEncoder 哑编码
Imputer 缺失值计算
PolynomialFeatures 多项式数据转换
FunctionTransformer 自定义单元数据转换
VarianceThreshold Filter
SelectKBest Filter
RFE Wrapper
SelectFromModel Embedded
decomposition PCA
lda LDA
链接
Supporting
Scan, Support Daidai
  • WeChat scan
  • Alipay scan