R语言神经网络模型通过学生成绩判别学生性别

R语言神经网络模型通过学生成绩判别学生性别

install.packages("RSNNS")
library(Rcpp)
library(RSNNS)
install.packages('xlsx')
library(xlsx)

#用神经网络模型预测鸳鸯花集数据
data(iris)
iris = iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)]#将数据顺序打乱 
irisValues= iris[,1:4]#定义网络输入 
irisTargets = decodeClassLabels(iris[,5])#定义网络输出,并将数据进行格式转换,将非数值分类转化为0和1
iris = splitForTrainingAndTest(irisValues, irisTargets, ratio=0.15)#将数据15%部分划分为测试集,剩余部分划分为训练集
iris = normTrainingAndTestSet(iris)#数据标准化 
model = mlp(iris$inputsTrain, iris$targetsTrain, size=5, learnFunc="Quickprop", learnFuncParams=c(0.1, 2.0, 0.0001, 0.1),maxit=100, 
            inputsTest=iris$inputsTest, targetsTest=iris$targetsTest) #利用mlp命令执行前馈反向传播神经网络算法 
#size为隐藏网络层数,maxit为学习最大迭代数
predictions = predict(model,iris$inputsTest)#利用上面建立的模型进行预测 
confusionMatrix(iris$targetsTest,predictions)#生成混淆矩阵,观察预测精度 

help("mlp")


#用神经网络模型通过学生分数判别性别
data=read.xlsx('E:/课件/研一上/计量经济学/论文/学生考试成绩表.xlsx',1, encoding="UTF-8")
row.names(data)
data=data[c("性别","语文","代数","英语","物理","化学","生物","政治","历史","地理")]
X= data[,2:length(colnames(data))]#定义网络输入
Y= decodeClassLabels(data[,1])#定义网络输出,并将数据进行格式转换,将非数值分类转化为0和1
data_use= splitForTrainingAndTest(X, Y, ratio=0.15)#将数据15%部分划分为测试集,剩余部分划分为训练集
data_use= normTrainingAndTestSet(data_use)#数据标准化 
model = mlp(data_use$inputsTrain, data_use$targetsTrain, size=5, learnFunc="Quickprop", learnFuncParams=c(0.1, 2.0, 0.0001, 0.1),maxit=1000, 
            inputsTest=data_use$inputsTest, targetsTest=data_use$targetsTest) #利用mlp命令执行前馈反向传播神经网络算法 
#size为隐藏网络层数,maxit为学习最大迭代数
predictions = predict(model,data_use$inputsTest)#利用上面建立的模型进行预测
matrix=confusionMatrix(data_use$targetsTest,predictions)#生成混淆矩阵,观察预测精度 
heatmap(matrix)
matrix

你可能感兴趣的:(R语言日常实例)