Функции, которые вы предоставляете алгоритму машинного обучения, имеют большее значение для модели прогнозирования, чем выбор между двумя похожими алгоритмами (при условии, что они оба подходят для ваших данных). На самом деле, с интеллектуальной разработкой функций даже более простые алгоритмы могут превзойти сложные. Вменение данных является критическим элементом в разработке признаков. Если в ваших данных много пропущенных значений, то качество вменения может повлиять на ваши прогнозы или разрушить их.

Как плохое вменение вредит вам? Любой алгоритм машинного обучения пытается понять комбинацию входных признаков, которая может привести к различным значениям целевой переменной. Эта взаимосвязь между функциями и их комбинированная связь с целевой переменной изучается с использованием предоставленных данных. Использование плохого вменения для отсутствующих значений добавило бы шума в модель, что затруднило бы ее способность исследовать отношения в данных. По этой причине, если у вас достаточно данных, а пропущенные значения разбросаны случайным образом, вам следует удалить наблюдения, содержащие пропущенные значения, а не вводить эти значения.

Случай случайного вменения леса. Хотя среднее значение, медиана и мода являются допустимыми вменениями, они лучше, чем случайное угадывание значения для отсутствующей записи. Лучшим подходом является использование, скажем, линейной регрессии для вменения.

Но линейная регрессия — это параметрическая модель со своим набором допущений. Если векторы признаков не соответствуют предположениям линейной регрессии, вы получите плохое вменение пропущенных значений. Кроме того, если вам нужно ввести отсутствующие значения, скажем, для 10 различных функций, вам нужно запустить эту модель 10 раз, каждый раз принимая функцию с отсутствующими значениями в качестве целевой переменной.

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

Тогда вам нужна непараметрическая модель, которая не делает никаких предположений о распределении данных, может изучать сложные структуры данных и может работать как с непрерывными, так и с категориальными переменными. Войдите в Случайный Лес!! Дополнительным преимуществом RF является то, что он склонен к выбросам и может обрабатывать корреляции между входными функциями.

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

Как рассчитываются эти сходства? Это один из самых полезных, но недооцененных инструментов в случайном лесу. После того, как каждое дерево выращено, случайный лес помещает все данные, как обучающие, так и OOB (тестовые), вниз по дереву. Если два наблюдения попадают в один и тот же конечный узел (с одинаковым прогнозом), это увеличивает их сходство на единицу. Эта оценка подобия рассчитывается для всех точек данных на каждом отдельном дереве, выращенном в РФ. Наконец, индивидуальные оценки для каждого наблюдения складываются и делятся на количество деревьев для их нормализации. Для набора данных с N наблюдениями вычисляются оценки сходства между каждой парой наблюдений и сохраняются в матричной форме NxN.

Заполняет. RF начинается с традиционного подхода. В каждом классе пропущенные значения непрерывных переменных заменяются медианным значением класса. Точно так же в каждом классе отсутствующие значения для категориальных переменных заменяются режимом класса. Эти замещающие значения называются заливками.

Замена пропущенных значений для обучающих данных (наблюдения, где существуют метки):RF начинает с грубого заполнения пропущенных значений. Затем он выполняет поиск по лесу и вычисляет сходство между наблюдениями. Затем в каждом классе для отсутствующих значений непрерывных признаков вменение рассчитывается как средневзвешенное значение неотсутствующих значений. Веса — это не что иное, как сходство, рассчитанное во время лесного прогона. Для категориальных признаков используется режим. Это составляет одну итерацию. Эта итерация повторяется снова с использованием ранее вмененных значений до тех пор, пока вмененные значения и оценки сходства не стабилизируются. Обычно достаточно 4–6 итераций, чтобы стабилизировать вмененные значения.

Замена пропущенных значений для тестовых данных (наблюдения, в которых метки не существуют): Если метки не существуют, RF, являющийся алгоритмом классификации, не может создавать деревья и, следовательно, не может вычислять близости. Чтобы преодолеть это, RF применяет хитрость: каждая строка данных, не имеющая метки, реплицируется m раз, где m — количество классов. Например, если 100 наблюдений не имеют метки, а остальные данные имеют 10 разных меток, каждое немаркированное наблюдение повторяется 10 раз, каждый раз присваивая другую метку. Таким образом, для 100 непомеченных строк и 10 различных меток создается набор данных из 1000 наблюдений.

Предполагается, что первая реплика строки относится к классу 1, а заполняемый класс используется для замены отсутствующих значений. Предполагается, что 2-й повтор относится к классу 2, и на нем используются наполнители класса 2, и так далее, пока последний повтор не будет считаться классом m. Этот новый набор данных затем спускается по деревьям. В каждом наборе наблюдений (которые повторялись m раз) класс, получивший большинство голосов, считается меткой этого наблюдения. Следовательно, во время первого запуска, помимо вычисления подобия, RF также присваивала метки каждому наблюдению в тестовых данных. Для 100 наблюдений тестовых данных и 10 классов обучающих данных каждое наблюдение было воспроизведено 10 раз, получено 1000 наблюдений и выполнен лесной пробег по этим 1000 наблюдениям для вычисления класса каждого наблюдения. После того, как классы назначены, у вас снова остаются исходные 100 наблюдений, где вам нужно выполнить вменение пропущенных значений, но теперь у этих наблюдений есть метки, и к ним можно применить метод вменения пропущенных значений для обучающих данных.

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

Первоначально опубликовано на https://www.linkedin.com.