超并行机器学习与海量数据挖掘.docx

上传人:b****6 文档编号:2996873 上传时间:2022-11-17 格式:DOCX 页数:17 大小:834.61KB
下载 相关 举报
超并行机器学习与海量数据挖掘.docx_第1页
第1页 / 共17页
超并行机器学习与海量数据挖掘.docx_第2页
第2页 / 共17页
超并行机器学习与海量数据挖掘.docx_第3页
第3页 / 共17页
超并行机器学习与海量数据挖掘.docx_第4页
第4页 / 共17页
超并行机器学习与海量数据挖掘.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

超并行机器学习与海量数据挖掘.docx

《超并行机器学习与海量数据挖掘.docx》由会员分享,可在线阅读,更多相关《超并行机器学习与海量数据挖掘.docx(17页珍藏版)》请在冰豆网上搜索。

超并行机器学习与海量数据挖掘.docx

超并行机器学习与海量数据挖掘

1.系统需求分析

1.1电院综合测评现状及此系统的意义

在当前上海交通大学电子信息与电气工程学院的素质综合测评体系中,学生最终的综合测评分数包含以下四个部分:

学业成绩、素质拓展测评成绩、成果奖励成绩和违反校纪校规处罚,详细计算规则可参见《学生综合测评工作手册》。

其中学业成绩可以直接从学校教务处的网站上获得,并不存在太多麻烦。

而另外三个部分(在此我们将其合称为素拓部分)由于项目繁杂众多,每年在统计时耗时、耗力。

目前电院在进行素拓部分分数统计时采用的方法相当笨拙,其流程大致如下:

1、每学期开学初汇总上学期所有学生的素拓项目

2、由各位思政老师和团委老师上传所有学生所参加过的项目以及对应的成绩至FTP

3、每个学生从FTP上寻找和自己相关的素拓项目,汇总后报告各自班长

4、每个班班长汇总各自班级的情况后在统一交给学院

5、学院得到所有学生的素拓分数后发放确认表格,由各个同学签名确认

如此流程存以下重大缺陷:

1、每个同学必须如海底捞针一般从近百个excel文件中寻找和自己相关的项目,效率极低。

2、从同学上报班长到最终确认政绩的过程缺乏监督,事实上虚报素拓项目完全无法被察觉,例如每学期虚报参加社团者不计其数。

3、分数有改动时不得不上传带有版本号的不同表格文件,各种带有版本号的文件导致FTP上的内容非常混乱,增加同学寻找有效信息的难度。

4、缺乏隐私保护,每个人的成绩暴露在所有同学的视线中(也许我们需要感谢这一缺陷使得我们可以轻松拿到大量真实数据用于本系统测试)。

目前每个学期的素拓分数统计大约耗时3周左右,且经常出现项目遗漏之后无法弥补的悲剧。

如此低效笨拙的做法在交大电院持续了那么多年,实在让人难以想象,这与国际一流学校的风范相去甚远。

因此我们所设计的电院综合测评系统立志于让每个同学和老师高效完整每学期初的综合测评工作,更重要的是使整个流程规范化,弥补当前综合测评工作中可能存在的一些漏洞。

我们的整个系统的规则基于《电院本科生综合测评工作条例》和《学生综合测评工作手册》,在此不做赘述。

1.2普通用户需求

这里的普通用户包括了学生和团委或思政老师。

学生的主要需求是查分,选择提交的项目;团委或思政老师的主要需求是为学生参与的项目打分。

但是,由于在实际情况中学生同样有用打分权限,例如部长给部门的成员打分,班长给班级同学的集体意识打分等。

而有些思政或团委老师同时也是研究生,如果将来学院需要将研究生和本科生的综合测评工作统一,他们同样需要查询、提交自己参与的素拓项目。

故此处将这两类用户归为同一类,称之为“普通用户”。

以下是普通用户的需求:

1、允许普通用户通过自己的学号(工号)和密码登陆系统。

2、允许普通用户在登陆后修改自己的密码。

3、允许普通用户查看现有的所有素拓项目的基本信息,如:

学分,报名时间,官方要求的最高平均分等。

4、允许普通用户在报名截止前进行报名,参加可以参与的素拓项目。

5、允许普通用户对自己已参加的且已经出成绩的素拓项目进行选择提交。

6、允许普通用户和系统内的其他用户通过站内信进行交流,例如对项目打分有质疑时可以向相关的负责人(打分者)上诉。

7、不允许普通用户修改任何关于素拓项目的基本信息。

8、不允许普通用户查看别人参加素拓项目的情况,普通用户仅仅能查询自己的素拓项目成绩和打分者。

9、普通用户可以拥有管理员授予的打分权限,并对被授权的项目进行打分,打分时间以及打分人都会向被打分者公开,以接受监督。

1.3管理员需求

此处管理员指的是制订综合测评规则的人或团队,以下是管理员的需求:

1、允许管理员通过自己的学号(工号)和密码登陆系统

2、允许管理员对所有素拓项目的基本信息进行查询和修改。

3、允许管理员对素拓项目的打分者进行设置,分配打分权限。

4、允许管理员和系统内的其他用户通过站内信进行交流,例如对学生的质疑进行回复。

5、允许管理员制定项目冲突的规则,例如普通班干部和核心班干部两项不能共存,同一类型的素拓项目只能算一个等。

学生提交的最终结果必须符合管理员制定的规则。

6、不允许管理员对学生参与的项目进行打分。

第6条有必要解释一下,在现有的制度中,现实中会出现总负责的团委老师越权对其感觉不满但并不违规的素拓成绩随意更改的情况(俗称“和谐”)。

我们的系统不允许此类行为发生,要求所有的打分过程公开透明。

2.系统结构设计

