最近要开始做一个分类器,因此,参考了几篇文献,并在自己的数据上进行了测试,可用。
1. 数据
当然了,需要准备两个数据集合,一个数据集合作为训练集合(train_dat),另一个集合作为检验集合(test_dat),也可以准备多个验证集合。
2 分类器方法:
在我的数据集中 训练集合中,sample 是标签列, 且使用全部基因,因此,训练模型的时候,formula 基本都是sample~., ,废话不多说,开始上代码。
(1)决策树,使用的是rpart R包进行模型的构建
fit<-rpart(sample~.,data=train_dat,method='class')
predictRes<-predict(fit,test_dat,type="class")
table(test_dat$sample, predictRes) ##可查看分类效果
(2)C4.5 决策树,是比较经典的方法
fit<-ctree(as.factor(sample)~.,data=train_dat)
predictRes<-predict(fit,newdata=test_dat)
(3)C5 tree
fit<-C5.0(as.factor(sample)~.,data=train_dat,trials=50)
predictRes<-predict(fit,newdata=test_dat)
(4) 朴素贝叶斯
fit<-naiveBayes(sample~.,data=train_dat,)
predictRes<- predict(fit, newdata = test_dat)
(5) kNN 聚类
classifier_knn <- knn(train = train_dat[,-ncol(train_dat)],
test = test_dat,
cl = train_dat$sample,
k = n)
(6)随机森林
classifier_RF = randomForest(x = train_dat[,-ncol(train_dat)],y = as.factor(train_dat$sample),ntree = 500,type = "class")
predictRes= predict(classifier_RF, newdata = test_dat,type = "class")
(7) 支持向量机 这个需要自己选择内核函数
classifier = svm(formula =as.factor(sample) ~ .,data = train_dat,type = 'C-classification',kernel = 'polynomial')
predictRes = predict(classifier, newdata = test_dat)
就先到这里了,后面遇到其他模型会继续补充记录。。。
未完待续。。。