救命啊,急。 (100分)

Unregistered / Unconfirmed
GUEST, unregistred user!
后台算法的,放在sql的存储过程中,学生评估系统。学生给老师评分,例如有20个单项,每个单项有5、4、3、1四个等级
我的算法是sum(各单项的平均分值),现在问题是:
1、根据学生成绩的好坏来判断他对老师打分的可信度,有什么算法?
2、有些学生会连续几项都打4分,有的学生是1、3分隔着打,这两个人虽然总分是一样的,怎样判断两人打分的可信度,算法?
3、就是学生的思维定式,他的前几项打的比较低,觉的不好,接下去的几项就会打的很高,可信度怎么解决?
4、同一个老师教的两个班级,总评分差的很多,怎么解决?
第一次接触,什么头绪也没有,最好是具体的代码,算法、要不有相关的书籍,资料也行,很急!!只给了我4、5天的时间,一共就 这么点钱,拜托各位了!
 
其实既然是给别人评分的就不应该考虑这个东西了,
你只要算出最后结果就可以了,
如果你还要考虑什么可信度的话那么其实是你也参与评分了,这样的平分结果已经不公平了
我是这么认为的,也许你有你自己的想法
 
一个本来简单的问题,这样还复杂了许多,是专门编给校长看的吧!
可信度,老师的平均分先算出来,分配一个学生的优良中差的人数,对不同等的学生与平均分
相除,有个比率,这个是最简单的了,你也可以作方差等等。
就事论事,我的只作参考。这样评分有失公允。
xs吗!
 
老大这个本来就是替学校作的,当然要按照他的意思来做,你们讲的根本就是废话。就没人帮我一把吗?
 
为什么只有人看,没人回答啊?就是n个人,每个人给m个分值,用什么算法来让确定个人的可信度,好急。如果用均方差,算法该怎么写啊?
 
说的不对吧你说是废话
这样谁还敢说啊
 
算了,求人不如求己,自己想办法吧。不然等着完蛋。
 
你提出的这个问题不是你的问题,“可信度”的明确定义应该是由用户给出的,如果用户
自己都无法定义,你大可以以需求不明确为由暂时不写此功能。
我有一个非常简单的方案:求方差。
此方案认为从总体来说,打分的可信度是比较高的(如果连这点都做不到这个打分功能不
做也罢!——香农定律不是也说噪声不能太大、太多嘛:p),在此基础上,可以得出相对于
全班平均水平的个人打分可信度。算法如下:
设评分的项目数为M,全班有学生N名,学生的打分结果存放在二维数组G[N][M]中。
首先,要计算出各个单项评分的全班平均值,放在数组A[M]中;
现在,我们就可以计算某个学生某个特定单项的打分与平均打分的差值:
D[x]=G[x]-A[x] (建议采用相对比值: (G[x]-A[x])/(G[x]+A[x]) )
然后,再对每个学生的打分差值进行汇总处理,得到总差异:
T=∑(D[x])^2/M
如果需要,我们还可以得到全班的平均可信度:
R_class=∑T/N
在得到了T[]之后,我们就可以将它们从小到大排序,最小的可信度显然最高。现在,问
题的关键就在于如何量化可信度。如果差值的计算采用相对比值,我们就可以很容易的得到
计算公式:
R_student=(1-T)*100% (因为容易看出 0<=D[x]<=1 --> 0<=T<=1)
这个算法还行吗?
 
可以啊,你能把代码写给我吗?放在存储过程里。
 
to "儿" 网友:
你分析出来的2,3两种情况,也很有可能他原意思就是这样打的,
所以,可信度的分析不是从他打的分数上可以判断出来。
第一、应该让学生重视该评分,从而能够认真的打分,
第二、把一些评分的原则简要的说出来,并是学生了解并容易操作。
第三、可以通过其他的方法--心理测试--来获得一个可信度。
根据他的思维方式和性格特征可以得出他对某项指标的数学期望,
以该数学期望作为可信度(权)比较可靠。
creation-zy兄的算法本人认为有个小问题:
其实D[x]必然有大约一半为负数,
实际上 -1<= D[x]=(G[x]-A[x])/(G[x]+A[x]) <1
因为下放的G[x]+A[x]在G[x]变大时会减小,
这样,加入T在单项目分给低分和给高分的偏差一样时却是不同的,
造成数学期望不是无偏的(实际是偏高)。
只要将 (G[x]+A[x]) 改成 Max(G[X]-A[X])就可以无偏了。
实际上算D[x]也可以不除,到最后一起归一化就就可以了。
对于你讲的1,从分数来看可信度,可以用对数法:
假如满分是M分,N个学生的成绩为C(i从1到n),
第i个学生的量值为: K=ln(C)/ln(M)
如果认为成绩中等的同学最可信,那么可以对K按照平均的方法算权,
如果认为成绩越好越可信,就用K作为权。
实际上还应该加上用成绩的变动值,
假如进步的学生他对老师的评价应该比较高一些,
那么这个可信度可以认为进步(退步)越大越可信。
假设每i个同学亮次成绩的变化为D, 可信权度为Abs(D)/100,
再累计到上面的成绩算出的权中,最后归一化成可信度。
 
DarwinZhang
听你这么一说,觉得更复杂了,我对sql语句是一点也不熟,现在做的头都大了,觉得要考虑的问题越来越多,也没具体的例子可以参考。
 
已经搞定了,谢谢!
 
多人接受答案了。
 
顶部