2.1ADO.NET开发环境简述

ADO.NET组件的表现形式是.NET的类库,它拥有两个核心组件:

.NETdataprovider(数据提供者)和DataSet(数据结果集)对象。

.NETDataProvider是专门为数据处理以及快速的只进、只读访问数据而设计的组件,包括Connection,Command、Datareader和DataAdapter四大类对象,其主要的功能特点是:

1)在应用程序中连接数据库,连接SQLServer数据服务器

2)通过SQL语句的形式执行数据库操作,并能以多种形式把查询结果填充到DataSet里。

DataSet的对象是支持ADO.NET的断开式、分布式数据方案的核心对象。

DataSet是数据为驻留表示形式,无论数据源是什么,它都会提供一致的关系编程。

它是专门为独立于任何数据源的数据访问而设计的。

DataSet对象的主要功能是:

1)用其中的DataTable和DataRelation对象来容纳.NETDataProvider对象传递过来的数据库访问结果集,一边应用程序访问。

2)把应用代码中的业务执行结果更新到数据库中。

并且,DataSet对象能在理想的情况下管理存储数据,这在海量数据访问控制的场合是非常有利的。

下图描述了它的体系结构:

图2-1ADO.NET体系结构图

本次大作业中,主要应用到了DataProvider的Connection对象,用不同的权限,即不同的用户名和密码来登录数据库系统,实现管理员和学生/教工用户权限的分离。

并且使用DataAdapter对象从数据库中读入数据到dataset的各个表中,比如:

Studen表,Item表和Participate表中,使用Command对象来生成相应的增删补语句,将结果从DataSet反应到数据库中,从而完成本次大作业的各个功能。

2.2E/R模型设计

图2-2系统的E/R图

2.3数据库模式

2.3.1用户信息:

Student表

图2-3Student表信息

Student(std_id,password,authority,class,std_name)。

Student用来记录用户信息,其中std_id是主键,对应学生的学号,教师的教工号或者是管理员特有的账号。

(原来设计时想用User命名,但如此定义与SQL系统定义的User表会发生冲突,因此改名Student,虽然该表中的用户并非全是Student,但相信他们都是从Student过来的);password是用户登录的密码;authority是用来区分普通用户和管理员的布尔变量,class记录用户所在的班级,std_name记录用户的姓名。

管理员拥有对此表的访问修改权限,普通用于仅可编辑自己的密码。

2.3.2项目信息:

Item表

图2-4Item表信息

Item(item_id,item_name,max_avg,start_enroll,end_enroll,credit,is_compulsory,item_number)

顾名思义,本表是用来记录素拓项目的数据结构。

Item_id是项目标识,也是Item表的主键;item_name是项目的名称;max_avg是该项目最高平均分,例如当最高平均分为90时,某个老师提交所有的学生成绩为95是不被允许的;start_enroll是报名起始时间,end_enroll是报名截止时间,当前时间处于两者之间方可报名;credit是项目学分;is_conpulsory是用来区分该素拓项目是否必修的布尔量;item_number是项目编号,注意此属性与Item_id不用,几个不用的项目可能共享一个项目编号,而Item_id是真正区分所有项目的id,无官方手册中对应的信息。

这里的credit属性同时用来区分项目类别。

当credit>0时其意义为真实学分;当credit=0时,对应的意义为特殊的奖惩项。

例如参加竞赛可以获得0.5-2分的加分,其计算时并非按照学分来算,而是直接在总评上加;又比如翘课被发现会有一定程度扣分……

管理员拥有对此表的修改权限,普通用户近可访问。

2.3.3项目参与信息:

Participate表

图2-5Participate表信息

Participate(std_id,item_id,grade,selected,submitter_id,submitter_date,rate)

Participate依存于对应的student和item实体,是weakrelationship,其表中有拥有std_id,item_id作为外键。

表中的每一项记录了具体某一个学生参加了某一个素拓项目。

在生成物理模型后,这两个外键就会出现在Participate中。

Grade是学生选修本项目的成绩;selected表示学生是否选择提交此项目计算最终成绩;submitter_id是打分者的ID,为外键,当学生对分数不满时可根据此信息进行投诉;submitted_date是打分的日期;rate是用户对该项目的评价,学院可收集这一信息对项目进行评估。

普通用户通过报名可以生成一个Participate项,并能修改selected属性,管理员可以编辑subitter_id设置打分者,对应subiiter_id的用户可以设置grade的值,submitted_date在打分时自动根据系统时间生成。

2.3.4项目冲突规则:

Item_Rule表

图2-6Item_Rule表信息

Item_Rule(rule_Id,item_number1,item_number2)

Item_Rule用表示项目间无法一起提交的约束,例如普通班干部和核心班干部、部长和部员、英语四级和英语六级等。

Rule_id是这个表的主键,记录这个规则的标识,item_number1和item_number2是用来记录冲突项目的编号(注意对应为Item表中的item_number,并非其ID)。

所有人可以访问此表,仅管理员可以编辑。

2.3.5Send_Message表

图2-7Send_Message表信息

Send_Message(send_message_date,to_user_id,sendtext,std_id)

Send_Message用来记录发出的站内信消息。

send_message_date表示发送时间,to_std_id为外键,表示发送的目标用户;sendtext是发送信件的内容;std_id为发信者id和send_message_date一起作为其主键。

2.3.6Recv_Message表

图2-8Recv_Message表信息

Recv_Message(recv_message_date,from_user_id,sendtext,std_id)

Recv_Message用来记录发出的站内信消息。

recv_message_date表示发送时间,from_std_id为外键,表示发信的用户;sendtext是发送信件的内容;std_id为收件者id和send_message_date一起作为其主键。

Send_Message是从发送者的角度观察站内信,Recv是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1