내 데이터는 e1071 패키지에서 R에 svm으로 이상한 결과를 생성하므로 R svm이 WEKA (또는 Python)와 동일한 결과를 생성 할 수 있는지 확인하려고했습니다. 과거의 WEKA.R 및 WEKA에서 지원 벡터 머신
나는 그 질문을 봤는데, 나와 똑같은 혼란이 있지만 대답이없는 것을 발견했다. This is the question.
나는 여기에서 대답을 얻을 수 있기를 바랍니다.
더 쉽게 작업 할 수 있도록 필자는 홍채 데이터 세트를 사용하고 전체 홍채 데이터를 사용하여 모델 (WEKA의 SMO 및 R 패키지 e1071의 svm)을 교육하고 자체 테스트를 수행합니다.
WEKA 매개 변수 : 기본값보다
weka.classifiers.functions.SMO -C 1.0 -L 0.001 -P 1.0E-12 -N 0 -V 10 -W 1 -K "weka.classifiers.functions.supportVector.RBFKernel -G 0.01 -C 250007"
기타, 나는 R의 fucntion와는 consistant 할 RBFKernel으로 커널을 변경했습니다. 나는 사람을 학습 기계가 아니에요
true
pred setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 2
virginica 0 2 48
, 그래서 나는 ':
a b c <-- classified as
50 0 0 | a = Iris-setosa
0 46 4 | b = Iris-versicolor
0 7 43 | c = Iris-virginica
R 스크립트 :
이library(e1071)
model <- svm(iris[,-5], iris[,5], kernel="radial", epsilon=1.0E-12)
res <- predict(model, iris[,-5])
table(pred = res, true = iris[,ncol(iris)])
결과는
결과는 기본 매개 변수를 추측하는 것은이 두 가지 방법에서 매우 다릅니다. 예를 들어 e1071의 기본값은 epsilon
이고 WEKA는 1.0E-12입니다. 매뉴얼을 읽으려고했지만 모든 파라미터를 동일하게 만들고 싶었지만 많은 파라미터가 나와 비교할 수없는 것 같습니다.
감사합니다.
예는 커널 K는 바로이 것있다 커널의 이름과 대역폭 감마를 목록으로 사용합니다. –
답변 해 주셔서 감사합니다! 그러나 2 클래스 문제의 경우 매개 변수를 모두 설정하더라도 두 가지 매우 다른 예측을 얻습니다. 구현이 다르기 때문입니까? – Yan
SVM 및 SMO에 의한 다중 클래스 분류에 사용되는 전략은 동일합니다 (일대일 대응). 바이너리 분류의 경우, 가능한 모든 매개 변수 (기본 매개 변수 포함)를 모두 조사하고 모두 동일하게 설정하면 내 직감은 결과가 많이 달라지지 않아야하며, 그렇지 않으면 구현 차이 때문입니다. –