开始使用免费开始使用

筛除高度相关的特征

您将自动移除 ANSUR 数值型数据集中高度相关的特征。您需要计算相关系数矩阵,并筛除相关系数大于 0.95 或小于 -0.95 的列。

由于每个相关系数在矩阵中会出现两次(A 对 B 的相关性等于 B 对 A 的相关性),因此应忽略相关矩阵的一半,只移除一对相关特征中的一个。为此请使用遮罩(mask)技巧。

本练习是课程的一部分

Python 中的降维

查看课程

练习说明

  • 计算 ansur_df 的相关矩阵,并取该矩阵的绝对值。
  • 使用在右上三角为 True 的布尔遮罩,并将其应用到相关矩阵上。
  • 将相关系数阈值设为 0.95
  • 从 DataFrame 中删除 to_drop 中列出的所有列。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Calculate the correlation matrix and take the absolute value
corr_df = ansur_df.____().____()

# Create a True/False mask and apply it
mask = np.____(np.____(corr_df, dtype=____))
tri_df = corr_df.____(mask)

# List column names of highly correlated features (r > 0.95)
to_drop = [c for c in tri_df.columns if any(tri_df[c] >  ____)]

# Drop the features in the to_drop list
reduced_df = ansur_df.____(____, axis=1)

print(f"The reduced_df DataFrame has {reduced_df.shape[1]} columns.")
编辑并运行代码