Dokładność a miara F.
Przede wszystkim, kiedy używasz metryki, powinieneś wiedzieć, jak ją zagrać. Dokładność mierzy stosunek poprawnie sklasyfikowanych wystąpień we wszystkich klasach. Oznacza to, że jeśli jedna klasa występuje częściej niż inna, wówczas dokładność wynikowa jest wyraźnie zdominowana przez dokładność klasy dominującej. W twoim przypadku, jeśli zbuduje się Model M, który po prostu przewiduje „neutralny” dla każdej instancji, wynikowa dokładność będzie
Cc = n e u t r a l( n e u t r a l + p o s i t i v e + n e ga t i v e )= 0,9188
Dobrze, ale bezużytecznie.
Tak więc dodanie funkcji wyraźnie poprawiło siłę NB do różnicowania klas, ale przewidując „pozytywne” i „negatywne”, jedna z nich źle klasyfikuje neutralne, a zatem dokładność spada (z grubsza mówiąc). To zachowanie jest niezależne od NB.
Mniej więcej funkcje?
Zasadniczo nie jest lepiej korzystać z większej liczby funkcji, ale używać odpowiednich funkcji. Im więcej funkcji, tym lepiej, o ile algorytm wyboru cech ma więcej możliwości znalezienia optymalnego podzbioru (proponuję zbadanie: wybór cech z crossvalidated ). Jeśli chodzi o NB, szybkim i solidnym (ale mniej niż optymalnym) podejściem jest wykorzystanie InformationGain (Ratio) do sortowania funkcji w malejącej kolejności i wybierania najwyższego k.
Ponownie ta rada (oprócz InformationGain) jest niezależna od algorytmu klasyfikacji.
EDYCJA 27.11.11
Było wiele zamieszania w odniesieniu do stronniczości i wariancji, aby wybrać odpowiednią liczbę funkcji. Dlatego polecam przeczytać pierwsze strony tego samouczka: Kompromis odchylenie-odchylenie . Kluczową istotą jest:
- High Bias oznacza, że model jest mniej niż optymalny, tj. Błąd testu jest wysoki (niedopasowany, jak to ujęła Simone)
- Wysoka wariancja oznacza, że model jest bardzo wrażliwy na próbkę użytą do zbudowania modelu . Oznacza to, że błąd w dużym stopniu zależy od zastosowanego zestawu treningowego, a zatem wariancja błędu (oceniana w różnych fałdach walidacji krzyżowej) będzie się bardzo różnić. (przeregulowanie)
Wykreślone krzywe uczenia rzeczywiście wskazują błąd systematyczny, ponieważ wykreślono błąd. Jednak nie widać wariancji, ponieważ przedział ufności błędu w ogóle nie jest wykreślany.
Przykład: wykonując 3-krotną walidację krzyżową 6 razy (tak, zalecane jest powtórzenie z innym podziałem danych, Kohavi sugeruje 6 powtórzeń), otrzymasz 18 wartości. Oczekiwałbym teraz, że ...
- Przy niewielkiej liczbie funkcji średni błąd (odchylenie) będzie niższy, jednak wariancja błędu (z 18 wartości) będzie wyższa.
- przy dużej liczbie funkcji średni błąd (odchylenie) będzie wyższy, ale wariancja błędu (18 wartości) niższa.
Takie zachowanie błędu / stronniczości jest dokładnie tym, co widzimy na twoich działkach. Nie możemy wypowiedzieć się na temat wariancji. To, że krzywe są blisko siebie, może wskazywać, że zestaw testowy jest wystarczająco duży, aby pokazać te same cechy, co zestaw treningowy, a zatem, że zmierzony błąd może być wiarygodny, ale jest to (przynajmniej o ile rozumiem it) niewystarczające, aby wypowiedzieć się na temat wariancji (błędu!).
Dodając coraz więcej przykładów szkoleń (utrzymując stały rozmiar zestawu testów), oczekiwałbym, że wariancja obu podejść (mała i duża liczba funkcji) zmniejszy się.
Och, i nie zapomnij obliczyć informacji o wyborze funkcji przy użyciu tylko danych z próbki treningowej! Można pokusić się o wykorzystanie pełnych danych do wyboru funkcji, a następnie przeprowadzić partycjonowanie danych i zastosować walidację krzyżową, ale doprowadzi to do przeregulowania. Nie wiem, co zrobiłeś, to tylko ostrzeżenie, którego nigdy nie należy zapominać.