超越二分类
当然,二分类只是一个特殊情况。目标编码可用于任何类型的目标变量:
- 对于二分类,通常使用目标均值编码。
- 对于回归,可以将均值替换为中位数、四分位数等。
- 对于多分类,若有 N 个类别,则以"一对其余"的方式为每个类别构造 1 个特征,取该类别的目标均值。
您编写的 mean_target_encoding() 函数可用于上述任意目标类型。现在将它应用到房价预测这个回归问题(House Prices Kaggle 竞赛示例)。
您的目标是使用目标均值编码对分类特征 "RoofStyle" 进行编码。train 和 test DataFrame 已在工作区中就绪。
本练习是课程的一部分
用 Python 赢下 Kaggle 竞赛
练习说明
- 为
mean_target_encoding()函数调用补全所有缺失参数。目标变量名为"SalePrice"。将超参数 \(\alpha\) 设为 10。 - 请记住,
train和test参数应传入训练集和测试集的 DataFrame。 - 而
target与categorical参数应传入目标变量名与需编码的特征名。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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())