В этом руководстве обсуждалась информация о кодировке разностей BackWard:
Кодирование с обратной разницей
Этот метод подпадает под систему контрастного кодирования для категориальных функций.Функция K категорий или уровней обычно вводится в регрессию как последовательность фиктивных переменных K-1.При обратном разностном кодировании среднее значение зависимой переменной для уровня сравнивается со средним значением зависимой переменной для предыдущего уровня.Этот тип кодирования может быть полезен для номинальной или порядковой переменной.
Если вы хотите изучить другие методы кодирования контраста, вы можете проверить этот ресурс.
Структура кода в значительной степенитак же, как и любой метод в библиотеке category_encoders, только в этот раз вы вызовете BackwardDifferenceEncoder из нее
, как было сказано, он преобразует k категорий в k-1 двоичные категории.
Iиспользовал этот метод в своей базе данных.Для «носителей» у нас было 11 категорий, и то, что мы получили после кодирования, также составляет 11 категорий.Разве это не должно быть 10 категорий или 10 столбцов двоичных значений?
df_flights = pd.read_csv('https://raw.githubusercontent.com/ismayc/pnwflights14/master/data/flights.csv')
df_flights.head()
df_flights['carrier'].unique()
, поэтому у нас есть 11 уникальных категорий.
!pip install category_encoders
import category_encoders as ce
cat_df_flights = df_flights.select_dtypes(include=['object']).copy()
encoder = ce.BackwardDifferenceEncoder(cols=['carrier'])
df_bd = encoder.fit_transform(cat_df_flights)
df_bd.head()
В результате получаются также 11 столбцов двоичных данных, но, исходя из того, что сказано в этом руководстве, должно быть 10 ...