Sobes.tech
Middle
25

Как кодировать признак рейтинг от 1 до 5?

Companies where asked
Автомакон

Answer from AI

sobes.tech AI

Рейтинг от 1 до 5 — это порядковый (ordinal) признак, который можно кодировать несколькими способами в зависимости от задачи и модели:

  • Целочисленное кодирование — просто использовать числа 1, 2, 3, 4, 5. Подходит, если модель учитывает порядок и расстояния между значениями (например, линейная регрессия).

  • One-Hot кодирование — создать 5 бинарных признаков, каждый соответствует одному значению рейтинга. Полезно, если модель не должна воспринимать порядок как числовую разницу (например, деревья решений).

  • Ordinal Encoding с сохранением порядка — можно использовать числа, но при этом учитывать, что разница между 1 и 2 может не равняться разнице между 4 и 5.

  • Target Encoding или Mean Encoding — заменить рейтинг на среднее значение целевой переменной для каждого рейтинга, если задача — предсказание.

Пример целочисленного кодирования в Go:

ratings := []int{1, 3, 5, 2, 4}
// Используем как есть для модели

Для One-Hot кодирования можно создать массив из 5 элементов, где позиция соответствует рейтингу:

func oneHotEncode(rating int) []int {
    encoded := make([]int, 5)
    if rating >= 1 && rating <= 5 {
        encoded[rating-1] = 1
    }
    return encoded
}

// Пример использования
encoded := oneHotEncode(3) // [0, 0, 1, 0, 0]