我正在研究目标列中有五个类的多类分类问题。我使用扩展平均编码(目标编码)为分类变量生成了特征。该方法基于使用每个值的目标变量的平均值对分类变量值进行编码。
这也会导致一些 NaN 值,例如“Transaction-Type_mean_target”列。
填充这些 NaN 值的最佳方法是什么?我应该用均值列填充这些。
由于目标/因变量“投诉状态”不存在,如何为我的测试数据生成平均编码?
输入数据 :
生成平均编码:
def add_feat_mean_encoding(col_list):
"""
Expanding mean encoding
"""
for i in col_list:
cumsum = train.groupby(i)['Complaint-Status'].cumsum() - train['Complaint-Status']
cumcnt = train.groupby(i).cumcount()
train[i+'_mean_target'] = cumsum/cumcnt
cat_var = ['Transaction-Type','Complaint-reason','Company-response','Consumer-disputes']
add_feat_mean_encoding(cat_var)