Załóżmy, że mam klasyfikatory C_1 ... C_n, które są rozłączne w tym sensie, że żadne dwa nie zwrócą wartości true na tym samym wejściu (np. Węzły w drzewie decyzyjnym). Chcę zbudować nowy klasyfikator, który jest połączeniem niektórych jego podzbiorów (np. Chcę zdecydować, które liście drzewa decyzyjnego dają pozytywną klasyfikację). Oczywiście w ten sposób nastąpi kompromis między wrażliwością a pozytywną wartością predykcyjną. Chciałbym więc zobaczyć krzywą ROC. Zasadniczo mógłbym to zrobić, wyliczając wszystkie podzbiory klasyfikatorów i obliczając wynikową czułość i PPV. Jest to jednak zbyt drogie, jeśli n jest większe niż około 30. Z drugiej strony prawie na pewno istnieją pewne kombinacje, które nie są optymalne dla Pareto, więc może istnieć jakaś strategia rozgałęziona i powiązana, czy coś,
Chciałbym uzyskać porady na temat tego, czy to podejście może być owocne i czy jest jakaś praca lub czy masz jakieś pomysły na temat skutecznego obliczania krzywej ROC w powyższej sytuacji.
źródło
Odpowiedzi:
Jeśli dobrze zrozumiałem pytanie, nauczyłeś się algorytmu, który dzieli twoje dane na rozłącznych klastrów. Teraz chcesz przypisać predykcję 1 do niektórych podzbiorów klastrów, a 0 do pozostałych. A wśród tych podzbiorów chcesz znaleźć te optymalne dla pareto, tj. Takie, które maksymalizują prawdziwy współczynnik dodatni, biorąc pod uwagę stałą liczbę pozytywnych prognoz (jest to równoważne z ustaleniem PPV). Czy to jest poprawne?N. 1 0
To brzmi jak problem z plecakiem ! Rozmiary klastra to „wagi”, a liczba próbek dodatnich w klastrze to „wartości”, a Ty chcesz wypełnić swój plecak o stałej pojemności możliwie największą wartością.
Oto przykład python:
Ten kod narysuje dla Ciebie ładne zdjęcie:
A teraz odrobina soli: wcale nie musiałeś przejmować się podzbiorami ! To, co zrobiłem, to posortowanie liści drzew według ułamka próbek pozytywnych w każdym z nich. Ale otrzymałem właśnie krzywą ROC do probabilistycznego przewidywania drzewa. Oznacza to, że nie można przewyższyć drzewa, wybierając ręcznie liście na podstawie częstotliwości docelowych w zestawie treningowym.
Możesz się zrelaksować i nadal używać zwykłych prognoz probabilistycznych :)
źródło
Mogę zasugerować, że używasz chciwych metod. Daj klasyfikatorowi na początek, obejmiesz klasyfikator, dzięki któremu zespół uzyska najlepszą poprawę wydajności. Jeśli nie można uzyskać poprawy obejmującej więcej klasyfikatorów, to przestań. Zaczniesz od każdego klasyfikatora. Złożoność będzie wynosić co najwyżej N * N.
Mam jeszcze jedno pytanie, co rozumiesz przez „optymalne Pareto”, szczególnie w twoim kontekście? Znalazłem z wiki to wyjaśnienie, https://en.wikipedia.org/wiki/Pareto_fficiency
Poprawa wydajności Pareto dotyczy każdego uczestnika, co może odpowiadać każdemu klasyfikatorowi. Jak zdefiniujesz poprawę w stosunku do jednego klasyfikatora?
źródło