R 中的支持向量机
Kailash Awati
Instructor
x1 和 x2 在 (0,1) 上均匀分布。# 预备... # 设置所需数据点数量 n <- 200 # 设定随机种子以保证可复现 set.seed(42)# 生成两个自变量 x1 和 x2(范围 (0,1))的数据框 df <- data.frame(x1 = runif(n), x2 = runif(n))
x1 = x2 分隔的两个类别y = -1,上方 y = 1# 将点分类为 -1 或 +1
df$y <- factor(ifelse(df$x1 - df$x2 > 0, -1, 1),
levels = c(-1, 1))
x1 = x2:过 (0, 0),斜率 = 1library(ggplot2)
# 构建图形
p <- ggplot(data = df, aes(x = x1, y = x2, color = y)) +
geom_point() +
scale_color_manual(values = c("-1" = "red", "1" = "blue")) +
geom_abline(slope = 1, intercept = 0)
# 显示图形
p

# 在数据集中创建 0.05 的间隔 delta <- 0.05 # 仅保留位于间隔之外的点 df1 <- df[abs(df$x1 - df$x2) > delta, ] # 检查剩余数据点数量 nrow(df1)# 重新绘制含间隔的数据集(代码与之前完全相同) p <- ggplot(data = df1, aes(x = x1, y = x2, color = y)) + geom_point() + scale_color_manual(values = c("red", "blue")) + geom_abline(slope = 1, intercept = 0) # 显示图形 p

p <- p +
geom_abline(slope = 1, intercept = delta, linetype = "dashed") +
geom_abline(slope = 1, intercept = -delta, linetype = "dashed")
p

R 中的支持向量机