基于Knn算法的图书推荐系统毕业设计.docx
- 文档编号:27953386
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:56
- 大小:365.13KB
基于Knn算法的图书推荐系统毕业设计.docx
《基于Knn算法的图书推荐系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Knn算法的图书推荐系统毕业设计.docx(56页珍藏版)》请在冰豆网上搜索。
基于Knn算法的图书推荐系统毕业设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
基于Knn算法的图书推荐系统
摘要:
互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求的同时,也使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,而产生所谓的信息超载问题,推荐系统就这样应运而生。
推荐系统现已广泛应用于很多领域,其中最典型并具有良好的发展和应用前景的领域就是电子商务领域。
个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。
同时学术界对推荐系统的研究热度一直很高,逐步形成了一门独立的学科。
本文介绍的推荐系统,一方面根据学校的图书借阅情况,构建出基于Knn算法的图书推荐系统,可以解决同学们借书没有头绪,借不到适合自己的书等等问题,另一方面实现了数据、算法、成果展示的分离,使得程序设计、大数据处理、前端展示的分工更加明确简洁。
本系统采用了统计领域广泛使用的R软件,适于数据存储与挖掘的SQLServer2008,以及适用于前端展示的Java语言,通过三者的协调互助,共同完成推荐系统的数据存储、挖掘以及展示工作。
关键词:
推荐系统Knn算法 专属推荐大数据挖掘R软件
Bookrecommendation systembasedon Knnalgorithm
Abstract:
TheemergenceandpopularizationoftheInternetuserstobringagreatdealofinformation,meettheusersatthesametimetheneedforinformationintheinformationage,butalsomakestheuserinthefaceofalargeamountofinformationcannotbeobtainedfromthatpartoftheinformationtheyreallyuseful,andproducetheinformationoverloadtheso-calledproblems,recommendationsystemcomes.Recommendationsystemhasbeenwidelyusedinmanyfields,amongwhichthemosttypicalandhasgoodprospectsforthedevelopmentandapplicationofthefieldisthefieldofelectroniccommerce.Personalizedrecommendersystemisestablishedonthebasisofaseniorminingbusinessintelligenceplatforminthemassivedata,inordertohelpe-commercesitesprovidecompletepersonalizeddecisionsupportandinformationserviceforthecustomershopping.Atthesametime,theresearchheatsystemtorecommendtheacademiccommunityhasbeenveryhigh,andgraduallyformedanindependentdiscipline.
Recommendationsystemisintroducedinthispaper,handaccordingtobooksborrowingsituationoftheschool,buildarecommendationsystembasedonKnnalgorithmlibrary,cansolvethestudentsborrowbookshavenoclue,borrownotsuitablefortheirownbooksandsoon,ontheotherhandtoachievetheseparationofdata,algorithms,theresultsshowthattheprogramdesign,largedata,processing,front-enddisplaydivisionmoreclearandconcise.
ThissystemadoptsthewidelyusedRsoftwareforstatisticalfield,datastorageanddatamininginSQLServer2008,andtheapplicationofJavalanguageinthefrontdisplay,throughthecoordinationofthethreecooperation,jointlycompletedrecommendationsystemfordatastorage,anddisplaytheworkofmining.
Keywords:
Recommendationsystem; Knnalgorithm; exclusive recommendation;large datamining ;Rsoftware
第1章绪论
推荐系统现已广泛应用于很多领域,其中最典型并具有良好的发展和应用前景的领域就是电子商务领域。
个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。
对于我们的图书的大量藏书,我们已经完全没有那么多的时间和精力去看完所有的书来寻找自己想要得到的知识,所以一个有专属个性的、合适的推荐系统能给我们节约不少的时间和精力。
1.1应用背景
互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,这就是所谓的信息超载问题。
解决信息超载问题一个非常有潜力的办法是推荐系统,它是根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户的个性化信息推荐系统。
和搜索引擎相比推荐系统通过研究用户的兴趣偏好,进行个性化计算,由系统发现用户的兴趣点,从而引导用户发现自己的信息需求。
一个好的推荐系统不仅能为用户提供个性化的服务,还能和用户之间建立密切关系,让用户对推荐产生依赖。
推荐系统现已广泛应用于很多领域,其中最典型并具有良好的发展和应用前景的领域就是电子商务领域。
同时学术界对推荐系统的研究热度一直很高,逐步形成了一门独立的学科。
对于我们的图书的大量藏书,我们已经没有那么多的时间和精力去看完所有的书来寻找自己想要得到的知识,所以一个有专属个性的、合适的推荐系统能给我们节约不少的时间和精力。
1.2系统功能
该系统的具体功能如下
1.根据用户的借书证号给出专属推荐
2.根据书目的主键值给出相关推荐
3.推荐的书目中包含书名,作者,出版社,出版日期,索书号,类型等字段
4.可以查询用户的信息,以及当前书目的信息
1.3系统预览
图1-1系统主界面图
图1-2系统副界面图
1.4系统特点
系统界面相对简单,适合添加到web应用程序,作为Applet嵌入到网页中,但是内部数据的运算量相当大,因此可能运行较缓慢。
第2章开发环境及工具
2.1系统开发环境
服务器操作系统:
MicrosoftWindows操作系统
数据库:
SQLServer2008
R软件:
R3.1.2
JDK:
1.6
2.2系统架构模型
本系统整体框架采用了数据存储、大规模计算与前端展示相分离的新型设计模式。
其中SQLServer2008负责数据的存储与管理,R软件负责大规模数据计算,是系统的核心部分,Java端采用模型-视图-控制器(MVC)设计模型,完成数据计算结果的展示。
具体的模型设计如下图:
Java前端
结果展示
参数传递
R软件
数据抽取
数据存储
数据库
图2-1程序结构图
2.3系统开发技术
2.3.1R语言简介
R是用于统计分析、绘图的语言和操作环境。
R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
R是一套完整的数据处理、计算和制图软件系统。
其功能包括:
数据存储和处理系统;数组运算工具,其向量、矩阵运算方面功能尤其强大;完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:
可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。
与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。
R的思想是:
它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
该语言的语法表面上类似C,但在语义上是函数设计语言(functionalprogramminglanguage)的变种并且和Lisp以及APL有很强的兼容性。
特别的是,它允许在“语言上计算”(computingonthelanguage)。
这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。
2.3.2数据库技术简介
SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。
SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出的最新版本。
SQLServer特点:
1.真正的客户机/服务器体系结构。
2.图形化用户界面,使系统管理和数据库管理更加直观、简单。
3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
4.SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。
SQLServer也可以很好地与MicrosoftBackOffice产品集成。
5.具有很好的伸缩性,可跨越从运行Windows95/98的电脑到运行Windows2000的大型多处理器等多种平台使用。
6.对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。
7.SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。
2.3.3Java简介
Java是由SunMicrosystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。
由JamesGosling和同事们共同研发,并在1995年正式推出。
Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。
1995年更名为Java,并重新设计用于开发Internet应用程序。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。
另一方面,Java技术也不断更新。
Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
2010年Oracle公司收购SunMicrosystems。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
第3章系统设计与数据库
3.1系统设计
3.1.1系统功能模块划分
1.用户借书证号的查询:
包括个人信息以及推荐书目(专属推荐)。
2.书目编号查询:
包括本书的相关信息以及关于本书的推荐。
3.2数据库结构
历史数据来源于华北科技学院图书馆,数据处理中需要的表有流通日志表、读者信息表、书目信息表,详细字段含义如下:
表3-1流通日志表
comLog流通日志表
条形码
barCode
流通号
comNum
读者条码
readerNum
处理时间
handleTime
主键码
keyNum
表4-2读者信息表
reader读者信息表
读者条码
readerNum
姓名
rName
性别
sex
读者级别
rRank
读者单位
rUnit
班级
rClass
年级
rGrade
表4-2书目信息表
book书目信息表
主键码
keyNum
题目
title
责任者
author
出版社
press
出版日期
pubDate
索书号
indexNum
图书类型
bType
第4章K最近邻分类(Knn)算法介绍
4.1Knn算法简介
邻近算法,或者说K最近邻(Knn,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。
所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
Knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
kNN方法在类别决策时,只与极少量的相邻样本有关。
由于Knn方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,Knn方法较其他方法更为适合。
4.2算法流程
1.准备数据,对数据进行预处理
2.选用合适的数据结构存储训练数据和测试元组
3.设定参数,如k
4.维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。
随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列
5.遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L与优先级队列中的最大距离Lmax
6.进行比较。
若L>=Lmax,则舍弃该元组,遍历下一个元组。
若L 7.遍历完毕,计算优先级队列中k个元组的多数类,并将其作为测试元组的类别。 8.测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k值。 4.3算法优缺点 4.3.1优点 1.简单,易于理解,易于实现,无需估计参数,无需训练。 2.适合对稀有事件进行分类。 3.特别适合于多分类问题(multi-modal,对象具有多个类别标签),kNN比SVM的表现要好。 4.3.2缺点 该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。 该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。 无论怎样,数量并不能影响运行结果。 该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。 第5章Knn算法在图书推荐系统的实现 5.1训练集数据train.data 以表5-1所示的华北科技学院图书借阅记录的用户借阅行为,作为推荐系统的训练集数据。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Knn 算法 图书 推荐 系统 毕业设计