数据清洗的艺术 🧹
在建模前,数据清洗是关键步骤。常见的操作包括:
- 删除重复记录 🚫
- 处理缺失值 🔄
- 去除异常值 🔍
- 转换非结构化数据 📁
特征工程进阶 🧠
通过以下方法提升特征质量:
- 生成多项式特征 📈
- 使用SMOTE处理类别不平衡 🔄
- 特征缩放(标准化/归一化) 📏
- 时序特征提取 ⏳
缺失值处理方案 📉
方法 | 适用场景 | 示例代码 |
---|---|---|
均值填充 | 数值型特征 | df.fillna(df.mean()) |
插值法 | 时间序列数据 | df.interpolate() |
分类填充 | 类别型特征 | df.fillna('Unknown') |
分类变量编码技巧 🔑
- Label Encoding:适合有序类别(如教育程度)
- One-Hot Encoding:防止类别顺序影响(如颜色)
- Target Encoding:用目标变量统计值替代(需注意过拟合)
时间序列预处理 📅
- 分割训练集/测试集时需保持时间顺序 ⏳
- 滑动窗口特征提取 📦
- 转换为监督学习格式 🔄
- 日期特征分解(年/月/日) 🗓️
文本数据预处理 📖
import nltk
nltk.download('punkt')
from sklearn.feature_extraction.text import TfidfVectorizer
# 分词与去停用词
tokens = [nltk.word_tokenize(text) for text in texts]