Opracowuję narzędzie, które automatycznie przetwarza dane w formacie pandas.DataFrame. Podczas tego wstępnego etapu przetwarzania chcę inaczej traktować dane ciągłe i kategoryczne. W szczególności chcę móc zastosować np. Dane OneHotEncoder do danych kategorycznych.Co to jest dobry heurystyczny do wykrycia, czy kolumna w pandas.DataFrame jest kategoryczny?
Teraz załóżmy, że dostarczyliśmy pandas.DataFrame i nie mamy żadnych innych informacji o danych w DataFrame. Jaka jest dobra heurystyka do określenia, czy kolumna w pandas.DataFrame ma charakter kategoryczny?
Moje pierwsze myśli są:
1) Jeżeli istnieją ciągi w kolumnie (np typ danych kolumny jest object
), następnie kolumna zawiera bardzo prawdopodobne dane kategoryczne
2) Jeżeli jakiś procent wartości w kolumnie są unikalne (np.> = 20%), a następnie kolumna bardzo prawdopodobnie zawiera ciągłe dane.
Znalazłem 1)
, aby działało poprawnie, ale 2)
nie wyszło bardzo dobrze. Potrzebuję lepszej heurystyki. Jak rozwiązać ten problem?
Edytuj: Ktoś poprosił mnie o wyjaśnienie, dlaczego 2)
nie działa dobrze. Było kilka przypadków testów, w których wciąż mieliśmy wartości ciągłe w kolumnie, ale w kolumnie nie było wielu unikatowych wartości. Heurystyka w 2)
oczywiście nie powiodła się w tym przypadku. Były również problemy, w których mieliśmy kategoryczną kolumnę, która miała wiele, wiele unikalnych wartości, np. Nazwiska pasażerów w zestawie danych Titanica. Ten sam problem z błędami klasyfikacji kolumn.
Uważam, że to pytanie jest prawie całkowicie nieokreślone. Jaki jest rozkład wszystkich zbiorów danych na świecie? Twoja reguła 1 niestety nie działa w przypadku usługi pocztowej lub książki telefonicznej. –
Spróbuj [prawo Benforda] (https://en.wikipedia.org/wiki/Benford%27s_law), aby odróżnić dane liczbowe od kategorycznego. –
@ Barmaley.exe Czy możesz rozwinąć ten pomysł, proszę? –