0

LIBLINEAR에서 히스토그램 교집합/카이 sauare 커널을 사용할 수 있습니까?libsvm liblinear 히스토그램 교집합/카이 제곱 커널 사용 방법

제 문제는 크기가 5000 인 모든 특징 벡터가 히스토그램 기능이라는 것입니다. SVM으로 훈련/테스트하는 법을 모릅니다.

SVM을 사용하여 어떻게 훈련시킬 수 있습니까?

libSVM은 4 가지 유형의 커널을 지원합니다.

0 -- linear: u'*v 
1 -- polynomial: (gamma*u'*v + coef0)^degree 
2 -- radial basis function: exp(-gamma*|u-v|^2) 
3 -- sigmoid: tanh(gamma*u'*v + coef0) 

libSVM과 linearSVM의 차이점은 무엇입니까?

답변

2

아니요, liblinear에서 맞춤 커널을 사용할 수 없습니다.

원하는 작업을 수행하려면 LibSVM과 그램 매트릭스를 제공하는 "미리 계산 된 커널"옵션 (LibSVM README에 설명되어 있음)을 사용해야합니다.

선형 커널의 경우 LibSVM과 LibLinear도 비슷한 결과를 산출합니다. 작성자는 다음과 같이 말합니다.

예측은 유사하지만 초평면이 다릅니다. Libsvm 은 L1 손실 SVM을 해결하지만 liblinear는 L2 정규화 된 물류 회귀 및 L2 손실 SVM을 해결합니다.

0
해석 만이 아닌 선형 기능 공간으로 당신의 기능을지도 explicite 경우, 내가 읽는 것이 좋습니다 당신은 선형 SVM을 사용할 수 있습니다

:

  1. "감지를위한 최대-여백 첨가제 분류"- http://www.cs.berkeley.edu/~smaji/papers/mcd-free-lunch-iccv-09.pdf
  2. "대규모 커널 시스템에 대한 임의의 기능"- http://berkeley.intel-research.net/arahimi/papers/rahimi-recht-random-features.pdf
  3. "Ef는 과학 효율적인 첨가제 커널 명시 특징지도를 통해"- http://www.vlfeat.org/~vedaldi/assets/pubs/vedaldi11efficient.pdf
0

저는 Libsvm에서 chi2 커널을 사용하고 있습니다. 여기에 코드를 붙여 넣으면 유용 할 수 있기를 바랍니다.

function [chi2_ans]=chi2_kernel(x,y) 
    [email protected](x,y) 1-sum(((x'-y').*(x'-y'))./(x'+y'+eps)*2); 
    [m, ~]=size(x); 
    chi2_ans=zeros(size(x,1),size(y,1)); 
    for i=1:size(x,1) 
     veci=x(i,:); 
     for j=1:size(y,1) 
      vecj=y(j,:); 
      chi2_ans(i,j)=f(veci,vecj); 
     end 
    end 
end 

입니다.

function [ acc ] = singleChi2Kernel( trainData,testData,trainLabel,testLabel) 

numTrain = size(trainData,1); 
numTest = size(testData,1); 


%# compute kernel matrices between every pairs of (train,train) and 
%# (test,train) instances and include sample serial number as first column 
K = [ (1:numTrain)' , chi2_kernel(trainData,trainData) ]; 
KK = [ (1:numTest)' , chi2_kernel(testData,trainData) ]; 

%# train and test 
model = svmtrain(trainLabel, K, '-t 4 '); 
[predClass, acc, decVals] = svmpredict(testLabel, KK, model); 

%# confusion matrix 
%C = confusionmat(testClass,predClass) 

end 

link

의 코드