Jak sprawdzić, czy dane można oddzielić liniowo?


21

Dane mają wiele funkcji (np. 100), a liczba wystąpień wynosi około 100 000. Dane są rzadkie. Chcę dopasować dane za pomocą regresji logistycznej lub svm. Skąd mam wiedzieć, czy cechy są liniowe czy nieliniowe, aby móc użyć sztuczki jądra, jeśli jest nieliniowa?

Odpowiedzi:


22

Istnieje kilka metod pozwalających ustalić, czy dane można rozdzielić liniowo, niektóre z nich zostały wyróżnione w tym artykule (1). Przy założeniu, że w zestawie danych znajdują się dwie klasy, istnieje kilka metod pozwalających ustalić, czy można je rozdzielić liniowo:

  1. Programowanie liniowe: Definiuje funkcję celu poddaną ograniczeniom, które spełniają liniową separowalność. Szczegółowe informacje na temat implementacji można znaleźć tutaj .
  2. Metoda perceptronowa: gwarantuje się, że perceptron zbiegnie się, jeśli dane można rozdzielić liniowo.
  3. Programowanie kwadratowe: Funkcję celu optymalizacji programowania kwadratowego można zdefiniować z ograniczeniami, jak w SVM.
  4. Geometria obliczeniowa: jeśli można znaleźć dwa rozłączne wypukłe kadłuby, dane można rozdzielić liniowo
  5. Metoda klastrowania: Jeśli można znaleźć dwa klastry o czystości klastra 100% przy użyciu niektórych metod klastrowania, takich jak k-średnie, wówczas dane można rozdzielić liniowo.

    (1): Elizondo, D., „Problem liniowej separowalności: niektóre metody testowania”, w Neural Networks, IEEE Transactions on, vol.17, no.2, str.330-344, March 2006 doi: 10.1109 / TNN. 2005.860871


1
Podaj odniesienie (linki mogą gnić) i przynajmniej trochę wyjaśnij, jakie metody są objęte.
Scortchi - Przywróć Monikę

2
Dzięki. Dobra odpowiedź (+1). Pakiet R safeBinaryRegressionimplementuje również podejście programowania liniowego.
Scortchi - Przywróć Monikę

Które (podejście LP) jest łatwo interpretowane geometrycznie, wydajne obliczeniowo i ogólnie dostępne (tak jak procedury LP).
user603

3

Zakładam, że mówisz o problemie z klasyfikacją 2 klas. W tym przypadku istnieje linia oddzielająca dwie klasy i każdy klasyczny algorytm powinien być w stanie ją znaleźć, gdy się zbiegnie.

W praktyce musisz trenować i testować te same dane. Jeśli istnieje taka linia, powinieneś zbliżyć się do 100% dokładności lub 100% AUC. Jeśli nie ma takiej linii, szkolenie i testowanie tych samych danych spowoduje co najmniej kilka błędów. Na podstawie liczby błędów warto wypróbować klasyfikator nieliniowy.


1

minw,b ||w||2
s.t i,(wxi+b)yi1

mins,b s
s.t i,(wxi+b)yi1s
s0

ssi


+1 to geometryczna intuicja safeBinaryRegression
kryjąca się

-2

Próbujesz regresji logistycznej i widzisz, jak to działa. Jeśli to nie zadziała, istnieje nieskończenie wiele jąder, które możesz wypróbować i nadal może nie działać.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.