2009-07-17 5 views
11

SVM이 R입니다. 이제이 기계의 분류 공간을 계획하고 싶습니다. 나는 인터넷에서 몇 가지 예를 발견했지만, 나는 그것들을 이해할 수 없다. 다음과 같이SVM의 분류 그래프를 어떻게 그릴 수 있습니까? R

내 R 스크립트입니다 :

library(e1071) 
day_of_week <- c(0,1,2,3,4,5,6) 
holiday <- factor(c(T, F, F, F, F, F, T)) 
model <- svm(day_of_week, holiday) 
plot(model, day_of_week, holiday) 

내가 플롯 명령이 동작하지 않습니다. 나는 이런 식의 그래프를 원합니다. http://bm2.genes.nig.ac.jp/RGM2/R_current/library/e1071/man/images/plot.svm_001.png

답변

18

우선 plot.svm 함수는 데이터가 2 차원으로 다양하다고 가정합니다. 귀하의 예에서 사용한 데이터는 단지 1 차원이므로 의사 결정 경계는 지원되지 않는 라인에 그려 져야합니다. 둘째,이 함수는 입력으로 데이터 프레임이 필요하고 벡터로 작업합니다.

이 작동합니다 ...

library(e1071) 

day = c(0,1,2,3,4,5,6) 
weather = c(1,0,0,0,0,0,0) 
happy = factor(c(T,F,F,F,F,F,F)) 

d = data.frame(day=day, weather=weather, happy=happy) 
model = svm(happy ~ day + weather, data = d) 
plot(model, d) 
+0

감사합니다, 내가 공식에 관한 ~ 연산자에 대해 잘 알고 있어야합니다 보인다. 나는 svm 객체가 주어지면 추가 방향이없는 분류 공간을 렌더링 할 수 있다고 가정했다. –

+0

누군가가 R에서 svm을 사용하기 위해 어떤 패키지를 설치해야하는지 말해 줄 수 있습니까? – sunqiang

+1

패키지는 e1071입니다. 위의 코드에 패키지를로드하는 명령을 추가했습니다. – Stompchicken

13

또는, 당신은 kernlab 패키지를 사용할 수 있습니다

library(kernlab) 

model.ksvm = ksvm(happy ~ day + weather, data = d, type="C-svc") 
plot(model.ksvm, data=d) 
관련 문제