构造衍生变量,编码类别,分箱与特征变换
使用 user_logs 数据集,包含用户ID、登录次数、购买次数、消费金额等信息。
首先读取用户行为数据集,这是特征工程的第一步。
import pandas as pd
df = pd.read_csv('user_logs.csv')
print(df.head())
通过现有列的运算创建新特征,这是特征工程中最常用的技巧。
df['avg_spent_per_login'] = df['total_spent'] / df['logins'] df['conversion_rate'] = df['purchases'] / df['logins'] print(df[['user_id', 'avg_spent_per_login', 'conversion_rate']].head())
将类别变量转换为数值,适合机器学习算法处理。
df['gender_encoded'] = df['gender'].map({'F': 0, 'M': 1})
print(df[['gender', 'gender_encoded']].head())
将连续变量划分为不同的区间,便于模型捕捉非线性关系。
bins = [0, 25, 35, 50, 100] labels = ['青年', '中青年', '中年', '中老年'] df['age_group'] = pd.cut(df['age'], bins=bins, labels=labels) print(df[['age', 'age_group']].head())
将数值特征转换为均值为0、标准差为1的分布,适用于需要距离计算的算法。
df['logins_std'] = (df['logins'] - df['logins'].mean()) / df['logins'].std() print(df[['logins', 'logins_std']].head())