基于R语言的支持向量机(SVM)+k均值(K-means)简单实现

SVM作为一种监督学习算法,主要任务是将线性不可分的样本通过一种非线性算法(如核函数)映射到高纬空间系统,使得样本集在高纬空间变得线性可分的机器学习算法。K-means作为非监督学习算法,能在对未知样本在无标签的情况下进行划分,对探索样本内部结果分布具有重要意义,本文将用R语言简单实现两种算法

1、SVM

install.packages("e1071")

set.seed("123") //设置随机数种子,也可不设置

library(e1071)//导入需要的包
nrow(iris)//查看r自带的数据集iris的行数
index=sample(1:nrow(iris),100)//随机选出数据集的100行数据作为测试集
traindata<-iris[index,]//测试数据
testdata<-iris[-index,]//训练数据
svmmodel<-svm(Species~.,data=traindata)//用测试数据建立SVM模型
result<-predict(object=svmmodel,newdata=testdata,type="class")//模型在测试数据集上测试
table(result,testdata$Species)//查看测试结果,生成一个混淆矩阵

2、k-means

install.packages("stats")
library(stats)
modelkmeans<-kmeans(x=subset(iris,select=-Species),center=3)
table(modelkmeans$cluster,iris$Species)

猜你喜欢

转载自blog.csdn.net/yjfncu/article/details/50236143