나는 R 패키지 e1071과 홍채 데이터 세트를 사용하여 SVM 모델을 만들었습니다. 홍채 데이터를 교육 및 테스트 데이터로 분리하고 교육 데이터에서 SVM을 작성했습니다. 이제는 테스트 데이터를 points
함수를 사용하여 교육 데이터와 SVM 경계를 표시하는 동일한 플롯에 플롯하고자합니다. 그러나 이렇게하면 테스트 데이터 포인트의 상당 부분이 플롯의 오른쪽 바깥쪽으로 끝나기 때문에 플롯 축척과 테스트 데이터의 실제 값을 고려하면 안됩니다. 여기에 내가 사용한 코드가있다 :R 패키지 e1071의 svm.plot에 테스트 데이터를 플롯하는 방법은 무엇입니까?
# Import e1071 package and iris data set
library(e1071)
data("iris")
# Split the data into training and test data
index <- c(1:35, 51:85, 101:135)
iris_training <- iris[index, ]
iris_test <- iris[-index, ]
# Compute SVM model with linear kernel
svm_model <- svm(Species ~ Petal.Length + Petal.Width,
data=iris_training,
kernel='linear')
# Plot the data and decision boundaries
plot(svm_model,
data = iris_training[ , c(3, 4, 5)],
xlim = c(0.05, 2.55),
ylim = c(0.9, 7),
svSymbol = 1,
dataSymbol = 1,
symbolPalette = c("black", "blue", "red"))
# Plot the test data into the same plot
points(iris_test$Petal.Width,
iris_test$Petal.Length,
pch="x")
어떤 아이디어가이 문제를 해결하거나 해결하는 방법? 도움말 크게 감사드립니다.
@jwells에게 감사드립니다. 프리젠 테이션을위한 플롯이 필요하므로 제안한 문제가 내 문제를 해결할 것입니다. BTW, 나는 0.3 대신 0.7을 빼야 음모를 올바르게 만들 수있었습니다. 이것이이 플롯 팅 동작을 이해하기위한 새로운 단서를 제공하는지 확실하지 않습니다. 그러나 이것이 R 개발자 중 누군가가 살펴보고 싶은 문제 일 수 있습니다. 도움에 다시 한번 감사드립니다. – oli