[БЕЗ_ЗВУКА] В этом видео мы рассмотрим, что такое Feature engineering. Допустим, у нас есть жилой дом, который отгорожен забором, и у него есть ворота. Эти ворота могут открываться автоматически. Мы хотим сделать так, чтобы эти ворота открывались только для тех номеров автомобилей, которые мы знаем, которые есть в нашей базе. Для того чтобы решить такую задачу, кроме различных технических и организационных подробностей, нужно составить в том числе модель, которая позволит нам определять номер автомобиля. У нас есть камера, которая снимает подъезжающий автомобиль. Соответственно мы имеем фотографию. Для того чтобы составить такую модель, нам нужен большой датасет фотографий. Если у вас есть несколько десятков тысяч таких фотографий, датасет такого размера, то тогда вы сможете составить модель. Если нет, то вам придется поискать похожий датасет, для того чтобы составить первичную модель. Это первый этап. Дальше как раз стоит задача выделения основных признаков, по которым вы сможете понять, что это номер и что на этом номере написано, какие там цифры. Какие же есть подходы? Самый первый подход — это выделить контур самого номера, выделить прямоугольник. Если прямоугольник расположен немножко под углом и выглядит не совсем ровно, то, конечно, вы должны будете его распрямить и превратить в правильный прямоугольник. А дальше распознать с помощью какого-то алгоритма распознавания цифр и букв то, что на нем написано. Соответственно вы получаете картинку, эта картинка распознается, дальше текст, который получился, сверяется с эталоном в базе, и открываются ворота или не открываются ворота. Это самый простой подход, как можно найти номер. Но есть и другой подход. Например, мы выделяем все вертикальные параллельные прямые и между ними ищем набор цифр. Такой подход на практике работает лучше. И вот искать рамку или искать параллельные прямые — это и есть feature engineering для решения такой задачи. Дальше возникает вопрос: а что, если кто-нибудь подойдет просто с напечатанным нужным номером, то, наверное, с такой моделью ворота откроются, и человек сможет зайти? То есть это будет не автомобиль, а человек. Тогда мы можем расширить нашу задачу и поставить еще одну модель, которая будет определять, что это за автомобиль. И мы уже сможем открывать ворота по совокупности факторов, если мы понимаем цвет машины и марку этой машины и ее номер. Для этого мы будем использовать другие признаки, например, признаки фар, признаки колес или признак антенны для радио, которая может существенно улучшить модель распознавания автомобиля. Таким образом, мы будем развивать свою модель, находя правильные фичи. Важно понимать, что feature engineering — это больше искусство и здесь нет каких-то заранее заданных правил, точно известных. Совершенно могут оказаться удивительные признаки, которые будут сильно повышать качество вашей модели. Более того, сам feature engineering является очень важной частью моделирования, потому что часто именно от этой фазы зависит успешность и результат вашего проекта. Давайте посмотрим, какие еще могут быть признаки. Допустим, это могут быть категориальные признаки, скажем — цвет. Допустим, у вас есть четыре признака: цвет красный, цвет желтый, цвет зеленый и цвет не определен. С таким набором признаков вы, например, можете понимать, какой сейчас горит цвет на светофоре. Или признаки даты и времени. Скажем, у вас есть признак того, что сейчас какое-то время года. И это важно. Или какой-то квартал. И вы это используете в своей модели, скажем, учитываете сезонность. Это могут быть числовые переменные, которые часто нужно округлить или разделить на какую-то целую вещественную часть, то есть нормализовать эти цифры. Это тоже часто помогает приводить эти данные в тот формат, который лучше обрабатывается моделью. Или, допустим, у вас есть такой признак, как масса, и можно ввести значение признака: масса больше заданной. Или: масса находится в таком-то промежутке. Это тоже все может быть фичами. Также могут быть строковые признаки. Допустим, у вас есть какие-то обозначения фамилий или префиксы. Допустим: мистер, миссис, доктор в англоязычном мире. По этим признакам вы вполне можете определить пол тех людей, которые находятся в списке. Если это касается русских фамилий, то это будут окончания -ова, -ина и так далее, то есть те, которые характеризуют именно половую принадлежность. Но, конечно, вы не сможете покрыть какую-то часть фамилий всеми этими признаками. Тем не менее, такие фичи часто очень сильно повышают качество вашей модели и результат. Итак, мы сегодня обсудили, что такое feature engineering, или выделение признаков, и поговорили о том, какие бывают признаки, какие бывают категории признаков, и что выделение признаков — это очень важный этап в машинном обучении, для того чтобы получать качественный результат. [ЗВУК]