Datawhale打卡活动 Kaggle Spaceship Titanic
尝试了一个coggle科学的打卡活动(Coggle 30 Days of ML(22年10月)),记录一下学习过程!
Day5 特征工程进阶
步骤1:对所有类别字段进行target encoding
target encoding跟前面的onehot和labelencoder一样,是将类别特征转化为数值特征编码的一种方式。那target encoding到底是什么呢?target encoding跟上述两种方式不同的点就在于:其使用目标来创建编码(有监督)。它是任何一种可以从目标中派生出数字替换特征类别的编码方式。
from category_encoders.target_encoder import TargetEncoder
encoder = TargetEncoder(cols=col_feat,
handle_unknown='value',
handle_missing='value').fit(x_train,y_train) # 在训练集上训练
x_train = encoder.transform(x_train) # 转换训练集
x_test = encoder.transform(x_test) # 转换测试集
步骤2:使用树模型的feature importance筛选top10特征。
步骤3:使用筛选后的特征从新进行训练和验证,对比模型精度。
未筛选之前训练出来线下的分数如下:
但是提交发现了严重的过拟合!!!(解决方法后续再找)
筛选之后的线下验证分数如下: