特征工程是数据分析和建模中非常重要的一步,通过选择、提取或构造对模型有效的特征,可以提高模型的性能和预测准确性。在本案例中,我们将进行特征选择、构造新特征,确保它们与分析目标(预测客户流失)相关。最后,数据会被分割为训练集和测试集,以便后续的模型训练和评估。
3.1 特征选择
在初步探索后,我们需要根据业务需求和数据分析目标选择与客户流失相关的特征。
以下是我们需要的主要特征:
CreditScore: 客户的信用评分Geography: 客户所在的国家Gender: 客户性别Age: 客户年龄Tenure: 客户持有账户的时间(年)Balance: 客户账户余额NumOfProducts: 客户持有的银行产品数量HasCrCard: 客户是否拥有信用卡IsActiveMember: 客户是否为活跃用户EstimatedSalary: 客户的预估工资- 目标变量:
Exited(是否流失)
我们将丢弃无关或对预测无用的列,如RowNumber、CustomerId和Surname。
# 丢弃不相关的列
df = df.drop(['RowNumber', 'CustomerId', 'Surname'], axis=1)
# 检查特征选择后的数据
print(df.head())
3.2 特征编码
有些列是类别型数据(如Geography和Gender),在机器学习中我们需要将这些类别特征转化为数值表示。我们将使用独热编码(One-Hot Encoding) 来处理这些类别特征。
# 使用独热编码处理类别特征
df = pd.get_dummies(df, columns=['Geography', 'Gender'], drop_first=True)
# 查看编码后的数据集
print(df.head())
在这里,Geography列将被分解为三个国家(例如,Geography_France,Geography_Germany),Gender列会转换为一个二值变量(0表示女性,1表示男性)。
3.3 构造新特征
我们还可以构造新的特征来增强模型的预测能力。例如,我们可以创建一个新的特征BalanceSalaryRatio,表示客户的账户余额与其预估工资的比率,这可能与客户的流失行为有一定关系。
# 创建新特征:账户余额与预估工资的比率
df['BalanceSalaryRatio'] = df['Balance'] / df['EstimatedSalary']
# 检查新特征的分布
print(df[['Balance', 'EstimatedSalary', 'BalanceSalaryRatio']].head())
3.4 数据集划分 & 数据标准化
数值特征如CreditScore、Age、Balance等的范围差别很大,可能影响模型的性能。我们将对这些特征进行标准化处理,将它们缩放到相同的尺度。
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 定义特征和目标变量
X = df.drop('Exited', axis=1)
y = df['Exited']
# 先划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 选择需要标准化的数值特征
numeric_features = ['CreditScore', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'EstimatedSalary', 'BalanceSalaryRatio']
# 初始化标准化器
scaler = StandardScaler()
# 在训练集上拟合标准化器
X_train[numeric_features] = scaler.fit_transform(X_train[numeric_features])
# 使用相同的标准化器转换测试集
X_test[numeric_features] = scaler.transform(X_test[numeric_features])
3.5 小结
- 特征选择:我们选择了与客户流失相关的特征,丢弃了与业务无关的列。
- 特征编码:通过独热编码处理了类别型特征
Geography和Gender,将其转化为数值。 - 特征构造:新增了
BalanceSalaryRatio特征,进一步增强模型的预测能力。 - 特征标准化:对数值型特征进行了标准化处理,以提高模型的训练效果。
- 数据集划分:将数据划分为训练集和测试集,为后续的模型训练做好准备。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














请登录后查看评论内容