2
e1071 libsvm有问题吗?
我有一个包含两个重叠类的数据集,每个类中有七个点,点在二维空间中。在R中,我正在svm从e1071软件包中运行,以为这些类构建单独的超平面。我正在使用以下命令: svm(x, y, scale = FALSE, type = 'C-classification', kernel = 'linear', cost = 50000) 其中x包含我的数据点并y包含其标签。该命令返回一个svm-object,我用它来计算分离超平面的参数(法向矢量)和(截距)。wwwbbb 下图(a)显示了我的点和svm命令返回的超平面(让我们将此超平面称为最佳平面)。带符号O的蓝点表示空间原点,虚线表示边距,带圆圈的是非零ξξ\xi(松弛变量)的点。 图(b)显示了另一个超平面,它是最佳5的平行平移(b_new = b_optimal-5)。不难看出,对于该超平面,目标函数 0.5||w||2+cost∑ξi0.5||w||2+cost∑ξi 0.5||w||^2 + cost \sum \xi_i (通过C分类svm最小化)将具有比图所示的最佳超平面更低的值(一个)。看来此svm功能有问题吗?还是我在某个地方犯了错误? 以下是本实验中使用的R代码。 library(e1071) get_obj_func_info <- function(w, b, c_par, x, y) { xi <- rep(0, nrow(x)) for (i in 1:nrow(x)) { xi[i] <- 1 - …