第三阶段:数据与特征工程
专门收集机器学习特征工程技术资源的精选列表,涵盖数值、文本、图像、分类、时间序列等多种数据类型的特征工程方法和工具
Awesome Feature Engineering 项目介绍
项目概述
Awesome Feature Engineering 是一个专门收集机器学习特征工程技术资源的精选列表。该项目由 Andrei Khobnia 维护,遵循 Creative Commons Attribution-Noncommercial-ShareAlike 3.0 Unported License 许可协议。
该项目为机器学习从业者提供了一个全面的特征工程技术资源库,涵盖了不同数据类型的特征工程方法和工具。
主要内容分类
1. 数值数据 (Numeric Data)
数据变换:
- Box-Cox变换:
scipy.stats.boxcox
- 对数变换:
np.log (x + const)
- Box-Cox变换:
自动化特征工程:
Featuretools
:用于自动化特征工程
特征交互:
sklearn.preprocessing.PolynomialFeatures
:多项式特征生成- 除法运算
- 其他交互式特征
2. 文本数据 (Textual Data)
词袋模型:
- Bag-of-words model
- A Gentle Introduction to the Bag-of-Words Model
sklearn.feature_extraction.text.CountVectorizer
sklearn.feature_extraction.DictVectorizer
sklearn.feature_extraction.FeatureHasher
词嵌入技术:
特征提取技术:
3. 图像数据 (Image Data)
传统特征提取:
深度学习特征提取:
4. 分类数据 (Categorical Data)
独热编码:
- Why One-Hot Encode Data in Machine Learning?
- How to One Hot Encode Sequence Data in Python
sklearn.preprocessing.OneHotEncoder
Keras - to_categorical
目标编码:
特征哈希:
5. 时间序列数据 (Time Series Data)
- 自动特征提取:
6. 地理空间数据 (Geospatial Data)
- 包含地理位置相关的特征工程技术
项目特点
- 全面性:涵盖了机器学习中主要的数据类型和相应的特征工程技术
- 实用性:提供了具体的工具库和代码实现
- 开源性:采用开源许可协议,欢迎社区贡献
- 权威性:链接到权威的文档、教程和学术资源
- 可操作性:提供了具体的Python库和函数调用方法
使用价值
该项目对以下人群特别有价值:
- 机器学习工程师
- 数据科学家
- 特征工程研究人员
- 机器学习初学者
- 希望提升模型性能的从业者
贡献方式
项目鼓励社区贡献,可以通过创建 pull requests 来添加新的资源或改进现有内容。
总结
Awesome Feature Engineering 项目为机器学习特征工程提供了一个全面而实用的资源库,是学习和应用特征工程技术的重要参考资料。通过系统化的分类和丰富的资源链接,帮助从业者快速找到适合特定数据类型的特征工程方法。