높은 차원에서 2 클래스 데이터 세트의 선형 분리 성을 테스트하는 방법이 있습니까? 내 특징 벡터의 길이는 40입니다.
나는 항상 로지스틱 회귀 실험을 수행하고 두 클래스가 선형으로 분리 가능한지 여부를 결정하기 위해 적중률과 허위 경보 비율을 결정할 수 있지만 이미 표준 절차가 있는지 아는 것이 좋습니다.
높은 차원에서 2 클래스 데이터 세트의 선형 분리 성을 테스트하는 방법이 있습니까? 내 특징 벡터의 길이는 40입니다.
나는 항상 로지스틱 회귀 실험을 수행하고 두 클래스가 선형으로 분리 가능한지 여부를 결정하기 위해 적중률과 허위 경보 비율을 결정할 수 있지만 이미 표준 절차가 있는지 아는 것이 좋습니다.
답변:
아마도 지원 벡터 머신 (SVM)이 아마도 당신이 찾고있는 것일 것입니다. 예를 들어 선형 RBF 커널이있는 SVM은 기능을 더 높은 차원의 공간에 매핑하고 선형 초평면으로 클래스를 분리하려고합니다. 이것은 아이디어를 보여주는 멋진 짧은 SVM 비디오 입니다.
기능 선택을위한 검색 방법 (래퍼 모델)으로 SVM을 래핑하고 기능 중 하나가 클래스를 선형으로 분산시킬 수 있는지 확인하십시오.
LIBSVM , MSVMPack 및 Scikit-learn SVM 등 SVM을 사용하는 데 유용한 도구가 많이 있습니다 .
e1071
패키지의 svm
와 kernel="linear"
실제 대 예측 봐.
두 점 세트가 선형으로 분리 가능한지 여부를 결정하는 가장 효과적인 계산 방법은 선형 프로그래밍 을 적용하는 것 입니다. GLTK 는 그 목적에 완벽하며 거의 모든 고급 언어는 R , Python, Octave, Julia 등 의 인터페이스를 제공합니다 .
SVM 사용을 제안하는 답변과 관련하여 :
SVM 사용은 다음과 같은 두 가지 이유로 선형 분리 가능성을 확인하는 최적의 솔루션입니다.
SVM은 소프트 마진 분류기입니다. 이것은 선형 커널 SVM이 실제로 가능하더라도 완벽하게 분리되지 않는 분리 평면에 정착 할 수 있음을 의미합니다. 그런 다음 오류율을 확인하면 0이 아니고 두 세트가 선형으로 분리 가능하지 않다고 잘못 결론을 내립니다. 이 문제는 매우 높은 비용 계수 C를 선택하면 완화 될 수 있지만 계산 비용이 매우 높습니다.
SVM은 최대 마진 분류기입니다. 즉, 알고리즘은 두 클래스를 분리하고 가능한 한 멀리 떨어져 있으려고 시도하는 분리 평면을 찾으려고합니다. 다시 말하지만 이것은 선형 분리 성 문제에 대한 답변과 관련이없는 것을 계산할 때 불필요하게 계산 노력을 증가시키는 기능입니다.
점 A와 B가 있다고 가정 해 봅시다.
그런 다음 다음 조건에서 0을 최소화해야합니다.
(아래의 A는 위의 점 세트가 아닌 행렬입니다)
"최소화 0"은 집합이 선형으로 분리 가능한지 여부를 알 필요가 없기 때문에 실제로 목적 함수를 최적화 할 필요가 없음을 의미합니다.
결국 ( )은 분리 평면을 정의합니다.