Kiedy mówimy, że zestaw danych nie podlega klasyfikacji?


11

Wielokrotnie analizowałem zestaw danych, na którym tak naprawdę nie mogłem dokonać żadnej klasyfikacji. Aby sprawdzić, czy mogę uzyskać klasyfikator, zwykle wykonałem następujące czynności:

  1. Wygeneruj wykresy pudełkowe etykiety na podstawie wartości liczbowych.
  2. Zmniejsz wymiarowość do 2 lub 3, aby zobaczyć, czy klasy można rozdzielić, czasami także próbowałem LDA.
  3. Staraj się dopasować SVM i losowe lasy i przyjrzyj się istotności funkcji, aby zobaczyć, czy mają one sens, czy nie.
  4. Spróbuj zmienić równowagę klas i technik, takich jak niepełne pobieranie próbek i nadmierne pobieranie próbek, aby sprawdzić, czy brak równowagi klas może być problemem.

Istnieje wiele innych podejść, o których mogę myśleć, ale nie próbowałem. Czasami wiem, że te funkcje nie są dobre i wcale nie są związane z etykietą, którą próbujemy przewidzieć. Następnie używam intuicji biznesowej, aby zakończyć ćwiczenie, stwierdzając, że potrzebujemy lepszych funkcji lub zupełnie innych etykiet.

Moje pytanie brzmi: w jaki sposób specjalista ds. Danych informuje, że klasyfikacji nie można przeprowadzić za pomocą tych funkcji. Czy istnieje jakiś statystyczny sposób, aby to zgłosić lub najpierw dopasować dane do różnych algorytmów, a sprawdzenie metryki walidacji jest najlepszą opcją?


Wydaje mi się, że jeśli na to pytanie ma jasną i obiektywną odpowiedź, wówczas wszystkie wysiłki naukowe stają się bez znaczenia. Nauka jest sztuką.
Mephy

Haha tak, prawda. Interesuje mnie tylko więcej metod pozwalających znaleźć separowalność. Bardziej przypomina to, jak statystycznie pokazać klientom, że poświęcenie więcej czasu na niektóre ćwiczenia może być daremne.
vc_dim,

1
Sugeruję pominięcie dwóch ostatnich akapitów, ponieważ sprawiają one, że pytanie jest zbyt otwarte / szerokie. Pierwsza część - jak profesjonalnie traktować i zgłaszać brak wyników - powinna być na nie odpowiedzialna i osobiście uważam, że potrzebujemy więcej tego typu pytań na temat profesjonalnej etykiety Data Science na stronie.
Neil Slater,

Ma sens, Neil. Edytowanie, aby było ostre.
vc_dim

Odpowiedzi:


4

To zależy od twoich danych. Istnieje coś takiego jak błąd poziomu ludzkiego. Załóżmy, że zadania takie jak czytanie książek drukowanych, ludzie nie mają trudności z czytaniem i może się nie zdarzyć, że popełni błąd, chyba że z powodu złej jakości druku. W przypadkach takich jak czytanie odręcznych manuskryptów może się zdarzyć, że nie zrozumie się wszystkich słów, jeśli czcionka pisarza jest dziwna dla czytelnika. W pierwszej sytuacji błąd poziomu ludzkiego jest zbyt niski, a algorytmy uczenia mogą mieć taką samą wydajność, ale drugi przykład ilustruje fakt, że w niektórych sytuacjach błąd poziomu ludzkiego jest tak wysoki i zwykle (jeśli używasz tego samego jako ludzie) Twój algorytm uczenia będzie miał tak duży współczynnik błędów.

W uczeniu statystycznym istnieje coś Bayes Error, co nazywa się , ilekroć rozkład klas zachodzi na siebie, stosunek błędów jest duży. bez zmiany funkcji błąd Bayesa obecnych dystrybucji jest najlepszą wydajnością i nie można go w ogóle zmniejszyć.

Sugeruję również przeczytanie tutaj . Problemy z dużą liczbą błędów Bayesa z przypisanymi funkcjami są uważane za niemożliwe do sklasyfikowania w obrębie tych funkcji. Jako kolejny przykład możesz przypuszczać, że chcesz sklasyfikować samochody z włączonymi światłami. Jeśli spróbujesz to zrobić rano, sam możesz mieć wiele błędów, a jeśli używasz tych samych obrazów do szkolenia algorytmu uczenia się, może to również mieć.

Radzę również, aby nie zmieniać rozkładu zajęć. W takich przypadkach wynik klasyfikatora w pobliżu granicy byłby całkowicie losowy. Dystrybucja danych do szkolenia algorytmu uczenia maszynowego nie powinna być zmieniana i powinna być taka, jak jest w rzeczywistym stanie.


Jest to pomocne, nie wiedziałem o błędzie Bayesa. Trudno mi było poprawić dokładność po zmianie rozkładu klas. Zgadzam się, że to nie jest świetny pomysł. Nadal czasami próbowałem zmienić hierarchie klas, mając nadzieję, że ta funkcja może reprezentować bardziej szczegółowe lub abstrakcyjne klasy (np. Zmiana małp, psów i innych na ssaki). Myślę, że jeśli wystąpi błąd Bayesa, zmiana hierarchii klas również nie pomoże.
vc_dim,

@SumitSinghChauhan Właściwie w sytuacjach, w których błąd Bayesa jest duży, najlepszym rozwiązaniem jest próba wykonania funkcji. Ponieważ dogłębne uczenie się, które znajduje same cechy, nie może być używane w przypadkach, gdy zestaw danych nie jest duży.
Media,

5

Weź przykładowy element z jednej klasy i przykładowy element z drugiej klasy. Czy możliwe jest, aby te dwa elementy miały dokładnie ten sam wektor cech? Jeśli to może kiedykolwiek się wtedy dwie klasy nie są całkowicie się rozdzielić przy użyciu aktualnych wektorów cech (ponieważ decyzja klasyfikacja opiera się całkowicie w wektorze cech dla danego elementu).

Z drugiej strony, jeśli * każdy element w jednej klasie ma odpowiadający element w drugiej klasie, tak że dwa elementy mają te same wektory cech, wówczas dwie klasy są nierozróżnialne przy użyciu bieżących wektorów cech.

Ponadto, jeśli warunek ten dotyczy tylko niektórych elementów, a nie innych, to jesteś gdzieś pośrodku i możesz użyć tego jako podstawy do zmierzenia, jak dobrze możesz mieć nadzieję, że klasyfikator wykona przy użyciu twojego obecnego zestawu funkcji.

Wszystkie te oceny mogą służyć do argumentowania w różnym stopniu, że potrzebujesz wyodrębnić więcej funkcji.


1
Dzięki Robert. To jest znane i wydaje się słuszne. Zrobiłem tę samą analizę dla niektórych projektów. Miałem zestaw danych z tym samym wektorem cech, który był różnie oznaczany i użyłem go jako podstawy dla mojej dokładności. Czasami pomogło też wykreślenie wykresu pudełkowego. Do tej pory znalazłem podejście, o którym wspomniałeś najlepiej, aby przekonać klientów.
vc_dim,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.