Python 数据建模与分析项目实战预备 Day 3 - 特征工程基础与数据预处理(针对简历结构化数据)
✅ 今日目标
- 熟悉分类与数值特征的处理方式
- 完成字段的编码、标准化与清洗准备
- 构建可用于模型训练的 DataFrame
🧾 一、特征分类
我们将字段拆解为两类处理:
特征类型 | 字段 | 处理方法 |
---|---|---|
分类变量 | degree , university_type | One-Hot 编码(pandas 或 sklearn) |
布尔变量 | skill_python , skill_sql , skill_ml , pass_screening | 可直接使用(或视为分类) |
数值变量 | work_years , project_count , project_desc_len | 可标准化 / 归一化处理 |
🧪 二、常见处理操作
- 缺失值处理(当前数据无缺失)
- One-Hot 编码:将
degree
,university_type
转为哑变量 - 数值标准化:对
project_desc_len
、work_years
等做StandardScaler
- 目标值提取:
pass_screening
为目标y
,其余为特征X
📌 重点工具/API
pandas.get_dummies(df, columns=[...])
sklearn.preprocessing.StandardScaler
train_test_split()
:训练测试集划分
✏️ 今日练习任务
编写脚本 prepare_features.py
实现以下内容:
-
读取
resume_data.csv
-
对分类字段进行 one-hot 编码
-
对数值字段进行标准化
-
拆分训练/测试集
-
保存为新文件
processed_resume_data.csv
# prepare_features.py - 特征工程与数据预处理脚本import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler# 读取数据 df = pd.read_csv("./data/resume_data.csv")# One-hot 编码分类字段 df_encoded = pd.get_dummies(df, columns=["degree", "university_type"])# 分离标签与特征 X = df_encoded.drop("pass_screening", axis=1) y = df_encoded["pass_screening"]# 数值字段标准化 num_cols = ["work_years", "project_count", "project_desc_len"] scaler = StandardScaler() X[num_cols] = scaler.fit_transform(X[num_cols])# 拆分训练与测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42 )# 保存预处理结果 X_train.to_csv("./data/processed_X_train.csv", index=False) X_test.to_csv("./data/processed_X_test.csv", index=False) y_train.to_csv("./data/processed_y_train.csv", index=False) y_test.to_csv("./data/processed_y_test.csv", index=False)print("✅ 特征处理完毕,数据已保存。")