Вопрос или проблема
Я работаю над проектом, в котором две функции называются entryHeading и exitHeading. Обе они указывают направление (С, СВ, В, ЮВ, Ю, ЮЗ, З) транспортного средства в нескольких точках. Мой вопрос: как мне подойти к предварительной обработке этих данных? Первый вариант, который приходит в голову, – это использовать круговую модель, как я делаю это для 24-часового периода, но я не уверен, что стоит подходить к этому так же.
Один из вариантов – сопоставить порядковые категории с числовыми значениями в градусах. Это позволит модели машинного обучения изучить относительные отношения. Модель машинного обучения также может интерполировать значения, которые могут быть полезными или нет.
Одно из распространенных сопоставлений:
с -> 0
св -> 45
в -> 90
юв -> 135
ю -> 180
юз -> 215
з -> 270
Книга “Статистический анализ круговых данных” Фишера подробно обсуждает больше вариантов.
Ответ или решение
Для обработки данных с компасными направлениями в задаче регрессионного анализа с использованием модели случайного леса, необходимо учитывать особенности круговой природы этих данных. Направления, такие как "С" (Север), "СВ" (Северо-Восток), "В" (Восток) и другие, не могут быть просто закодированы в числовой форме, потому что интервал между значениями не является равномерным, и простая числовая замена может привести к неправильным выводам модели.
Вот несколько шагов и рекомендаций по предварительной обработке компасных данных:
-
Кодирование направлений:
Преобразуйте каждое направление в углы в градусах. Это может выглядеть следующим образом:С - 0 СВ - 45 В - 90 ЮВ - 135 Ю - 180 ЮЗ - 215 З - 270 СЗ - 315
Таким образом, каждое направление будет представлено как число от 0 до 360 градусов.
-
Круговая обработка данных:
Поскольку данные являются круговыми, важно учитывать их круговую природу при анализе. Например, 0 градусов и 360 градусов на самом деле обозначают одно и то же направление (Север). Один из способов обработки — использовать синус и косинус угла для преобразования в декартовы координаты:X = cos(угол) Y = sin(угол)
Это позволяет учитывать взаимосвязь между направлениями, например, между 0 и 360, поскольку в декартовой системе эти значения будут одинаковыми для углов.
-
Создание новых признаков:
После преобразования углов в декартовы координаты, можно создать два новых признака,entryHeading_X
иentryHeading_Y
, а такжеexitHeading_X
иexitHeading_Y
. Это позволит модели учитывать направление, не полагаясь на линейные предположения. -
Подготовка данных:
После выполнения вышеперечисленных шагов, убедитесь, что данные правильно отформатированы для использования в модели случайного леса. Проверьте наличие пропущенных значений, типы данных и масштабируйте, если это необходимо. -
Обучение модели:
Поскольку случайный лес может обработать как числовые, так и категориальные данные, используйте полученные признаки (декартовые координаты) вместе с другими числовыми и категориальными переменными в вашем наборе данных для обучения модели.
Вот такие шаги помогут вам эффективно обрабатывать компасные данные и использовать их в качестве фичей в модели Random Forest Regression. Важно также сохранять осознание круговой природы этих данных на каждом этапе анализа и обработки.