特征变换
您正与银行经理讨论信用数据集。她提出,最安全的贷款申请通常会请求中等范围的授信金额。数值过低或过高都意味着高风险。这表明该变量与类别之间可能存在非线性关系。您想要检验这个假设。您将对该特征进行一次非线性变换。随后,您将使用已预加载的 SelectKBest() 和 chi2() 指标来评估哪个特征更有助于预测类别。
数据以 pandas DataFrame 的形式提供,名为 credit,类别变量位于 class 列。您还已预加载 pandas 为 pd,numpy 为 np。
本练习是课程的一部分
用 Python 设计机器学习工作流
练习说明
- 定义一个函数:将数值向量中的每个值与该向量平均值的绝对差作为变换结果。
- 将此变换应用到数据集的
credit_amount列,并将结果存入名为diff的新列。 - 创建一个
SelectKBest()特征选择器,使用chi2()指标在credit_amount与diff两列中选出 1 列。 - 查看结果。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Function computing absolute difference from column mean
def abs_diff(x):
return ____(x-____)
# Apply it to the credit amount and store to new column
credit['diff'] = ____
# Create a feature selector with chi2 that picks one feature
sk = ____(chi2, ____)
# Use the selector to pick between credit_amount and diff
sk.fit(____, credit['class'])
# Inspect the results
sk.____()