Sobes.tech
Back to questions
Middle
8

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

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

Answer from AI

sobes.tech AI

Что хотят услышать интервьюеры:

Рейтинг от 1 до 5 обычно кодируют как порядковый числовой признак, потому что у значений есть естественный порядок. Если модель чувствительна к масштабу, такой признак часто дополнительно нормализуют или стандартизируют. One-hot для рейтинга обычно не нужен, если важен именно порядок.

Определение:

Рейтинг 1–5 — это ordinal-признак: значения упорядочены, но расстояние между ними можно трактовать по-разному в зависимости от задачи. Самый простой способ кодирования — оставить числа 1, 2, 3, 4, 5 как есть. Если модель линейная, нейросеть или алгоритм с чувствительностью к масштабу, полезно привести признак к диапазону [0, 1] или к стандартному виду.

Пример использования:

Например, в задаче прогноза вероятности покупки рейтинг товара из отзывов можно подать в модель как число от 1 до 5, а затем масштабировать.

package main

import "fmt"

func main() {
	rating := 4

	// Простое ordinal-кодирование: оставляем как есть
	encoded := float64(rating)

	// Нормализация в диапазон [0, 1]
	normalized := float64(rating-1) / 4.0

	fmt.Println("encoded:", encoded)
	fmt.Println("normalized:", normalized)
}

Пояснение кода:

Код показывает два подхода.
Сначала рейтинг 4 оставляется как числовой признак — это подходит, если модель нормально работает с порядковыми значениями.
Затем рейтинг переводится в диапазон [0, 1]: 1 -> 0.0, 5 -> 1.0, а промежуточные значения распределяются линейно. Это удобно, когда важно уменьшить разброс значений и сделать признак сопоставимым с другими числовыми фичами.

Ключевые моменты:

  • Рейтинг 1–5 — это порядковый, а не категориальный без порядка, признак.
  • Чаще всего достаточно оставить значения как числа 1..5.
  • Для многих моделей полезно дополнительно нормализовать или стандартизировать признак.
  • One-hot-кодирование обычно избыточно, если порядок между уровнями важен.
  • Если между 4 и 5 есть существенный смысловой скачок, это всё равно не отменяет порядковую природу признака — но способ обработки зависит от модели и задачи.