神经网络预测
a=[]; %输入数据
c=[]; %输出数据
temp=randperm(size(a,1)); %获取个数
p_train=a(temp(1:3000),:)'; %样本
i_train=c(temp(1:3000),:)';
p_test=a(temp(3001:end),:)'; %测试数据
i_test=c(temp(3001:end),:)';
N=size(p_test,2);
net=newff(p_train,i_train,200) %神经网络
net.trainParam.epochs=100000; %迭代次数
net.trainParam.goal=1e-3; %误差大小
net.trainParam.lr=0.01;
net=train(net,p_train,i_train) %神经网络训练
t_sim=sim(net,p_test);
error=abs(t_sim-i_test)./i_test; %误差
result=[i_test' t_sim' error']; %输出结果对比
协方差系数矩阵
a_average=sum(a)/length(a) %取平均值
b_average=sum(b)/length(b)
c_average=sum(c)/length(c)
d_average=sum(d)/length(d)
e_average=sum(e)/length(e)
f_average=sum(f)/length(f)
%cov12相关系数
num=0;
for i=1:4710
t=(a(i)-a_average)*(b(i)-b_average);
num=num+t;
end
num=num/4710;%cov
cov12=num/sqrt(var(a))/sqrt(var(b));
#cov13相关系数
num=0;
for i=1:4710
t=(a(i)-a_average)*(c(i)-c_average);
num=num+t;
end
num=num/4710;%cov
cov13=num/sqrt(var(a))/sqrt(var(c))
#cov14相关系数
num=0;
for i=1:4710
t=(a(i)-a_average)*(d(i)-d_average);
num=num+t;
end
num=num/4710;%cov
cov14=num/sqrt(var(a))/sqrt(var(d))
#cov15相关系数
num=0;
for i=1:4710
t=(a(i)-a_average)*(e(i)-e_average);
num=num+t;
end
num=num/4710;%cov
cov15=num/sqrt(var(a))/sqrt(var(e))
#cov16相关系数
num=0;
for i=1:4710
t=(a(i)-a_average)*(f(i)-f_average);
num=num+t;
end
num=num/4710;%cov
cov16=num/sqrt(var(a))/sqrt(var(f))
#cov23相关系数
num=0;
for i=1:4710
t=(b(i)-b_average)*(c(i)-c_average);
num=num+t;
end
num=num/4710;%cov
cov23=num/sqrt(var(b))/sqrt(var(c))
#cov24相关系数
num=0;
for i=1:4710
t=(b(i)-b_average)*(d(i)-d_average);
num=num+t;
end
num=num/4710;%cov
cov24=num/sqrt(var(b))/sqrt(var(d))
#cov25相关系数
num=0;
for i=1:4710
t=(b(i)-b_average)*(e(i)-e_average);
num=num+t;
end
num=num/4710;%cov
cov25=num/sqrt(var(b))/sqrt(var(e)
#cov26相关系数
num=0;
for i=1:4710
t=(b(i)-b_average)*(f(i)-f_average);
num=num+t;
end
num=num/4710;%cov
cov26=num/sqrt(var(b))/sqrt(var(f))
#cov34相关系数
num=0;
for i=1:4710
t=(c(i)-c_average)*(d(i)-d_average);
num=num+t;
end
num=num/4710;%cov
cov34=num/sqrt(var(c))/sqrt(var(d))
#cov35相关系数
num=0;
for i=1:4710
t=(c(i)-c_average)*(e(i)-e_average);
num=num+t;
end
num=num/4710;%cov
cov35=num/sqrt(var(c))/sqrt(var(e))
#cov36相关系数
num=0;
for i=1:4710
t=(c(i)-c_average)*(f(i)-f_average);
num=num+t;
end
num=num/4710;%cov
cov36=num/sqrt(var(c))/sqrt(var(f))
#cov45相关系数
num=0;
for i=1:4710
t=(d(i)-d_average)*(e(i)-e_average);
num=num+t;
end
num=num/4710;%cov
cov45=num/sqrt(var(d))/sqrt(var(e))
#cov46相关系数
num=0;
for i=1:4710
t=(d(i)-d_average)*(f(i)-f_average);
num=num+t;
end
num=num/4710;%cov
cov46=num/sqrt(var(d))/sqrt(var(f))
#cov56相关系数
num=0;
for i=1:4710
t=(e(i)-e_average)*(f(i)-f_average);
num=num+t;
end
num=num/4710;%cov
cov56=num/sqrt(var(e))/sqrt(var(f))
excel用python读写
import xlrd #读excel文件
import xlwt #写excel文件
workbook1=xlrd.open_workbook("C://Users//DELL//Desktop//自己模拟1\附件:数据//2019-2020-1期末.xlsx") #读取期末成绩excel文件
sheet11=workbook1.sheet_by_name("期末成绩") #读取期末成绩页
workbook2=xlrd.open_workbook("C://Users//DELL//Desktop//自己模拟1\附件:数据//2019-2020-1线上.xls") #读取线上成绩excel文件
sheet21=workbook2.sheet_by_name("综合完成情况")#读取综合完成情况页
sheet22=workbook2.sheet_by_name("讨论详情")#读取讨论详情页
sheet23=workbook2.sheet_by_name("成绩详情")#读取成绩详情页
sheet24=workbook2.sheet_by_name("期中成绩")#读取期中成绩页
workbook=xlwt.Workbook()# 创建新的excel文件
sheet= workbook.add_sheet("总成绩")
sheet.write(0,0,"姓名")#设置新文件的表头
sheet.write(0,1,"班级")
sheet.write(0,2,"专业")
sheet.write(0,3,"期末成绩")
sheet.write(0,4,"线上成绩")
sheet.write(0,5,"期中成绩")
sheet.write(0,6,"任务完成数")
sheet.write(0,7,"讨论数")
sheet.write(0,8,"章节学习次数")
sheet.write(0,9,"任务点完成百分比")
sheet.write(0,10,"总讨论数")
sheet.write(0,11,"发表讨论")
sheet.write(0,12,"回复讨论")
sheet.write(0,13,"建议分数")
sheet.write(0,14,"课程视频得分(30%)")
sheet.write(0,15,"课程视频进度")
sheet.write(0,16,"讨论得分(20%)")
sheet.write(0,17,"作业得分(30%)")
sheet.write(0,18,"章节学习次数得分(20%)")
sheet.write(0,19,"任务点完成百分比")
num=1
for i in range(1,sheet11.nrows): #行编号
flag=0 #设置判断标志
for j in range(1,sheet21.nrows):
data1=sheet11.row(i)#期末成绩页
data2=sheet21.row(j)#综合完成情况页
data3=sheet22.row(j) #讨论详情页
name1=data1[0].value #姓名1
name2=data2[0].value #姓名2
if name1==name2: #判断姓名是否相同
for k in range(1,sheet23.nrows):
data4=sheet23.row(k) #成绩详情页
name3=data4[0].value #姓名3
if name1==name3:
for p in range(1,sheet24.nrows):
data5=sheet24.row(p) #期中成绩页
name4=data5[0].value #姓名4
if name1==name4: #判断四个姓名是否相同
flag=1 #改变flag为1
sheet.write(num,0,data1[0].value)#写入姓名
sheet.write(num,1,data1[1].value)#写入班级
sheet.write(num,2,data5[1].value)#写入专业
sheet.write(num,3,data1[2].value)#期末成绩
sheet.write(num,4,data4[7].value)#线上成绩
sheet.write(num,5,data5[2].value)#期中成绩
sheet.write(num,6,data2[1].value)#任务完成数
sheet.write(num,7,data2[2].value)#讨论数
sheet.write(num,8,data2[3].value)#章节学习次数
sheet.write(num,9,data2[4].value)#任务点完成百分比
sheet.write(num,10,data3[1].value)#总讨论数
sheet.write(num,11,data3[2].value)#发表讨论
sheet.write(num,12,data3[3].value)#回复讨论
sheet.write(num,13,data3[4].value)#建议分数
sheet.write(num,14,data4[1].value)#课程视频得分(30%)
sheet.write(num,15,data4[2].value)#课程视频进度
sheet.write(num,16,data4[3].value)#讨论得分(20%)
sheet.write(num,17,data4[4].value)#作业得分(30%)
sheet.write(num,18,data4[5].value)#章节学习次数得分(20%)
sheet.write(num,19,data4[6].value)#任务点完成百分比
num=num+1
break
if flag==1:
break
if flag==1:
break
workbook.save("19-20第一学期综合表.xls")#保存