版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录第一章 绪论1第二章 数据基本分析22.1数据说明22.2质量分析22.3 基本描述分析2第三章 数据预处理43.1 数据处理过程43.2 数据预处理方法43.3 数据预处理结果6第四章 数据模型构建84.1 数据流的构建8第五章 模型结果分析125.1结果的分析处理125.2 结果合理性分析13第六章 应用系统设计166.1模型接口166.2人机接口196.3软件测试24结论30参考文献31结束语32第一章 绪论由于网站的结构设计,对特定用户而言信息获取的代价与所经过的浏览路径长度成正比,这些位于路径中间的不必要的文档就无疑增加了用户获取信息的代价。本文利用clementine数据挖掘的
2、方法和技术对用户所访问的页面序列进行挖掘,构建网页推荐的模型,实现对当前站点排序方式的优化,从而最大限度地优化用户访问体验,提高当前站点信息获取的整体效率。关键词 网页推荐;clememtine数据挖掘;访问序列传统的web网站以系统自身为中心,为了容纳大量的信息,以图结构组织网站,页面之间存在着比较复杂的层次关系。这些预先设计好的浏览路径(网站的结构)严格按照设计者编辑好的层次返回页面,因此,为了获取特定的信息,从同一页面出发的所有用户都不得不重复地经过很多与自己毫无关系的、不希望看到的中间链接页面,使得用户为了获取少量的信息付出较大的代价。如果在确保网页内容的前提下,实现网站物理结构的调整
3、和再组织,就可以避免混乱。站点路径优化实际上就是站点管理者优化其站点结构,它的出现就是为了提高用户的访问效率以及用户对站点的忠诚度。第二章 数据基本分析2.1数据说明本数据来自网络信息服务(iis)网站和1999年9月28日全天日志记录,每行连续数据表示单个用户24小时内浏览网页的记录,连续数据中的数字表示用户对相应网页的浏览请求,该访问请求不会被记录成详细的记录,即具体的网址,而只是单单记录了网页类型。这些网页类型分别是 frontpage, news, tech, local, opinion, on-air, misc, weather, health, living, business
4、, sports, summary, bbs (bulletin board service), travel, msn-news, and msn-sports。通过超高速缓冲器(寄存器)每个网页的服务请求不会被记录到服务日志,因此,它不会体现在数据中。2.2质量分析此次分析的数据总共有989818,平均每个用户点击网页的次数是5.7次,每个不同类型的网页有10到5000个不同的url(网页地址)。从数据的质量上看,这是一个较大的数据集,数据的量足够大,可以用于数据的挖掘分析,且数据来源于internet information server (iis),有足够可信度。用户平均点击网页的数据
5、也有5.7次,适合用于分析点击网页序列,每种类型的网页也有足够多的不同网址,符合客观要求。因此从数据质量上看,所选取的数据有分析的必要。2.3 基本描述分析 截取部分数据如下:1 1 2 3 2 2 4 2 2 2 3 3 5 1 6 1 1 6 6 7 7 7 6 6 8 8 8 8 6 9 4 4 4 10 3 10 5 10 4 4 4 1 1 1 11 1 1 1 12 12 1 1 每一行代表一个用户所点击的网页,此次选取的数据之中一共有17个不同类型的网页,分别是:frontpage news tech local opinion on-air misc weather msn-n
6、ews health living business msn-sports sports summary bbs travel为了方便处理,将以上各个网页进行编号,分别为1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17。一第三行数据为例对单个用户的数据进行说明。用户3第一次点击3号网页,第二次点击2号网页,第三次点击2号网页,第四次点击4号网页等一次类推下去。每一行都是一个用户的记录第三章 数据预处理3.1 数据处理过程此次任务是设计基于网页点击次序来推送下一次可能点击的网页。选取的方法是clementine 的序列关联,所以要将数据处理成clementine
7、可读取的格式,并且要删减不必要的数据,改写数据的格式,这样才能达到分析处理的要求。结合提供的数据具体分析:每行数据是一个用户的信息记录,表示的含义是第n号用户点击了哪个网页,是第几次点击的。举出部分数据样例如下:1 1 2 3 2 2 4 2 2 2 3 3 5 1 6 1 1 6 6 7 7 7 6 6 8 8 8 8 6 9 4 4 4 10 3 10 5 10 4 4 4 1 1 1 11 1 1 1 12 12 1 1因为此次任务是进行序列关联分析,所以用户只进行了一次点击情况的记录可以直接删除,比如样例中2,4,5,6,8号用户。又因为最终要进行的操作是推送下一个可能点击的网页,如果
8、用户只是在不断的点击同一个网页,这样的记录也无法分析可推送的网页,故也要剔去,如样例中1号用户。还有一种情况就是在多次点击过程中有重复点击的网页,这样的情况只需选取一次即可,因为我们所关系的是网页点击的次序而不是次数,现对样例中9号用户的数据进行分析,用户9第一次点击6号网页,第二次点击7号网页,第三次点击6号网页,第四次点击8号网页。根据以上的要求,可将数据处理成三列,分别表示用户号,用户点击的网页号,此次点击的次序号。将处理好的数据保存在文件中等待处理即可。3.2 数据预处理方法根据数据处理过程,决定运用microsoft visual c+软件,进行编程处理,程序分析过程如下:1.先取数
9、据文本中一行数据赋值给数组msn2.将msn数组按照空格分隔符分割,并将分割后数据转换为整型,赋值给msn1数组。3.对msn1数组中数据进行前后比较,如若相等,则将前一个赋值为04.将数组msn1中数据进行判断,大于0,则将数据赋值给数组msn2。5.将数组msn2中数据个数大于1的,按形式为三列,分别是用户号,用户点击的网页号,点击网页的次序号的格式写入e.txt文本文件。6.具体代码分析如下:#include #include #include memory.h#include stdlib.husing namespace std;void main() cout正在处理,请稍等.;
10、/void quchu(); int i=0,count=0; char msn100000;/保存字符型数据数组 int msn1100000;/保存一行int型数据数组 int msn210000;/保存无重复数据数组 fstream out; ofstream in;/定义文本输入输出流out.open(msnbc990928.seq,ios:in);/打开文本数据in.open(e.txt,ios:trunc); /ios:trunc表示在打开文件前将文件清空,由于是写入,文件不存在则创建 while(!out.eof() out.getline(msn,100000,n);/getl
11、ine(char *,int,char) 表示该行字符达到100个或遇到换行就结束 const char * split= ; /将数据变为int型 char * p; i=0; p=strtok(msn,split); while(p!=null) msn1i=atoi(p); /将截取数字转换为整型,赋值给数组 p=strtok(null,split); i+; int ii=i; int a=0; for(i=0;i0)/将符合条件的赋值给数组 msn2a=msn1i; a+; int aa=a;/保存一行数字个数 if(aa1)/将一行的个数大于1的按要求写入文件 for(i=0;ia
12、a;i+) incount+1,msn2i,i+1n; count+; out.close();/关闭文件3.3 数据预处理结果数据处理好之后,形式为三列,分别是用户号,用户点击的网页号,点击网页的次序号。取部分处理好的结果如下:id,content,time1,3,11,2,21,4,31,2,41,3,52,6,12,7,22,6,32,8,43,6,13,9,23,4,3开头是加上的字段名。表达的含义是一号用户第一到第五次分别点击3,2,4,2,3号网页。这个数据就可以用clementine进行处理分析了。第四章 数据模型构建4.1 数据流的构建 打开clementine软件,在源选项卡
13、中选择“可变文件”节点,单击编辑,进行如下设置:在文件设置中,导入处理好的数据,勾选“读取文件中的字段名”,在定“界符中”选项框中勾选“逗号”,“新行”;在类型设置中,将id字段设为无类型,content设为集,time设为范围。设置过程截图如下:图1 导入数据图2 数据类型设置再点击选取表节点,连接可变文件,执行,观察数据是否正确导入了。然后在数学建模选项卡中选择“序列”节点,连接可变文件,点击编辑,进行如下设置:在字段设置中,将id字段设置为id,勾选“设置时间字段”,选择time,内容字段中选择content。在模型设置中,设置合适的最小规则支持度,最小规则置信度,最大序列大小,要添加到
14、流的预测。设置过程截图如下:图3 序列分析字段设置图4 序列分析模型参数设置以上过程设置好后,对“序列”字段点击执行,产生结果。数据流的构建过程截图如下:图5 数据流构建第五章 模型结果分析5.1结果的分析处理 首先在“序列”节点的模型设置中设置好合适的最小支持度,最小置信度。现在将最小支持度设置为3%,最小置信度设置为60%,取其结果进行相应的分析。结果如下:图6 测试模型结果将最小支持度设置为3%,最小置信度设置为60%是为了剔除最小支持度小于3%,最小置信度小于60%的结果。以第一条结果为例进行说明:前项为4,7,后项为4,表示点击了4号网页,再点7号网页,可推送出4号网页。因为记录一共
15、有989818,此条结果支持度为4.47%,故先点击4号网页,再点击7号网页的记录一共有约40000多条,点击了4号和7号网页后,在点击4号的可能性为72.26%,即为其置信度。其他条记录可依此类推。5.2 结果合理性分析以上选取的最小支持度设置为3%,最小置信度设置为60%,那么根据这个设置可以看出,只有重复出现30000次左右的结果才会被保留下来,这样会导致很多条结果被剔除,所得出的结论很少,不利于分析推送。所以最小支持度应该设置的更小一定,使结果更加有合理性。重新设置相关参数,最小支持度设置为0.5%,最小置信度设置为60%,则前项必须出现的次数达到5000次左右结果才会被保留。结果如下
16、:图7 修正模型结果图8 模型结果汇总从结果汇总中可以看出,将最小支持度设置为0.5%,最小置信度设置为60%时,规则数一共有161条,有效的事务数有383534条。其中最小的支持度为0.633%,最大支持度为88.35%。最小置信度为60.056%,最大置信度为83.84%。从有效事务数,规则条数上看,这个结果还是很合理的。置信度也在60%以上,有一定可信度。故可以选择这个分析结果。最后将此结果导出,保留给推荐系统备用。第六章 应用系统设计6.1模型接口经讨论分析我们决定,运用delphi7.0软件实现对本系统的应用设计。具体分析实现步骤如下:1.用户操作网页编号记录的实现。定义全局数组ms
17、n,用于记录用户所进入网页的的编号,代码如下: unit uall;interface var msn:array0.1000 of integer;/定义数组,保存访问数据 var i:integer;implementationuses ulocal, umain, unews, utech;initializationi:=0;end.2.编辑17个窗口作为网页,并新建一个主窗口fmain,在fmain中拉入label,当用户点击相应的label时,进入相应的网页,并将网页的编号记录到数据uall.msn数组中,并将数组下标i自加1。具体label中代码如下:procedure tfma
18、in.label2click(sender: tobject);beginself.hide;fnews.show;uall.msnuall.i:=2;uall.i:=uall.i+1;end;3.网页推荐实现。在fmain中拉入一个button,当用户点击此button时,系统进行推荐,在此中写入代码,具体分析步骤如下:1)取分析后文本数据中一行,并将一行数据进行分割,取最后一个编号为推荐编号转换为int型,赋值给整型变量se。将数据逐个转换为int型,赋值给msnint数组,数据最后一个编号不写如数组。2)将msnint数组中数据从结尾开始逐个与用户操作序列数组结尾开始进行比较。用户操作序
19、列数组uall.msn与msnint中匹配时,将se值转换为string型赋值给see,并将temp值赋值为1。3)对temp进行判断,temp为1时则说明可进行推荐。则将推荐的数据see赋值给label.caption。即可显示。具体代码如下:procedure tfmain.button2click(sender: tobject);var f: textfile; s: string; /保存一行字符 se:integer;/保存推荐网页编号 see:string;/保存临时推荐网页编号 ss:string; /保存所有推荐 slist:tstringlist;/定义字符截取 i:int
20、eger; /ii:integer; alli:integer; temp:integer;/ inn:integer; scount:integer; msnint:array0.1000 of integer;/定义数组,保存int型数据begin temp:=0; see:=; ss:=; assignfile(f,id.txt); /绑定文件到文件类型变量 reset(f);/打开一个存在的文件,另rewrite创建文件并打开 while not eof(f) do begin readln(f,s);/读取一行字符 /#/字符串的截取 slist:=tstringlist.creat
21、e; slist.delimiter:= ; /设置分隔符 slist.delimitedtext:=s; /设置待分割的字符串 scount:=slist.count-1; for i:=0 to slist.count-2 do /列举所有值,保存进数组 begin msninti:=strtoint(slisti); end; se:=strtoint(slistscount);/取最后一个编号为推荐编号 /# i:=scount-1; alli:=uall.i-1;/取最大值 while msninti=uall.msnalli do begin i:=i-1; alli:=alli-
22、1; if i=-1 then begin temp:=1; see:=inttostr(se); end; end; end; if temp=1 then begin inn:=strtoint(see); case inn of 1:see:=头条; 2:see:=新闻; 3:see:=科技; 4:see:=本地新闻; 5:see:=舆论; 6:see:=在线直播; 7:see:=音乐; 8:see:=天气; 9:see:=msn; 10:see:=健康; 11:see:=家居; 12:see:=商业; 13:see:=msn体育; 14:see:=体育; 15:see:=概要; 16:
23、see:=bbs; 17:see:=旅行; end; ltuijian.caption:=inttostr(inn)+.+see; showmessage(向您推荐:+see); end; if temp=0 then begin ltuijian.caption:=; showmessage(由于进入的网页数不够,还没能向您推荐网页!); end; closefile(f);end;6.2人机接口1.用户进入系统时,首先显示的为可以自动跳转的界面,介绍系统名与系统作者。这样使系统更具有亲和力。功能实现需要加入timer,gauge和 imag控件,导入图片,使图形更加美观。并在timer控件
24、中写代码,使之能够自动加载进程条。代码如下:procedure tflogin.timer1timer(sender: tobject);begin gauge1.progress:=gauge1.progress+1; if gauge1.progress=gauge1.maxvalue then /计时计的间隔时间10毫秒,maxvalue=100,1秒钟后进入登录窗口 begin fmain.show; self.hide; timer1.enabled:=false; /必须要停止计时计,否则计时计会一直运行,结果是每过一分钟就会弹出登录窗口 end;end;end.最终界面如图9显示
25、:图9 登录界面2.进入到主界面,加入imag控件,导入图片,使图形更加美观。添加bitbtn控件,设置其caption属性为“退出”,使之为退出按钮,并导入图片,使控件更加美观。当用户点击时控件时,则退出系统。为了实现系统自动推荐,则在fmain中的onshow事件中写入推荐代码。同时为了使界面更加富有美感,加入了xpmanifest控件。最终界面如图10显示,程序代码如下:1)bitbtn中退出程序代码:procedure tfmain.bitbtn1click(sender: tobject);beginapplication.terminate;end;2)onshow事件中写入推荐代
26、码:procedure tfmain.formshow(sender: tobject);var f: textfile; s: string; /保存一行字符 se:integer;/保存推荐网页编号 see:string;/保存临时推荐网页编号 ss:string; /保存所有推荐 slist:tstringlist;/定义字符截取 i:integer; /ii:integer; alli:integer; temp:integer;/ inn:integer; scount:integer; msnint:array0.1000 of integer;/定义数组,保存int型数据begi
27、n temp:=0; see:=; ss:=; assignfile(f,id.txt); /绑定文件到文件类型变量 reset(f);/打开一个存在的文件,另rewrite创建文件并打开 while not eof(f) do begin readln(f,s);/读取一行字符 /length(s); / ss:=leftstr(s,length(s)-1);/从str字符串变量的中第1个字符开始取长度为s长度个字符-1的字符串; /se:=rightstr(s,1);/取最后一个字符 / showmessage(ss); /#/字符串的截取 slist:=tstringlist.creat
28、e; slist.delimiter:= ; /设置分隔符 slist.delimitedtext:=s; /设置待分割的字符串 scount:=slist.count-1; for i:=0 to slist.count-2 do /列举所有值,保存进数组 begin msninti:=strtoint(slisti); /showmessage(这个数+inttostr(msninti); end; se:=strtoint(slistscount);/取最后一个编号为推荐编号 /showmessage(这个数+inttostr(se); /# i:=scount-1; alli:=ual
29、l.i-1;/取最大值 /ii:=0; /while alli=uall.i do / begin while msninti=uall.msnalli do begin i:=i-1; alli:=alli-1; if i=-1 then begin temp:=1; see:=inttostr(se);/+ +see; end; end; end; if temp=1 then begin inn:=strtoint(see); case inn of 1:see:=头条; 2:see:=新闻; 3:see:=科技; 4:see:=本地新闻; 5:see:=舆论; 6:see:=在线直播;
30、 7:see:=音乐; 8:see:=天气; 9:see:=msn; 10:see:=健康; 11:see:=家居; 12:see:=商业; 13:see:=msn体育; 14:see:=体育; 15:see:=概要; 16:see:=bbs; 17:see:=旅行; end; ltuijian.caption:=inttostr(inn)+.+see; /showmessage(向您推荐:+see); /see:=; end; if temp=0 then begin ltuijian.caption:=; end; closefile(f);end;图10 主界面3.点击网页label,进
31、入到网页页面。功能实现加入imag控件,导入图片,使图形更加美观。同时键入lanbel,更改caption属性,描述客户所进入的网页的页面。并添加button控件,caption属性改为“退出”,当用户点击时使界面返回主界面。最终界面如图11,代码如下:procedure tfmisc.button3click(sender: tobject);beginclose;fmain.show;end;end.图11 单个网页6.3软件测试1.打开软件,进入加载界面如图12:图12 加载界面2进入主界面,点击,13号msn体育,访问网页msn体育,如图13,图14所示:图13 选择进入网页图14网页
32、显示3.点击,7号网页音乐,访问网页音乐,如图15,图16所示:图15 进入网页图16网页显示4.退出音乐网页后,系统自动推荐13号网页msn体育,如图17:图17 显示推荐网页5.点击推荐按钮,系统跳出弹框,显示推荐网页,如图18图18按钮推荐网页6.再次点7号,选择音乐,进入音乐网页如图19所示:图19进入音乐网页7.退出网页,进入主界面,系统无法找到匹配序列,则自动清空推荐网页,如图20:图20推荐自动清空8.点击推荐按钮,给出提示,说明系统未能找到匹配的推荐网页,如图21所示:图21按钮推荐提醒9在主界面点击退出,则退出系统,如图22所示:图22退出系统10.经过以上测试,软件能够正常运行。但是,在网页的设计方面还不够完美,不够贴近于实际,有待改善。在操作舒适度方面稍好,符合系统的基本要求。整体来看,本系统功能和设计还是比较完善的。结论本次基于msnbc数据的网页序列分析系统的设计过程主要有三大部分。第一是数据预处理部分,首先要分析序列分析所需要的数据类型,将给定的原始数据处理成clementine支持的数据格式,剔除不起作用的数据记录,减少数据量,还要降低数据的冗余,序列分析分析的是先后顺序,与点击网页的次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中华传统美德心得体会(10篇)
- 员工表扬信15篇
- 会飞的教室读后感集合
- 中国好人李培生先进事迹
- 他乡的童年日本纪录片观后感
- 二八定律读后感
- 个人无收入证明书(9篇)
- DB12∕T 1050-2021 畜禽粪污异位发酵床处理技术规范
- 报关实务-教学课件 第三章 海关检验检疫
- 影响我国自主创新因素的SVAR分析
- 临床营养科各岗位职责及各项规章制度
- 《创想候车亭》课件2024-2025学年岭美版(2024)初中美术七年级上册
- 山西省晋中市多校2024-2025学年九年级上学期期中语文试题
- 心肺复苏术课件2024新版
- 居间权益保障协议
- 安全环保职业健康法律法规清单2024年
- 劳动法专业知识讲座
- 安徽省合肥市第四十五中学2023-2024学年八年级上学期期中数学试题(沪科版)
- 风电场护栏网施工方案
- 北师大版数学一年级上册期中考试试题
- 6《芣苢》《插秧歌》联读公开课一等奖创新教学设计(任务式)统编版高中语文必修上册
评论
0/150
提交评论