Как кодировать признак рейтинг от 1 до 5?
Ответ от нейросети
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]