开始使用免费开始使用

超越二分类

当然,二分类只是一个特殊情况。目标编码可用于任何类型的目标变量:

  • 对于二分类,通常使用目标均值编码。
  • 对于回归,可以将均值替换为中位数、四分位数等。
  • 对于多分类,若有 N 个类别,则以"一对其余"的方式为每个类别构造 1 个特征,取该类别的目标均值。

您编写的 mean_target_encoding() 函数可用于上述任意目标类型。现在将它应用到房价预测这个回归问题(House Prices Kaggle 竞赛示例)。

您的目标是使用目标均值编码对分类特征 "RoofStyle" 进行编码。traintest DataFrame 已在工作区中就绪。

本练习是课程的一部分

用 Python 赢下 Kaggle 竞赛

查看课程

练习说明

  • mean_target_encoding() 函数调用补全所有缺失参数。目标变量名为 "SalePrice"。将超参数 \(\alpha\) 设为 10。
  • 请记住,traintest 参数应传入训练集和测试集的 DataFrame。
  • targetcategorical 参数应传入目标变量名与需编码的特征名。

交互式实操练习

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

# Create mean target encoded feature
train['RoofStyle_enc'], test['RoofStyle_enc'] = mean_target_encoding(train=train,
                                                                     test=____,
                                                                     target='____',
                                                                     categorical='____',
                                                                     alpha=____)

# Look at the encoding
print(test[['RoofStyle', 'RoofStyle_enc']].drop_duplicates())
编辑并运行代码