R语言 ANN-人工神经网络
发布时间
阅读量:
阅读量
该文本提供了一个使用R语言构建人工神经网络(ANN)进行分类的完整示例。首先加载了必要的库如chillR、tidyr、dplyr等,并对数据进行了预处理包括标准化和变量转换。接着定义了神经网络模型并进行了训练,并通过测试集进行预测。计算了模型的准确率和错误率,并绘制了ROC曲线以评估模型性能。
test–R语言人工神经网络进行分类的代码示例:
#数据准备 #ALL
rm(list=ls())
library(chillR)
library(tidyr)
library(dplyr) #mutate依赖环境
library(magrittr) #%>%依赖
library(tidyverse) #数据预处理--便于数据操作和可视化
library(tidytext) #分组排序
library(glmnet) #lasso&ridge
library(rpart) #决策树
library(ipred) #bagging
library(randomForest) #随机森林
library(caret)
library(RSNNS)
library(dplyr) #mutate依赖环境
library(magrittr) #%>%依赖
library(e1071)
setwd("ALL")
data<- read.csv("ALL.csv", header = T)
data=data %>% mutate(Groups=as.factor(Groups)) %>% as.data.frame()
str(data)
head(data)
qplot(X1,X2,data=data,color=Groups)
#将数据集分为训练集和测试集-70%
set.seed(123)
trainIndex <- createDataPartition(data$Groups, p = 0.7, list = FALSE)
train <- data[trainIndex, ]
test <- data[-trainIndex, ]
#对数据集进行预处理
#这段代码的意思是,使用scale()函数对trainingSet数据框的前四列进行标准化,即减去每列的均值并除以每列的标准差12。这样可以消除不同变量之间的量纲差异,便于进行后续的分析
trainingSetScaled <- scale(train[,2:415])
testingSetScaled <- scale(test[,2:415])
#转换变量
train$Groups <- as.numeric(factor(train$Groups))
test$Groups <- as.numeric(factor(test$Groups))
#创建神经网络模型
ANN<- mlp(trainingSetScaled,
train$Groups,
size = 3,
learnFuncParams = c(0.1), maxit = 1000,
inputsTest = testingSetScaled,
targetsTest = test$Groups)
#预测
pred<- predict(ANN, newdata=testingSetScaled,probability = TRUE)
pred
#计算准确率
pred<-predict(ANN,newdata=testingSetScaled,probability = TRUE)
pred
confusion_matrix<-table(Predicted=pred,Actual=test$Groups)
confusion_matrix
Errorrate<-1-sum(diag(confusion_matrix))/sum(confusion_matrix) #错误率
accuracy<-sum(diag(confusion_matrix))/sum(confusion_matrix) #准确率
#ROC
roc_curve <- roc(test$Groups , pred)
plot(roc_curve, main = "ROC Curve for Model", print.auc = TRUE, legacy.axes = TRUE)
plot(model )![在这里插入图片描述]()![在这里插入图片描述]()
全部评论 (0)
还没有任何评论哟~
