python机器学习 数据清洗与特征工程

填充缺失值(Imputation)

为什么要填充缺失值?

  • 大多数机器学习模型 不能处理 NaN
  • 直接删除数据可能导致:

    • 样本数量大幅减少
    • 类别比例失衡
  • 合理填充能 保留信息 + 提升模型稳定性

均值填充(Mean Imputation)

适用情况:

  • 连续数值型变量
  • 数据分布较对称
  • 异常值不多
train["Age"].fillna(train["Age"].mean(), inplace=True)

缺点:

  • 对异常值非常敏感
  • 可能拉偏整体分布

中位数填充(Median Imputation)

适用情况:

  • 连续数值型变量
  • 存在异常值或偏态分布
train["Age"].fillna(train["Age"].median(), inplace=True)

优点:

  • 抗异常值能力强
  • 工业界最常用

众数填充(Mode Imputation)

适用情况:

  • 类别型变量
  • 离散特征
train["Embarked"].fillna(train["Embarked"].mode()[0], inplace=True)

常见使用对象:

  • 性别
  • 城市
  • 国家
  • 等级类别

异常值检测(Outlier Detection)

pt.boxplot(dataframe)