Nie zalecałbym skorzystania z tej procedury. Moja rekomendacja to: Porzuć ten projekt. Po prostu poddaj się i odejdź. Nie masz nadziei, że to zadziała.
źródło obrazu
Odkładając na bok standardowe problemy z krokowym wyborem (por. Tutaj ), w twoim przypadku bardzo prawdopodobne jest, że będziesz mieć doskonałe prognozy ze względu na separację w tak przestrzennej przestrzeni.
Nie mam szczegółowych informacji na temat twojej sytuacji, ale twierdzisz, że masz „tylko kilka dziesiątek próbek”. Bądźmy charytatywni i powiedzmy, że masz 90 lat. Mówisz dalej, że masz „kilka tysięcy funkcji”. Wyobraźmy sobie, że masz „tylko” 2000. Dla uproszczenia załóżmy, że wszystkie funkcje są binarne. „Uważasz, że etykietę klasy można dokładnie przewidzieć przy użyciu tylko kilku funkcji”, powiedzmy, że będziesz szukać zestawów maksymalnie maksymalnie 9 funkcji. Na koniec wyobraźmy sobie, że związek jest deterministyczny, dzięki czemu prawdziwy związek zawsze będzie doskonale obecny w twoich danych. (Możemy zmienić te liczby i założenia, ale to powinno tylko pogorszyć problem.) Teraz, jak dobrze byłbyś w stanie odzyskać ten związek w tych (hojnych) warunkach? To znaczy, jak często prawidłowy zestaw był jedynym zestawem, który zapewnia doskonałą dokładność? Innymi słowy, ile zestawów dziewięciu funkcji będzie pasować również przez przypadek?
Niektóre (zbyt) proste matematyki i symulacje powinny dostarczyć wskazówek na to pytanie. Po pierwsze, z 9 zmiennymi, z których każda może wynosić 0 lub 1, liczba wzorów, które może zaobserwować obserwacja, wynosi , ale będziesz mieć tylko 90 obserwacji. Jest więc całkowicie możliwe, że dla danego zestawu 9 zmiennych binarnych każda obserwacja ma inny zestaw wartości predykcyjnych - nie ma powtórzeń. Bez powtórzeń z tymi samymi wartościami predykcyjnymi, gdzie niektóre mają y = 0, a niektóre y = 1, będziesz miał całkowitą separację i możliwe będzie idealne przewidywanie każdej obserwacji. 29=512
Poniżej mam symulację (zakodowaną w R), aby zobaczyć, jak często możesz nie mieć wzorów wartości x zarówno dla zer, jak i 1. Działa to tak, że otrzymuję zestaw liczb od 1 do 512, które reprezentują możliwe wzorce, i sprawdzam, czy któryś z wzorców w pierwszych 45 (może to być 0) pasuje do któregokolwiek ze wzorów w drugim 45 (może to być 1s). Zakłada się, że masz idealnie zrównoważone dane odpowiedzi, co zapewnia najlepszą możliwą ochronę przed tym problemem. Zauważ, że posiadanie niektórych replikowanych wektorów x o różnych wartościach y tak naprawdę nie wyciąga cię z lasu, oznacza to po prostu, że nie byłbyś w stanie idealnie przewidzieć każdej pojedynczej obserwacji w zbiorze danych, co jest bardzo rygorystycznym standardem I używam tutaj.
set.seed(7938) # this makes the simulation exactly reproducible
my.fun = function(){
x = sample.int(512, size=90, replace=TRUE)
return(sum(x[1:45]%in%x[46:90])==0)
}
n.unique = replicate(10000, my.fun())
mean(n.unique) # [1] 0.0181
Symulacja sugeruje, że miałbyś ten problem z około 1,8% zbiorów 9 zmiennych x. Ile jest teraz 9 zestawów? Dokładnie, byłoby to (ponieważ ustaliliśmy, że prawdziwe 9 deterministycznych zmiennych przyczynowych znajduje się w twoim zbiorze). Jednak wiele z tych zestawów będzie się nakładać; w określonej partycji twoich zmiennych będzie nienakładających się zestawów po 9 (z wieloma możliwymi partycjami). Zatem w ramach danej partycji możemy oczekiwać zestawów 9 zmiennych x, które doskonale przewidują każdą obserwację w zbiorze danych. 1991 choose 9=1.3×10241991/9≈221221×0.018≈4
Zauważ, że wyniki te dotyczą tylko przypadków, w których masz stosunkowo większy zestaw danych (w ramach „dziesiątek”), względnie mniejszej liczby zmiennych (w ramach „tysięcy”), szuka tylko przypadków, w których każdą pojedynczą obserwację można idealnie przewidzieć ( będzie o wiele więcej zestawów, które są prawie idealne), itp. Twoja rzeczywista sprawa raczej nie zadziała tak dobrze. Ponadto ustaliliśmy, że związek jest całkowicie deterministyczny. Co by się stało, gdyby w związku pojawił się przypadkowy szum? W takim przypadku nadal będziesz mieć ~ 4 (zerowe) zestawy, które doskonale przewidują twoje dane, ale odpowiedni zestaw może nie znajdować się wśród nich .
Tl; dr , podstawową kwestią tutaj jest to, że twój zestaw zmiennych jest o wiele za duży / za duży, a twoja ilość danych jest o wiele za mała, aby cokolwiek było możliwe. Jeśli to prawda, że masz „dziesiątki” próbek, „tysiące” zmiennych i absolutnie nie masz ziemskiego pojęcia, które zmienne mogą mieć rację, nie masz nadziei, że uda ci się uzyskać dowolną procedurę. Zrób coś innego ze swoim czasem.