【发布时间】:2017-08-19 01:23:51
【问题描述】:
我使用 R 包 e1071 和 iris 数据集构建了一个 SVM 模型。我已将 iris 数据拆分为训练和测试数据,并从训练数据构建 SVM。现在我想使用points 函数将测试数据绘制到显示训练数据和 SVM 边界的同一图中。但是,当我这样做时,相当多的测试数据点最终会出现在绘图右侧之外,考虑到绘图比例和测试数据的实际值,这应该是不可能的。这是我使用的代码:
# 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")
任何想法如何解决此问题或如何解决此问题?非常感谢帮助。
【问题讨论】: