Próbuję opracować model predykcyjny z wykorzystaniem wielowymiarowych danych klinicznych, w tym wartości laboratoryjnych. Przestrzeń danych jest rzadka z 5k próbkami i 200 zmiennymi. Chodzi o to, aby uszeregować zmienne przy użyciu metody wyboru cech (IG, RF itp.) I użyć funkcji o najwyższym rankingu do opracowania modelu predykcyjnego.
Podczas gdy wybór funkcji przebiega dobrze w podejściu Naïve Bayesa, teraz napotykam problem we wdrażaniu modelu predykcyjnego z powodu brakujących danych (NA) w mojej zmiennej przestrzeni. Czy istnieje algorytm uczenia maszynowego, który może ostrożnie obsługiwać próbki z brakującymi danymi?
machine-learning
missing-data
Khader Shameer
źródło
źródło
Odpowiedzi:
To zależy od używanego modelu. Jeśli używasz jakiegoś modelu generatywnego, istnieje oparty na zasadach sposób radzenia sobie z brakującymi wartościami (). Na przykład w modelach takich jak Naive Bayes lub Procesy Gaussa zintegrujesz brakujące zmienne i wybierzesz najlepszą opcję z pozostałymi zmiennymi.
W przypadku modeli dyskryminujących jest to bardziej skomplikowane, ponieważ nie jest to możliwe. Istnieje wiele podejść. Gharamani i Jordan opisują podejście oparte na zasadach, w którym brakujące wartości są traktowane jak zmienne ukryte, a do ich oszacowania wykorzystywany jest wariant algorytmu EM. W podobny sposób Smola i in. opisz wariant algorytmu SVM, który wyraźnie rozwiązuje problem.
Zauważ, że często zaleca się zastąpienie brakujących wartości średnią wartością zmiennej. Jest to problematyczne, jak opisano w pierwszym artykule. Czasami natknąłem się na dokumenty, które regresują zmienne, aby oszacować brakujące wartości, ale nie mogę powiedzieć, czy dotyczy to twojego przypadku.
źródło
Pakiet R randomForestSRC, który implementuje losowe lasy Breimana, obsługuje brakujące dane dla szerokiej klasy analiz (regresja, klasyfikacja, przeżycie, ryzyko konkurencyjne, bez nadzoru, wielowymiarowe).
Zobacz następujący post:
Dlaczego Random Forest nie obsługuje brakujących wartości w predyktorach?
źródło
Spróbuj imputacji, używając najbliższych sąsiadów, aby pozbyć się brakujących danych.
Ponadto pakiet Caret ma interfejsy dla wielu różnych algorytmów i wszystkie one są wyposażone w metody przewidywania w języku R, które można wykorzystać do przewidywania nowych danych. Miary wydajności można również oszacować za pomocą k-krotnej walidacji krzyżowej przy użyciu tego samego pakietu.
źródło
Istnieją również algorytmy, które mogą wykorzystać brakującą wartość jako unikalną i inną wartość podczas budowania modelu predykcyjnego, takie jak drzewa klasyfikacji i regresji. takie jak xgboost
źródło
lightgbm może obsługiwać NaN z urządzenia ( http://lightgbm.readthedocs.io/en/latest/ ).
źródło