Как обрабатывать данные Compass в регрессионном дереве решений (Random Forest)

Вопрос или проблема

Я работаю над проектом, в котором две функции называются entryHeading и exitHeading. Обе они указывают направление (С, СВ, В, ЮВ, Ю, ЮЗ, З) транспортного средства в нескольких точках. Мой вопрос: как мне подойти к предварительной обработке этих данных? Первый вариант, который приходит в голову, – это использовать круговую модель, как я делаю это для 24-часового периода, но я не уверен, что стоит подходить к этому так же.

Один из вариантов – сопоставить порядковые категории с числовыми значениями в градусах. Это позволит модели машинного обучения изучить относительные отношения. Модель машинного обучения также может интерполировать значения, которые могут быть полезными или нет.

Одно из распространенных сопоставлений:

с  ->   0  
св ->  45  
в  ->  90  
юв -> 135  
ю  -> 180  
юз -> 215  
з  -> 270  

Книга “Статистический анализ круговых данных” Фишера подробно обсуждает больше вариантов.

Ответ или решение

Для обработки данных с компасными направлениями в задаче регрессионного анализа с использованием модели случайного леса, необходимо учитывать особенности круговой природы этих данных. Направления, такие как "С" (Север), "СВ" (Северо-Восток), "В" (Восток) и другие, не могут быть просто закодированы в числовой форме, потому что интервал между значениями не является равномерным, и простая числовая замена может привести к неправильным выводам модели.

Вот несколько шагов и рекомендаций по предварительной обработке компасных данных:

  1. Кодирование направлений:
    Преобразуйте каждое направление в углы в градусах. Это может выглядеть следующим образом:

    С  -  0  
    СВ -  45  
    В  -  90  
    ЮВ -  135  
    Ю  -  180  
    ЮЗ -  215  
    З  -  270  
    СЗ -  315  

    Таким образом, каждое направление будет представлено как число от 0 до 360 градусов.

  2. Круговая обработка данных:
    Поскольку данные являются круговыми, важно учитывать их круговую природу при анализе. Например, 0 градусов и 360 градусов на самом деле обозначают одно и то же направление (Север). Один из способов обработки — использовать синус и косинус угла для преобразования в декартовы координаты:

    X = cos(угол)
    Y = sin(угол)

    Это позволяет учитывать взаимосвязь между направлениями, например, между 0 и 360, поскольку в декартовой системе эти значения будут одинаковыми для углов.

  3. Создание новых признаков:
    После преобразования углов в декартовы координаты, можно создать два новых признака, entryHeading_X и entryHeading_Y, а также exitHeading_X и exitHeading_Y. Это позволит модели учитывать направление, не полагаясь на линейные предположения.

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

  5. Обучение модели:
    Поскольку случайный лес может обработать как числовые, так и категориальные данные, используйте полученные признаки (декартовые координаты) вместе с другими числовыми и категориальными переменными в вашем наборе данных для обучения модели.

Вот такие шаги помогут вам эффективно обрабатывать компасные данные и использовать их в качестве фичей в модели Random Forest Regression. Важно также сохранять осознание круговой природы этих данных на каждом этапе анализа и обработки.

Оцените материал
Добавить комментарий

Капча загружается...