Pracuję nad zbiorem danych z ponad 200 000 próbek i około 50 cechami na próbkę: 10 zmiennych ciągłych, a pozostałe ~ 40 to zmienne jakościowe (kraje, języki, dziedziny nauki itp.). Dla tych zmiennych kategorialnych masz na przykład 150 różnych krajów, 50 języków, 50 dziedzin naukowych itp.
Jak dotąd moje podejście jest następujące:
Dla każdej zmiennej kategorialnej o wielu możliwych wartościach, weź tylko tę, która ma więcej niż 10000 próbek, która przyjmuje tę wartość. Zmniejsza to do 5-10 kategorii zamiast 150.
Zbuduj zmienną fikcyjną dla każdej kategorii (jeśli 10 krajów, to dla każdej próbki dodaj wektor binarny o rozmiarze 10).
Wprowadź losowy klasyfikator leśny (sprawdź parametry itp.) Tymi danymi.
Obecnie przy takim podejściu udaje mi się uzyskać jedynie 65% dokładności i wydaje mi się, że można zrobić więcej. Szczególnie nie jestem zadowolony z mojej 1), ponieważ uważam, że nie powinienem arbitralnie usuwać „najmniej istotnych wartości” zgodnie z liczbą próbek, jakie mają, ponieważ te mniej reprezentowane wartości mogą być bardziej dyskryminujące. Z drugiej strony, moja pamięć RAM nie może sobie pozwolić na dodanie 500 danych * 200000 wierszy do danych, zachowując wszystkie możliwe wartości.
Czy masz jakieś sugestie, aby poradzić sobie z tymi bardzo kategorycznymi zmiennymi?