Категориальные входные данные

В этой статье мы поговорим о категориальных входных данных или, другими словами, как поступать с вещами, которые не являются числами (categorical array).

В вводной лекции по машинному обучению мы упоминали об исходящих данных, которые являются категориями или признаками. При регрессии исходящими данными были действительные величины.

Но когда нашими входными данными являются категории или признаки, мы, к сожалению, не можем так просто их различать.

Для примера, пусть у нас в качестве исходящих данных, которые мы хотим спрогнозировать, дана величина зарплаты, а в качестве входных данных – предположим, пол человека, возраст, ученая степень, опыт работы и средний балл оценок.

Обратите внимание, что некоторые из этих входных данных – это числа, например, возраст, количество лет работы и средний балл оценок, тогда как остальные – это категории. Пол может быть мужским или женским, учёная степень может быть бакалавр, магистр или доктор философии. Ранее все наши входные данные x были числами. А что нам делать сейчас? Мы же не можем умножать категории!

Один из вариантов решения называется прямым кодированием (one-hot encoding). Суть его в том, что мы назначаем по одной размерности X для каждого возможного состояния категории.

Например, учёная степень, имеющая три различных состояния (бакалавр, магистр или доктор философии) будет представлена символьным вектором-строкой с размерностью 3: X = [x1, x2, x3]. Пусть, например, степени бакалавра присвоим значение [1, 0, 0], степени магистра – [0, 1, 0], степени доктора философии – [0, 0, 1]. Обратите внимание, что только одна размерность может иметь значение «единица», поэтому вы никогда не увидите чего-то вроде [1, 1, 0] или [0, 1, 1].

А что делать, если у нас более одного входящего фактора?

Пусть, например, у нас есть два фактора – учёная степень и пол. Учёная степень имеет размерность 3, пол – размерность 2, следовательно, общая размерность будет составлять 5.

Что хорошо в работе с категориями – так это то, что результаты очень просто интерпретировать.

В данном случае наш свободный член равен 50 000, что можно рассматривать как своего рода отправную точку. Если вы женщина, то из этой величины мы должны вычесть 5 000, следовательно, ожидаемый размер зарплаты равен 45 000. Если же вы мужчина, то ожидаемая зарплата составит 55 000. Это значит, что ваша компания демонстрирует половую дискриминацию в уровне зарплаты.

Поскольку пол является бинарной переменной, мы можем сформулировать это уравнение и несколько по-другому. Пусть y – это размер зарплаты, но теперь у нас есть только один x, принимающий значение 1, если мужчина и 0, если женщина. Тогда наше уравнение получает вид

y = 45 000 + 10000x.

Это даёт нам те же самые значения уровня зарплаты для мужчины и женщины, но в данном случае в x заложен случай с мужчиной, тогда как случай с женщиной заложен в свободном члене.

Обратите внимание, что если у вас более одной входящей категориальных переменных, то так делать не стоит. Дело в том, что если у вас, например, исходящая переменная зависит от учёной степени человека и его пола, то свободный член будет одновременно характеризовать и отправную точку для первой множественной переменной, и значение результата для пола. В таком случае результат интерпретировать будет куда сложнее.

Андрей Никитенко
Андрей Никитенко
Задать вопрос эксперту
Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Share via
Copy link