Czy można kontrolować koszt błędnej klasyfikacji w pakiecie R randomForest ?
W mojej własnej pracy fałszywe negatywy (np. Brak pomyłki, że dana osoba może mieć chorobę) są znacznie bardziej kosztowne niż fałszywie pozytywne. Pakiet rpart pozwala użytkownikowi kontrolować koszty błędnej klasyfikacji, określając macierz strat do różnej wagi błędnych klasyfikacji. Czy istnieje coś podobnego randomForest
? Czy powinienem na przykład użyć classwt
opcji kontroli kryterium Giniego?
źródło
classwt
: Tak, stwierdziłem, że w praktyce i zgodnie z innymi użytkownikami wyniki nie są zgodne z oczekiwaniami. (iii)cutoff
: Nie jestemcutoff
pewien, jak wykorzystać w tym przypadku i chętnie przyjmę wszelkie dalsze porady.Istnieje wiele sposobów uwzględnienia kosztów.
(1) Pobieranie próbek powyżej / poniżej dla każdego drzewa w workach (pobieranie warstwowe) jest najczęstszą metodą wprowadzania kosztów. zestaw danych celowo zaburzono równowagę.
(2) Ważenie. Nigdy nie działa Myślę, że jest to podkreślone w dokumentacji. Niektórzy twierdzą, że po prostu musisz rozważyć wszystkie etapy, w tym podział Gini i ostateczne głosowanie. Jeśli zadziała, będzie to trudna implementacja.
(3) Funkcja Metacost w Weka.
(4) Traktowanie losowego lasu jako probabilistycznego klasyfikatora i zmiana progu. Ta opcja najbardziej mi się podoba. Prawdopodobnie z powodu mojego braku wiedzy, ale mimo że algorytm może generować prawdopodobieństwa, nie ma dla mnie sensu traktować ich tak, jakby to był model probabilistyczny.
Ale jestem pewien, że istnieją dodatkowe podejścia.
źródło
Zaleca się, aby jeśli zmienna, którą próbujesz przewidzieć, nie wynosi 50% dla
class 1
i 50% dlaclass 2
(jak większość przypadków), dostosujcutoff
parametr tak, aby reprezentował rzeczywistą wartośćOOB
podsumowującą.Na przykład,
W tym przypadku prawdopodobieństwo o wartości jednego
class 1
jest.96
jednocześnie posiadające wartośćclass 2
jest.04
.W przeciwnym razie losowe lasy używają progu wynoszącego
0.5
.źródło
Można uwzględnić
costMatrix
wrandomForest
sposób wyraźny przezparms
parametr:źródło
Możesz uwzględnić wrażliwość kosztów za pomocą
sampsize
funkcji wrandomForest
pakiecie.Zmieniaj liczby w
(100,20)
zależności od posiadanych danych i założeń / reguł biznesowych, z którymi pracujesz.Potrzeba trochę prób i błędów, aby uzyskać macierz nieporozumień, która odzwierciedla koszty błędu klasyfikacji. Rzuć okiem na kryminalne prognozy ryzyka Richarda Berka : podejście oparte na uczeniu maszynowym , s. 1. 82
źródło