R:使用 e1071 包在 svm 模型中更改 class.weight 不会影响结果

问题描述

我正在尝试使用 R 中的 e1071 包创建加权 svm 模型。我已经成功地创建了具有良好精度的模型。问题是,当我更改 class.weghts 时,结果仍然相同,这对我来说没有意义。

我正在使用以下脚本:

data01<- read_excel("C:\\Users\\after_PCA_for_SVM_PASS_FAIL_TRUE.xlsx")
data_frame<-data.frame(data01)

n <- nrow(data_frame)  # Number of observations
n
ntrain <- round(n*0.75)  # 75% for training set
tindex <- sample(n,ntrain)   # Create a random index
train <- data_frame[tindex,]   # Create training set
test <- data_frame[-tindex,]

tr_size= round(nrow(data_frame)* 0.60) # the size of training dataset (60%)
vsize= nrow(data_frame)-tr_size  # the size of validating and test data set 
tr_sample= sample(nrow(data_frame),tr_size,replace = FALSE,set.seed(1)) # randomly select training dataset
train_data= data_frame[tr_sample,]

#Again split the data into validating dataset and test dataset

new_data= data_frame[-tr_sample,]
val_sample=sample(nrow(new_data),ceiling(vsize*0.1),replace=FALSE,set.seed(1) )
val_data=new_data[val_sample,]
test_data= new_data[-val_sample,]
# check the samples generated for each dataset  
nrow(test_data) # number of observation in test dataset
nrow(val_data) # number of observation in validating dataset
nrow(train_data) # number of observation in training dataset
nrow(data_frame) # number observation of the whole dataset

X <- subset(data_frame,select=-STATUS)
Y <- subset(data_frame,select=STATUS)

X_train <- subset(train_data,select=-STATUS)
Y_train <- subset(train_data,select=STATUS)

install.packages("e1071")
library(e1071)

wts<-1/table(Y)
wts1<- c("0"=50,"1"=1500)
best_model= svm(train_data,Y_train,type="C-classification",kernel="linear",class.weights = wts)
best_model= svm(train_data,class.weights = wts1)


linear_w1<- predict(best_model,val_data)
linear_weighted<- table(val_data$STATUS,linear_w1)
linear_weighted

有人能帮我解决这个问题吗?我正在使用附加的数据集。

data01

谢谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...