r语言SVM模型代码 亲测可运行 附数据

r语言SVM模型代码 亲测可运行 附数据

【原创】R语言报告论文(附代码数据)

有问题到淘宝找“大数据部落”就可以了

######################################################################

##### 数据导入与处理

######################################################################

setwd('C:\\Users\\lt\\Desktop') ## 将工作空间设置为数据所在的路径,也就是数据存放的位置

data<-read.csv('二手房.csv',header=T) ## 导入数据

data$price_level<-ifelse(data$price>median(data$price),'高房价','低房价')

## 构建因变量price_level

data$price_level<-as.factor(data$price_level) ## 将因变量格式转为因子型

######################################################################

##### 构建训练集、测试集

#####分层抽样,70%作为训练集,30%作为测试集

######################################################################

library(sampling)

a<-strata(data,c('price_level'),size=c(floor(8398*0.7),floor(8397*0.7)),method="srswor")

train<-data[a$ID_unit,-8]## 去除price变量的训练集

test<-data[-a$ID_unit,-8] ## 去除price变量的测试集

######################################################################

#####训练模型

######################################################################

install.packages('e1071') ## 安装软件包

library(e1071) ## 加载软件包

#一、使用线性核函数去拟合SVM模型

#1)模型拟合

svmfit1<-svm(price_level~.,data=train,kernel='linear',cost=10,scale=F)

#kernel='linear' ##选择线性核函数

#scale=F ##对数据不进行标准化处理,支持向量机的的损失函数为凸函数,是否标准化不影响最优解,但标准化之后可以使求解速度变快

#cost=10 ##参数代表犯错的成本,越大模型对误差的惩罚越大,生成的分类边界越复杂#2)对svmfit1模型进行改进,选择最优的cost值

set.seed (1) ## 设置种子,保证每次运行结果一致

tune.out<-tune(svm,price_level~.,data=train,kernel ='linear',

ranges =list(cost=c(0.001 , 0.01, 0.1, 1,5,10,100) ))

best.mode1<-tune.out$bestmode ##得到最优模型

#3)模型评估

ypred<-predict(best.model,test)

table(predict=ypred,ture=test$price_level)

#二、使用非线性核函数去拟合SVM模型

#1)模型拟合

相关主题
相关文档
最新文档