2017-11-05 6 views
0

y = 1, 2, 3, 4와 같은 레이블을 가진 데이터 세트가 있습니다. carat에서 사용할 수있는 train() 함수를 사용하여 svmLinear 메소드로 분류하고 싶습니다. R에있는 패키지. 여기에 내가 작성한 샘플 코드가있다. 나는 기본 trainControl 함수를 사용했다.어떻게 svmLinear 캐럿 패키지를 사용하여 분류하고 회귀하지 않습니다

trainer = train(y~., data=traindf, method="svmLinear") 
predicted = predict(trainer, testdf) 

는 그러나 예측 값이 1,2,3,4 discreete 값이 아니기 때문에 오히려 다음 분류를 회귀 분석을 수행하고, 같이 나타납니다. 10 진수 값도 있습니다. train 함수의 svmLinear 메서드를 사용하여 다중 클래스 분류를 실행하는 방법은 무엇입니까?

답변

0

어떤 클래스가 y입니까? svmLinear 패키지의 매개 변수가 없으면 출력 유형을 지정할 수 있습니다. y이 분석되고 해당 유형과 관련하여 모델이 빌드됩니다. 적어도 이것이 Caret가 랩핑 된 다른 감독 방법 (예 : nnet)과 어떻게 작동하는지입니다.

trainer = train(as.factor(y) ~ . -y, data=traindf, method="svmLinear") 

업데이트 : 나는 특정 패키지에 대한 문서를 찾을 수 없습니다
캐럿 linearSVM하지만 당신을 위해 포장되는 짧은에서

, y에 의해 타입 factor의 것을 보장함으로써이 문제를 해결 또한 인수에 유형을 지정할 수 있어야합니다. 예 : type=C-svc

또한 유형을 지정할 수도있는 predict()의 경우 일 수 있습니다. 예 : type = c('prob', 'class')