2017-04-17 16 views
0

데이터 집합의 특이점을 결정하기 위해 Scikit의 한 클래스 SVM 분류 자 ​​OneClassSVM을 사용하고 있습니다. 내 데이터 세트에는 1024 개의 변수가있는 30000 개의 샘플이 있습니다. 나는 그 중 10 퍼센트를 훈련 자료로 사용한다.OCSVM in scikit : 외곽 거리는 항상 음수입니다.

clf=svm.OneClassSVM(nu=0.001,kernel="rbf",gamma=1e-5) 
clf.fit(trset) 
dist2hptr=clf.decision_function(trset) 
tr_y=clf.predict(trset) 

는 위와 I는 decision_function(x) 함수를 사용하여 결정 함수로 각 샘플의 거리를 계산한다. 예측 결과와 거리 결과를 비교할 때 예측 출력에서 ​​+1로 표시된 샘플의 경우 양의 거리를 표시하고 -1로 표시된 샘플의 경우 음의 거리 값을 표시합니다.

방향을 다루지 않으므로 거리에 사인이없는 줄 알았습니다. 거리를 계산하는 방법을 이해하고 싶습니다 OneClassSV 분류기 분류. 이 기호는 SVM에 의해 계산 된 결정 초평면에 표본이 있다는 것을 단순히 나타 냅니까?

도와주세요. here 설명으로

답변

2

sklearn's OneClassSVM는 다음 paper에서 구현됩니다

베른하르트 슐 코프, 존 C. 플랫, 존 C. Shawe 테일러, 알렉스 J. Smola, 로버트 C. 윌리엄슨. 2001. 고차원 적 분포의 지원 추정. 신경 계산. 13, 7 (July 2001), 1443-1471. DOI : https://doi.org/10.1162/089976601750264965

은의 그 종이 here의 추상적를 살펴 보자 :

당신은 기본 확률 분포 P에서 가져온 일부 데이터 세트를 제공하는 가정을 당신은 "단순한를 추정 할 "서브 세트 S가 이고, P로부터 추출 된 테스트 포인트가 S 외부에있을 확률은 0과 1 사이의 선험적으로 지정된 값과 동일하다.

우리는 S에서 양수이고 보 부호가 음수 인에서 음수 인 함수 f를 계산하여이 문제에 접근합니다.

그래서 추상 함수 sklearn 뒤에 OneClassSVMf을 정의합니다.