【原创】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=\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)模型拟合