Я работаю над проблемой классификации нескольких классов, имеющей пять классов в целевой колонке. Я сгенерировал функции для категориальных переменных, используя расширенное среднее кодирование (Target encoding). Метод основан на кодировании значений категориальных переменных со средним значением целевой переменной на значение.
Это также приводит к некоторым значениям NaN, как в столбце «Transaction-Type_mean_target».
Как лучше заполнить эти значения NaN? Должен ли я заполнить
это со средним значением столбца.
Как создать среднее кодирование для моих тестовых данных в качестве
Целевая / зависимая переменная «Жалоба-Статус» отсутствует?
Входные данные:
![enter image description here](https://i.stack.imgur.com/vodSK.png)
Генерация среднего кодирования:
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)