Wpis z mikrobloga

Potrzebuje opinii kogoś bardziej doświadczonego jeśli chodzi o radzenie sobie z imbalanced data. Regresja logistyczna. Mam zbiór danych z 4000 wierszy (przed podziałem train test split) i w tym zbiorze jest tylko 16% wartości 1 wiec zbiór danych jest niezbalansowany. I tutaj mam pewne wątpliwości:

1.Czy metody SMOTE używamy przed podziałem zbioru na treningowy i testowy?
2.Co w przypadku gdy po upsamplingu SMOTE (zrobionym na zbiorze testowym) otrzymujemy dla modeli niższe accuracy niż bez tego upsamplingu?
3. Wszystkie rady będą mile widziane :)

Poniżej sposób jakim zrobiłem upsampling:
s = SMOTE(samplingstrategy = 1, randomstate=1)
Xtrainsmote, ytrainsmote = s.fitresample(Xtrain, y_train.ravel())

#datascience
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@srutownik: dużo zależy od tego jak wyglądają dane czy można je łatwo podzielić nawet w przestrzeni 2/3d ewentualnie usunąć te cechy które powoduja największe anomalie. Sama metoda SMOTE pomoże, ale zasadnicza hipoteza którą powinieneś zbadać to:
"Czy moje dane można w łatwy sposób podzielić w przestrzeni, a jeśli nie to które zmienne powodują największe anomalie"

Zacząłbym od takiego założenia, 16% to jednak dosyć dużo i powinno być widać wizualnie ile
  • Odpowiedz
@srutownik: Zacznij od porządnej analizy danych a później weź sie za algorytmy klasyfikacji. Jeśli stwierdzisz w trakcie analizy, że dane są mało spójne tzn. posiadają dużo szum to musisz go usunąć i dopiero później stwiedzić czy potrzebujesz metod rozszerzania danych.
  • Odpowiedz