欢迎!此项目提供了基于Jupyter Notebook的交互式实用特征工程手册。其一共包含三个部分数据预处理,特征选择,特征压缩。其中数据预处理完整中文版已经完成,特征选择与特征压缩的中文版正在制作中。每个部分将在其单独的Notebook中演示。由于某些特征选择算法(例如“模拟退火”和“遗传算法”)在python中缺少完整连续的实现,因此我们还提供了相应的python脚本实现这些算法(模拟退火, 基因算法),并将其涵盖在我们的教程供您参考。
-
第一个笔记本 主要涵盖了数据预处理的介绍,包含基于 scikit-learn 处理静态连续特征,基于 Category Encoders 处理静态类别特征,基于Featuretools 处理时间序列问题。
-
第二个笔记本 主要涵盖了特征选择的介绍,包含基于 scikit-learn 实现单变量特征过滤,基于 scikit-feature 实现多变量特征过滤,基于 scikit-learn 实现确定性封装筛选,基于我们撰写的 模拟退火及基因算法 脚本实现随机封装筛选,基于 scikit-learn 实现嵌入特征筛选。
-
第三个笔记本 主要涵盖了特征压缩降维的介绍,包含基于 scikit-learn 实现监督与无监督特征降维。
项目内容 英文版地址 中文版地址 README README 中文版README 数据预处理 Notebook 1 第一个笔记本 特征选择 Notebook 2 第一个笔记本-2.1.1 特征降维 Notebook 3 翻译中
- 1 Data Prepocessing 数据预处理
- 1.1 Static Continuous Variables 静态连续变量
- 1.1.1 Discretization 离散化
- 1.1.1.1 Binarization 二值化
- 1.1.1.2 Binning 分箱
- 1.1.2 Scaling 缩放
- 1.1.2.1 Stardard Scaling (Z-score standardization) 标准缩放 (Z值标准化)
- 1.1.2.2 MinMaxScaler (Scale to range) 最大最小缩放 (按数值范围缩放)
- 1.1.2.3 RobustScaler (Anti-outliers scaling) 稳健缩放 (抗异常值缩放)
- 1.1.2.4 Power Transform (Non-linear transformation) 幂次变换 (非线性变换)
- 1.1.3 Normalization 正则化
- 1.1.4 Imputation of missing values 缺失值填补
- 1.1.4.1 Univariate feature imputation 单变量特征插补
- 1.1.4.2 Multivariate feature imputation 多元特征插补
- 1.1.4.3 Marking imputed values 标记估算值
- 1.1.5 Feature Transformation 特征变换
- 1.1.5.1 Polynomial Transformation 多项式变换
- 1.1.5.2 Custom Transformation 自定义变换
- 1.1.1 Discretization 离散化
- 1.2 Static Categorical Variables 静态类别变量
- 1.2.1 Ordinal Encoding 序数编码
- 1.2.2 One-hot Encoding 独热编码
- 1.2.3 Hashing Encoding 哈希编码
- 1.2.4 Helmert Coding Helmert 编码
- 1.2.5 Sum (Deviation) Coding 偏差编码
- 1.2.6 Target Encoding 目标编码
- 1.2.7 M-estimate Encoding M估计量编码
- 1.2.8 James-Stein Encoder James-Stein 编码
- 1.2.9 Weight of Evidence Encoder 证据权重编码
- 1.2.10 Leave One Out Encoder 留一法编码
- 1.2.11 Catboost Encoder Catboost 编码
- 1.3 Time Series Variables 时间序列变量
- 1.3.1 Time Series Categorical Features 时间序列类别变量
- 1.3.2 Time Series Continuous Features 时间序列连续变量
- 1.3.3 Implementation 代码实现
- 1.3.3.1 Create EntitySet 生成实体集
- 1.3.3.2 Set up cut-time 设置时间截断
- 1.3.3.3 Auto Feature Engineering 自动特征工程
- 1.1 Static Continuous Variables 静态连续变量
- 2 Feature Selection 特征选择
- 2.1 Filter Methods 过滤法
- 2.1.1 Univariate Filter Methods 单变量特征过滤
- 2.1.1.1 Variance Threshold 方差选择法
- 2.1.1.2 Pearson Correlation (regression problem) 皮尔森相关系数 (回归问题)
- 2.1.1.3 Distance Correlation (regression problem) 距离相关系数 (回归问题)
- 2.1.1.4 F-Score (regression problem) F-统计量 (回归问题)
- 2.1.1.5 Mutual Information (regression problem) 互信息 (回归问题)
- 2.1.1.6 Chi-squared Statistics (classification problem) 卡方统计量 (分类问题)
- 2.1.1.7 F-Score (classification problem) F-统计量 (分类问题)
- 2.1.1.8 Mutual Information (classification problem) 互信息 (分类问题)
- 2.1.2 Multivariate Filter Methods 多元特征过滤
- 2.1.2.1 Max-Relevance Min-Redundancy (mRMR) 最大相关最小冗余
- 2.1.2.2 Correlation-based Feature Selection (CFS) 基于相关性的特征选择
- 2.1.2.3 Fast Correlation-based Filter (FCBF) 基于相关性的快速特征选择
- 2.1.2.4 ReliefF
- 2.1.2.5 Spectral Feature Selection (SPEC) 基于谱图的特征选择
- 2.1.1 Univariate Filter Methods 单变量特征过滤
- 2.2 Wrapper Methods 封装方法
- 2.2.1 Deterministic Algorithms 确定性算法
- 2.2.1.1 Recursive Feature Elimination (SBS) 递归式特征消除
- 2.2.2 Randomized Algorithms 随机方法
- 2.2.2.1 Simulated Annealing (SA) 基于模拟退火特征选择
- 2.2.2.2 Genetic Algorithm (GA) 基于基因算法特征选择
- 2.2.1 Deterministic Algorithms 确定性算法
- 2.3 Embedded Methods 嵌入方法
- 2.3.1 Regulization Based Methods 基于正则化模型的方法
- 2.3.1.1 Lasso Regression (Linear Regression with L1 Norm) 套索回归
- 2.3.1.2 Logistic Regression (with L1 Norm) 逻辑回归
- 2.3.1.3 LinearSVR/ LinearSVC 线性向量支持机
- 2.3.2 Tree Based Methods 基于树模型的方法
- 2.3.1 Regulization Based Methods 基于正则化模型的方法
- 2.1 Filter Methods 过滤法
- 3 Dimension Reduction 特征降维
- 3.1 Unsupervised Methods 非监督方法
- 3.1.1 PCA (Principal Components Analysis) 主成分分析
- 3.2 Supervised Methods 监督方法
- 3.2.1 LDA (Linear Discriminant Analysis) 线性判别分析
- 3.1 Unsupervised Methods 非监督方法
注:由于部分内容未有前人翻译,部分翻译可能不尽准确
参考文献已在各独立 Notebook 中分别记录。
此资料为笔者业余时间整理制作,欢迎各位指正其中的不足之处!让我们一起让这份学习资料更加完善~
陈颖祥 E-mail: [email protected]
杨子晗 E-maii: [email protected]