特征生成是通过Python对原始数据提取或构造新特征以提升模型性能的过程。它利用pandas、numpy等库实现时间特征提取(如从时间戳获取小时、星期)、数值变换(如对数、平方)、类别组合(如城市+类别)和统计聚合(如用户均值)。相比单纯建模,高质量特征能增强预测能力、降低噪声敏感度,并减少对复杂模型的依赖。结合业务理解的特征更有效,例如“最近7天登录次数”反映用户活跃度。本质上,特征生成让数据更“智能”,帮助模型更好捕捉规律。
Python特征生成是指使用Python编程语言对原始数据进行处理,从中提取或构造出对机器学习模型更有用的新特征的过程。它不是简单地整理数据,而是通过已有字段创造更能反映问题本质、提升模型性能的输入变量。
1. 时间特征提取
从时间戳中提取年、月、日、小时、星期等。import pandas as pd df['date'] = pd.to_datetime(df['timestamp']) df['hour'] = df['date'].dt.hour df['weekday'] = df['date'].dt.weekday df['is_weekend'] = df['weekday'].isin([5, 6])
2. 数值特征变换
对数值做对数、平方、归一化等处理,使分布更合理。import numpy as np df['log_income'] = np.log1p(df['income']) df['age_squared'] = df['age'] ** 2
3. 类别组合与交叉
将多个类别变量组合成新特征,发现交互效应。df['city_category'] = df['city'] + '_' + df['category']
4. 统计聚合特征
基于分组计算均值、计数、标准差等,常用于用户行为建模。df['user_avg_amount'] = df.groupby('user_id')['amount'].transform('mean')基本上就这些。特征生
成不是技术炫技,而是用Python把数据变得更“聪明”的过程。