首页 > 机器学习 > 正文

特征工程

标签:特征工程


目录

参考https://www.cnblogs.com/jasonfreak/p/5448385.html

1. 概述

本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。



1.1 数据预处理(单一特征)

所属方法 说明
preprocessing.StandardScaler 无量纲(dimension)化 标准化,基于特征矩阵的列,将特征值转换至服从标准正态分布
preprocessing.MinMaxScaler 无量纲(dimension)化 区间缩放,基于最大最小值,将特征值转换到[0, 1]区间上
preprocessing.Normalizer 归一化 基于特征矩阵的行,将样本向量转换为『单位向量』
preprocessing.Binarizer 二值化 基于给定阈值,将定量特征按阈值划分
preprocessing.OneHotEncoder one-hot编码 将定性数据转换为定量数据
preprocessing.Imputer 缺失值计算 计算缺失值,填充为均值等
preprocessing.PolynomialFeatures 多项式数据转换 多项式数据转换
preprocessing.FunctionTransformer 自定义单元数据转换 使用单变元的函数来转换数据

1.2 特征选择(多特征)

所属方法 说明
feature_selection.VarianceThreshold Filter 方差选择法
feature_selection.SelectKBest Filter 常用函数
  • pearson相关系数(scipy.stats.pearsonr)
  • 卡方检验(sklearn.feature_selection.chi2)
  • 互信息(minepy.MINE)
  • feature_selection.RFE Wrapper 特征递归消除法(递归地训练基模型[例如,sklearn.linear_model.LogisticRegression],将权值系数较小的特征从特征集合中消除)
    feature_selection.SelectFromModel Embeded 训练基模型,选择权值系数较高的特征
  • 基于惩罚项的特征选择(结合sklearn.linear_model.LogisticRegression)
  • 基于树模型的特征选择(结合sklearn.ensemble.GradientBoostingClassifier)
  • 1.3 降维(多特征)

    所属方法 说明
    decomposition.PCA PCA 主成分分析,为了让映射后的样本有最大的发散性,是一种无监督的降维方法。
    lda.LDA LDA 线性判别分析法,为了让映射后的样本有最好的分类性能,是一种有监督的降维方法。

    2. 数据预处理

    2.1 特征离散化的好处

    • 稀疏向量内积乘法运算速度快,计算结果方便存储,易扩展
    • 离散化后的特征对异常数据有很强的鲁棒性
    • 单变量离散化为n个后,每个特征有独立的权重,相当于多个特征,引入非线性
    • 离散化后再进行特征组合,如1->m,1->n,那组合就有m*n
    • 离散化后,模型会更稳定。和第二点类似。

    2.2 特征常见统计指标

    • 数据量大小,最大最小值,distinct(特征下不同值的个数)
    • 平均值、中位数、众数
    • 方差、变异系数(Coefficient of Variation,标准差/平均值,变异系数是一个无量纲量,因此在比较两组量纲不同或均值不同的数据时,应该用变异系数而不是标准差来作为比较的参考)
    • 熵(不确定性的度量,不确定性越强、越混乱,熵越大)、偏度(skewness,所有取值分布的对称性)、峰度(Kurtosis,所有取值分布形态陡缓程度)

    3. 特征选择

    两个考虑点:

    • 特征是否发散:如果不发散,即方差接近0,说明样本在这个特征上基本没差异,这个特征对于样本的区分没什么作用==>特征间彼此相关性弱的是好的特征
    • 特征与目标的相关性:除方差法,其他方法均从相关性角度考虑。==>与目标相关性强的特征是好的特征

    3.1 特征间的统计指标

    • 连续x连续:pearson相关系数、spearman相关系数
    • 分类x分类:卡方独立性检验(\(X^2\)越小,说明变量越独立,越大越相关)
    • 连续x分类:
      • 针对两组特征:t检验(检测数据的准确度,系统误差,类似bias,和真实值的差距,z检验也类似,但z检验需要知道总体方差,不容易知道,所以常用t检验)、F检验(检测数据的精密度,偶然误差,类似variance,方差)
      • 针对多于两组特征:ANOVA
    • 最大信息系数(Mutual information and maximal information coefficient,MIC):缺点:值域[0,1],当零假设不成立时,MIC的统计会受影响。
    • 信息增益(待分类的集合的熵和选定某个特征的条件熵之差,参考https://www.cnblogs.com/fantasy01/p/4581803.html)
    • 多特征距离的计算(欧式距离、标准化欧式距离、余弦、jaccard距离、KL散度)

    3.2 特征选择的形式

    根据特征选择的形式,可以分为以下三种方法:

    • Filter: 过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征
    • Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。中间的搜索方法有完全搜索、启发式搜索、随机搜索
    • Embedded:嵌入法,先使用某些机器学习算法或者模型进行训练 ,得到和个特征的权值系数,根据系数从大到小特征特征。
      • 正则化:L1:不稳定,受噪声影响大,因为表达能力差的特征系数为0;L2:更稳定,因为表达能力强的特征的系数非零
      • 树模型

    4. 降维

    pca.explained_variaance_ratio_:percentage of variance explained by each of the selected components.

    5. sklearn小技巧

    参考 http://www.cnblogs.com/jasonfreak/p/5448462.html

    类或方法 说明
    sklearn.pipeline Pipeline 流水线处理
    sklearn.pipeline FeatureUnion 并行处理
    sklearn.grid_search GridSearchCV 网格搜索调参

    原创文章,转载请注明出处!
    本文链接:http://hxhlwf.github.io/posts/ml-feature-engineering.html
    上篇: Progressive growing of GANs
    下篇: MUSE

    comment here..