微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?