机器学习-特征工程

作者: neo_ng | 来源:发表于2019-02-15 17:52 被阅读37次

    outline

    • 概念
    • 预处理
    • 特征选择
    • 降维

    概念

    数据集由数据对象组成,一个数据对象代表一个实体
    属性(attribute)是一个数据字段,表示数据对象的一个特征。属性向量(或特征向量)是用来描述一个给定对象的一组属性。
    属性的分类:

    • 标称属性(nominal attribute)
    • 二元属性(binary attribute)
    • 序数属性(ordinal attribute)--- 常量表中的某个值
    • 数值属性(numerical attribute)= 离散属性 + 连续属性
    数据清洗

    清洗标注数据,主要是数据采样和样本过滤

    数据增强( Data Augmentation)

    数据增强是指从给定数据导出的新数据的添加
    如CV领域中的图像增广技术

    预处理

    缺失值的处理

    (1)丢弃
    (2)均值
    (3)上下数据填充
    (4)插值法 线性插值
    (5)随机森林拟合

    标准化和归一化
    • 标准化
      标准化是依照特征矩阵的列处理数据,使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1
      基于正态分布假设
      标准化后可能为负
      (X-X_mean)/std

    • 归一化
      对每个样本计算其p-范数,再对每个元素除以该范数,这使得每个处理后样本的p-范数(l1-norm,l2-norm)等于1。

    • 区间缩放法
      常见的一种为利用两个最值进行缩放


      image.png

      具有加速收敛的作用,原因如下图:


      clipboard.png

    可以使用sklearn中的preproccessing库来进行数据预处理

    特征选择

    定义: 从给定的特征集合中选择出相关特征子集的过程
    两个关键问题:

    • 子集搜索
      forward搜索: 逐渐增加相关特征的策略
      backward搜索:逐渐减少特征的策略
      bidirectional搜索
    • 子集评价

    特征选择方法 = 子集搜索机制 + 子集评价机制

    特征选择的作用
    • 减少(冗余)特征数量、降维,使模型泛化能力更强,减少过拟合
    • 增强对特征和特征值之间的理解
    • 去噪


      image.png

    过滤式(filter)

    特点:特征选择过程和学习器无关
    通过特征的某个统计量值来进行排序,选择Top K特征
    from sklearn.feature_selection import SelectKBest

    • 基于方差
    • 基于信息增益
      去除方差较小的特征,譬如某些特征只有一个值

    ID3算法在选择节点对应的特征时也是使用信息增益
    对于决策树来说,树节点的划分属性所组成的集合就是选择出的特征子集

    • Pearson相关系数
      皮尔森相关系数是一种最简单的,能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性,结果的取值区间为[-1,1],-1表示完全的负相关(这个变量下降,那个就会上升),+1表示完全的正相关,0表示没有线性相关。

    • 互信息量
      互信息(Mutual Information)是度量两个事件集合之间的相关性(mutual dependence)。互信息最常用的单位是bit。
      根据互信息计算公式可得: 当互信息MI=0时,两个变量(两个事件集合)之间相互独立

    • χ2统计量(卡方检验)
      χ²检验用来检验两个事件的独立性。
      χ2 值越大,则表明实际观察值与期望值偏离越大,也说明两个事件的相互独立性越弱。

    wrapper

    特点:将后续学习器的性能作为特征子集的评价准则
    将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其他的组合进行比较
    启发式算法

    from sklearn.feature_selection import RFE

    • Las Vegas Wrapper(LVW)
      在LVW中,特征子集搜索采用了随机策略,然后训练学习器进行交叉校验。
    • 基于学习模型的特征排序
      这种方法的思路是直接使用你要用的机器学习算法,针对每个单独的特征和响应变量建立预测模型。交叉验证后,根据分数值对特征进行排序。
      特征和响应变量之间的关系是线性:线性回归
      假如某个特征和响应变量之间的关系是非线性的,可以用基于树的方法(决策树、随机森林)、或者扩展的线性模型等

    embedding

    特点:特征选择过程与学习训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择
    from sklearn.feature_selection import SelectFromModel

    L1和L2范数都有助于降低过拟合风险

    L1正则化/Lasso

    L1正则化将系数w的l1范数作为惩罚项加到损失函数上,由于正则项非零,这就迫使那些弱的特征所对应的系数变成0
    防止过拟合
    更容易获得系数解


    image.png
    L2正则化/Ridge regression岭回归

    L2正则化对于特征理解来说更加有用:表示能力强的特征对应的系数是非零

    降维

    定义:通过某种数学变化将原始高维属性空间转变为低维子空间(subspace)
    低维嵌入(三维-->二维):


    image.png

    降维方法分类


    image.png
    PCA

    from sklearn.decomposition import PCA

    参考资料

    <机器学习>第10章降维与度量学习-周志华
    <机器学习>第11章特征选择和稀疏学习-周志华
    结合Scikit-learn介绍几种常用的特征选择方法
    机器学习之特征选择
    Sklearn数据预处理:scale, StandardScaler, MinMaxScaler, Normalizer
    机器学习中,有哪些特征选择的工程方法?
    知乎特征工程总结

    相关文章

      网友评论

        本文标题:机器学习-特征工程

        本文链接:https://www.haomeiwen.com/subject/ztbmzftx.html