Próbuję trenować klasyfikator dla klas „Hit”, „Miss” na podstawie zmiennych User
, Planning Horizon
, Material
i kilka innych. Większość z nich to zmienne jakościowe z wyjątkiem Planning Horizon
(liczba całkowita)
Mam niezrównoważone dane, więc próbuję użyć progu, aby wybrać ostateczne wyjście modelu (zamiast tylko domyślnego prawdopodobieństwa 0,5)
Zmienna User
ma największy wpływ na wynik zajęć, dlatego próbuję zastosować różne progi dla każdego użytkownika. Zastanawiam się nad zastosowaniem naiwnego Bayesa prawdopodobieństwa a posteriori P (klasa | użytkownik).
Pytanie brzmi: w jaki sposób mogę zastosować te różne reguły do macierzy wyjściowej modelu:
„Matryca progów”, inny próg dla każdego użytkownika:
User P("Hit"|User)
A 0.80
B 0.40
C 0.61
A wyniki klasyfikatora (P (Hit) i P (Miss)) i ostatniej kolumny (Final Prediction) to to, co muszę zbudować.
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
Zauważ, że pierwszy wiersz otrzymuje MISS, ponieważ P (Miss) jest niższe niż P (Hit | User = B)
Odpowiedzi:
0 dla odpowiedzi № 1Scalę moją macierz progową, a następnie utworzę Final Prediction
kolumna ręcznie w ten sposób.
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