Я намагаюся підготувати класифікатор для класів "Хіт", "Міс" на основі змінних User
, Planning Horizon
, Material
та деякі інші. Більшість з них є категоріальними змінними, за винятком Planning Horizon
(ціле)
У мене незбалансовані дані, тому я намагаюся використовувати порогове значення для вибору остаточного результату моделі (Замість того, щоб просто використовувати імовірність 0,5 за замовчуванням)
Перемінна User
має найбільший вплив на результат класу, тому я намагаюся використовувати різні пороги для кожного користувача. Я замислююсь про використання наївного байєса задньої ймовірності P (Клас | Користувач).
Питання в тому, як я можу застосувати ці різні правила для вихідної матриці моделі:
"Матриця порогових значень", різний поріг для кожного користувача:
User P("Hit"|User)
A 0.80
B 0.40
C 0.61
І результати класифікатора (P (Hit) та P (Miss)) та остання колонка (Final Prediction) - це те, що мені потрібно побудувати.
User P("Miss") P("Hit") Final Prediction
B 0.79 0.21 Miss
B 0.20 0.80 Hit
A 0.15 0.85 Hit
C 0.22 0.78 Hit
A 0.90 0.10 Miss
B 0.80 0.20 Miss
Зверніть увагу, що перший рядок отримує MISS, оскільки P (Miss) нижче P (Hit | User = B)
Відповіді:
0 для відповіді № 1Я б об'єднав свою порогову матрицю, а потім створив Final Prediction
стовпець від руки ось так.
df <- read.table(text="User P("Miss") P("Hit") "Final Prediction"
B 0.79 0.21 Miss
B 0.20 0.80 Hit
A 0.15 0.85 Hit
C 0.22 0.78 Hit
A 0.90 0.10 Miss
B 0.80 0.20 Miss",
header=TRUE, sep=" ", check.names=FALSE)
thm <- read.table(text="User P("Hit"|User)
A 0.80
B 0.40
C 0.61",
header=TRUE, sep=" ", check.names=FALSE)
thmdf <- merge(thm, df)
thmdf["My Final Prediction"] <-
ifelse(thmdf$`P(Hit)` < thmdf$`P(Hit|User)`,
"Miss",
"Hit")
thmdf